Skip to main content

libadwaita/auto/
about_window.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5#![allow(deprecated)]
6
7use crate::{Window, ffi};
8use glib::{
9    object::ObjectType as _,
10    prelude::*,
11    signal::{SignalHandlerId, connect_raw},
12    translate::*,
13};
14use std::boxed::Box as Box_;
15
16glib::wrapper! {
17    /// Use [`AboutDialog`][crate::AboutDialog].
18    /// A window showing information about the application.
19    ///
20    /// <picture>
21    ///   <source srcset="about-window-dark.png" media="(prefers-color-scheme: dark)">
22    ///   <img src="about-window.png" alt="about-window">
23    /// </picture>
24    ///
25    /// An about window is typically opened when the user activates the `About …`
26    /// item in the application's primary menu. All parts of the window are optional.
27    ///
28    /// ## Main page
29    ///
30    /// [`AboutWindow`][crate::AboutWindow] prominently displays the application's icon, name, developer
31    /// name and version. They can be set with the [`application-icon`][struct@crate::AboutWindow#application-icon],
32    /// [`application-name`][struct@crate::AboutWindow#application-name],
33    /// [`developer-name`][struct@crate::AboutWindow#developer-name] and [`version`][struct@crate::AboutWindow#version]
34    /// respectively.
35    ///
36    /// ## What's New
37    ///
38    /// [`AboutWindow`][crate::AboutWindow] provides a way for applications to display their release
39    /// notes, set with the [`release-notes`][struct@crate::AboutWindow#release-notes] property.
40    ///
41    /// Release notes are formatted the same way as
42    /// [AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description).
43    ///
44    /// The supported formatting options are:
45    ///
46    /// * Paragraph (`<p>`)
47    /// * Ordered list (`<ol>`), with list items (`<li>`)
48    /// * Unordered list (`<ul>`), with list items (`<li>`)
49    ///
50    /// Within paragraphs and list items, emphasis (`<em>`) and inline code
51    /// (`<code>`) text styles are supported. The emphasis is rendered in italic,
52    /// while inline code is shown in a monospaced font.
53    ///
54    /// Any text outside paragraphs or list items is ignored.
55    ///
56    /// Nested lists are not supported.
57    ///
58    /// Only one version can be shown at a time. By default, the displayed version
59    /// number matches [`version`][struct@crate::AboutWindow#version]. Use
60    /// [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] to override it.
61    ///
62    /// ## Details
63    ///
64    /// The Details page displays the application comments and links.
65    ///
66    /// The comments can be set with the [`comments`][struct@crate::AboutWindow#comments] property.
67    /// Unlike [`comments`][struct@crate::Gtk::AboutDialog#comments], this string can be long and
68    /// detailed. It can also contain links and Pango markup.
69    ///
70    /// To set the application website, use [`website`][struct@crate::AboutWindow#website].
71    /// To add extra links below the website, use [`add_link()`][Self::add_link()].
72    ///
73    /// If the Details page doesn't have any other content besides website, the
74    /// website will be displayed on the main page instead.
75    ///
76    /// ## Troubleshooting
77    ///
78    /// [`AboutWindow`][crate::AboutWindow] displays the following two links on the main page:
79    ///
80    /// * Support Questions, set with the [`support-url`][struct@crate::AboutWindow#support-url] property,
81    /// * Report an Issue, set with the [`issue-url`][struct@crate::AboutWindow#issue-url] property.
82    ///
83    /// Additionally, applications can provide debugging information. It will be
84    /// shown separately on the Troubleshooting page. Use the
85    /// [`debug-info`][struct@crate::AboutWindow#debug-info] property to specify it.
86    ///
87    /// It's intended to be attached to issue reports when reporting issues against
88    /// the application. As such, it cannot contain markup or links.
89    ///
90    /// [`AboutWindow`][crate::AboutWindow] provides a quick way to save debug information to a file.
91    /// When saving, [`debug-info-filename`][struct@crate::AboutWindow#debug-info-filename] would be used as
92    /// the suggested filename.
93    ///
94    /// ## Credits and Acknowledgements
95    ///
96    /// The Credits page has the following default sections:
97    ///
98    /// * Developers, set with the [`developers`][struct@crate::AboutWindow#developers] property,
99    /// * Designers, set with the [`designers`][struct@crate::AboutWindow#designers] property,
100    /// * Artists, set with the [`artists`][struct@crate::AboutWindow#artists] property,
101    /// * Documenters, set with the [`documenters`][struct@crate::AboutWindow#documenters] property,
102    /// * Translators, set with the [`translator-credits`][struct@crate::AboutWindow#translator-credits] property.
103    ///
104    /// When setting translator credits, use the strings `"translator-credits"` or
105    /// `"translator_credits"` and mark them as translatable.
106    ///
107    /// The default sections that don't contain any names won't be displayed.
108    ///
109    /// The Credits page can also contain an arbitrary number of extra sections below
110    /// the default ones. Use [`add_credit_section()`][Self::add_credit_section()] to add them.
111    ///
112    /// The Acknowledgements page can be used to acknowledge additional people and
113    /// organizations for their non-development contributions. Use
114    /// [`add_acknowledgement_section()`][Self::add_acknowledgement_section()] to add sections to it. For
115    /// example, it can be used to list backers in a crowdfunded project or to give
116    /// special thanks.
117    ///
118    /// Each of the people or organizations can have an email address or a website
119    /// specified. To add a email address, use a string like
120    /// `Edgar Allan Poe <edgar@poe.com>`. To specify a website with a title, use a
121    /// string like `The GNOME Project https://www.gnome.org`:
122    ///
123    /// <picture>
124    ///   <source srcset="about-window-credits-dark.png" media="(prefers-color-scheme: dark)">
125    ///   <img src="about-window-credits.png" alt="about-window-credits">
126    /// </picture>
127    ///
128    /// ## Legal
129    ///
130    /// The Legal page displays the copyright and licensing information for the
131    /// application and other modules.
132    ///
133    /// The copyright string is set with the [`copyright`][struct@crate::AboutWindow#copyright]
134    /// property and should be a short string of one or two lines, for example:
135    /// `© 2022 Example`.
136    ///
137    /// Licensing information can be quickly set from a list of known licenses with
138    /// the [`license-type`][struct@crate::AboutWindow#license-type] property. If the application's
139    /// license is not in the list, [`license`][struct@crate::AboutWindow#license] can be used
140    /// instead.
141    ///
142    /// To add information about other modules, such as application dependencies or
143    /// data, use [`add_legal_section()`][Self::add_legal_section()].
144    ///
145    /// ## Constructing
146    ///
147    /// To make constructing an [`AboutWindow`][crate::AboutWindow] as convenient as possible, you can
148    /// use the function `show_about_window()` which constructs and shows a
149    /// window.
150    ///
151    /// **⚠️ The following code is in c ⚠️**
152    ///
153    /// ```c
154    /// static void
155    /// show_about (GtkApplication *app)
156    /// {
157    ///   const char *developers[] = {
158    ///     "Angela Avery",
159    ///     NULL
160    ///   };
161    ///
162    ///   const char *designers[] = {
163    ///     "GNOME Design Team",
164    ///     NULL
165    ///   };
166    ///
167    ///   adw_show_about_window (gtk_application_get_active_window (app),
168    ///                          "application-name", _("Example"),
169    ///                          "application-icon", "org.example.App",
170    ///                          "version", "1.2.3",
171    ///                          "copyright", "© 2022 Angela Avery",
172    ///                          "issue-url", "https://gitlab.gnome.org/example/example/-/issues/",
173    ///                          "license-type", GTK_LICENSE_GPL_3_0,
174    ///                          "developers", developers,
175    ///                          "designers", designers,
176    ///                          "translator-credits", _("translator-credits"),
177    ///                          NULL);
178    /// }
179    /// ```
180    ///
181    /// ## CSS nodes
182    ///
183    /// [`AboutWindow`][crate::AboutWindow] has a main CSS node with the name `window` and the
184    /// style class `.about`.
185    ///
186    /// ## Properties
187    ///
188    ///
189    /// #### `application-icon`
190    ///  The name of the application icon.
191    ///
192    /// The icon is displayed at the top of the main page.
193    ///
194    /// Readable | Writeable
195    ///
196    ///
197    /// #### `application-name`
198    ///  The name of the application.
199    ///
200    /// The name is displayed at the top of the main page.
201    ///
202    /// Readable | Writeable
203    ///
204    ///
205    /// #### `artists`
206    ///  The list of artists of the application.
207    ///
208    /// It will be displayed on the Credits page.
209    ///
210    /// Each name may contain email addresses and URLs, see the introduction for
211    /// more details.
212    ///
213    /// See also:
214    ///
215    /// * [`developers`][struct@crate::AboutWindow#developers]
216    /// * [`designers`][struct@crate::AboutWindow#designers]
217    /// * [`documenters`][struct@crate::AboutWindow#documenters]
218    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
219    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
220    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
221    ///
222    /// Readable | Writeable
223    ///
224    ///
225    /// #### `comments`
226    ///  The comments about the application.
227    ///
228    /// Comments will be shown on the Details page, above links.
229    ///
230    /// Unlike [`comments`][struct@crate::Gtk::AboutDialog#comments], this string can be long and
231    /// detailed. It can also contain links and Pango markup.
232    ///
233    /// Readable | Writeable
234    ///
235    ///
236    /// #### `copyright`
237    ///  The copyright information.
238    ///
239    /// This should be a short string of one or two lines, for example:
240    /// `© 2022 Example`.
241    ///
242    /// The copyright information will be displayed on the Legal page, above the
243    /// application license.
244    ///
245    /// [`AboutWindow::add_legal_section()`][crate::AboutWindow::add_legal_section()] can be used to add copyright
246    /// information for the application dependencies or other components.
247    ///
248    /// Readable | Writeable
249    ///
250    ///
251    /// #### `debug-info`
252    ///  The debug information.
253    ///
254    /// Debug information will be shown on the Troubleshooting page. It's intended
255    /// to be attached to issue reports when reporting issues against the
256    /// application.
257    ///
258    /// [`AboutWindow`][crate::AboutWindow] provides a quick way to save debug information to a file.
259    /// When saving, [`debug-info-filename`][struct@crate::AboutWindow#debug-info-filename] would be used as
260    /// the suggested filename.
261    ///
262    /// Debug information cannot contain markup or links.
263    ///
264    /// Readable | Writeable
265    ///
266    ///
267    /// #### `debug-info-filename`
268    ///  The debug information filename.
269    ///
270    /// It will be used as the suggested filename when saving debug information to
271    /// a file.
272    ///
273    /// See [`debug-info`][struct@crate::AboutWindow#debug-info].
274    ///
275    /// Readable | Writeable
276    ///
277    ///
278    /// #### `designers`
279    ///  The list of designers of the application.
280    ///
281    /// It will be displayed on the Credits page.
282    ///
283    /// Each name may contain email addresses and URLs, see the introduction for
284    /// more details.
285    ///
286    /// See also:
287    ///
288    /// * [`developers`][struct@crate::AboutWindow#developers]
289    /// * [`artists`][struct@crate::AboutWindow#artists]
290    /// * [`documenters`][struct@crate::AboutWindow#documenters]
291    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
292    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
293    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
294    ///
295    /// Readable | Writeable
296    ///
297    ///
298    /// #### `developer-name`
299    ///  The developer name.
300    ///
301    /// The developer name is displayed on the main page, under the application
302    /// name.
303    ///
304    /// If the application is developed by multiple people, the developer name can
305    /// be set to values like "AppName team", "AppName developers" or
306    /// "The AppName project", and the individual contributors can be listed on the
307    /// Credits page, with [`developers`][struct@crate::AboutWindow#developers] and related
308    /// properties.
309    ///
310    /// Readable | Writeable
311    ///
312    ///
313    /// #### `developers`
314    ///  The list of developers of the application.
315    ///
316    /// It will be displayed on the Credits page.
317    ///
318    /// Each name may contain email addresses and URLs, see the introduction for
319    /// more details.
320    ///
321    /// See also:
322    ///
323    /// * [`designers`][struct@crate::AboutWindow#designers]
324    /// * [`artists`][struct@crate::AboutWindow#artists]
325    /// * [`documenters`][struct@crate::AboutWindow#documenters]
326    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
327    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
328    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
329    ///
330    /// Readable | Writeable
331    ///
332    ///
333    /// #### `documenters`
334    ///  The list of documenters of the application.
335    ///
336    /// It will be displayed on the Credits page.
337    ///
338    /// Each name may contain email addresses and URLs, see the introduction for
339    /// more details.
340    ///
341    /// See also:
342    ///
343    /// * [`developers`][struct@crate::AboutWindow#developers]
344    /// * [`designers`][struct@crate::AboutWindow#designers]
345    /// * [`artists`][struct@crate::AboutWindow#artists]
346    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
347    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
348    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
349    ///
350    /// Readable | Writeable
351    ///
352    ///
353    /// #### `issue-url`
354    ///  The URL for the application's issue tracker.
355    ///
356    /// The issue tracker link is displayed on the main page.
357    ///
358    /// Readable | Writeable
359    ///
360    ///
361    /// #### `license`
362    ///  The license text.
363    ///
364    /// This can be used to set a custom text for the license if it can't be set
365    /// via [`license-type`][struct@crate::AboutWindow#license-type].
366    ///
367    /// When set, [`license-type`][struct@crate::AboutWindow#license-type] will be set to
368    /// [enum@Gtk.License.custom].
369    ///
370    /// The license text will be displayed on the Legal page, below the copyright
371    /// information.
372    ///
373    /// License text can contain Pango markup and links.
374    ///
375    /// [`AboutWindow::add_legal_section()`][crate::AboutWindow::add_legal_section()] can be used to add license
376    /// information for the application dependencies or other components.
377    ///
378    /// Readable | Writeable
379    ///
380    ///
381    /// #### `license-type`
382    ///  The license type.
383    ///
384    /// Allows to set the application's license froma list of known licenses.
385    ///
386    /// If the application's license is not in the list,
387    /// [`license`][struct@crate::AboutWindow#license] can be used instead. The license type will
388    /// be automatically set to [enum@Gtk.License.custom] in that case.
389    ///
390    /// If set to [enum@Gtk.License.unknown], no information will be displayed.
391    ///
392    /// If the license type is different from [enum@Gtk.License.custom].
393    /// [`license`][struct@crate::AboutWindow#license] will be cleared out.
394    ///
395    /// The license description will be displayed on the Legal page, below the
396    /// copyright information.
397    ///
398    /// [`AboutWindow::add_legal_section()`][crate::AboutWindow::add_legal_section()] can be used to add license
399    /// information for the application dependencies or other components.
400    ///
401    /// Readable | Writeable
402    ///
403    ///
404    /// #### `release-notes`
405    ///  The release notes of the application.
406    ///
407    /// Release notes are displayed on the the What's New page.
408    ///
409    /// Release notes are formatted the same way as
410    /// [AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description).
411    ///
412    /// The supported formatting options are:
413    ///
414    /// * Paragraph (`<p>`)
415    /// * Ordered list (`<ol>`), with list items (`<li>`)
416    /// * Unordered list (`<ul>`), with list items (`<li>`)
417    ///
418    /// Within paragraphs and list items, emphasis (`<em>`) and inline code
419    /// (`<code>`) text styles are supported. The emphasis is rendered in italic,
420    /// while inline code is shown in a monospaced font.
421    ///
422    /// Any text outside paragraphs or list items is ignored.
423    ///
424    /// Nested lists are not supported.
425    ///
426    /// [`AboutWindow`][crate::AboutWindow] displays the version above the release notes. If set, the
427    /// [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] of the property will be used
428    /// as the version; otherwise, [`version`][struct@crate::AboutWindow#version] is used.
429    ///
430    /// Readable | Writeable
431    ///
432    ///
433    /// #### `release-notes-version`
434    ///  The version described by the application's release notes.
435    ///
436    /// The release notes version is displayed on the What's New page, above the
437    /// release notes.
438    ///
439    /// If not set, [`version`][struct@crate::AboutWindow#version] will be used instead.
440    ///
441    /// For example, an application with the current version 2.0.2 might want to
442    /// keep the release notes from 2.0.0, and set the release notes version
443    /// accordingly.
444    ///
445    /// See [`release-notes`][struct@crate::AboutWindow#release-notes].
446    ///
447    /// Readable | Writeable
448    ///
449    ///
450    /// #### `support-url`
451    ///  The URL of the application's support page.
452    ///
453    /// The support page link is displayed on the main page.
454    ///
455    /// Readable | Writeable
456    ///
457    ///
458    /// #### `translator-credits`
459    ///  The translator credits string.
460    ///
461    /// It will be displayed on the Credits page.
462    ///
463    /// This string should be `"translator-credits"` or `"translator_credits"` and
464    /// should be marked as translatable.
465    ///
466    /// The string may contain email addresses and URLs, see the introduction for
467    /// more details.
468    ///
469    /// See also:
470    ///
471    /// * [`developers`][struct@crate::AboutWindow#developers]
472    /// * [`designers`][struct@crate::AboutWindow#designers]
473    /// * [`artists`][struct@crate::AboutWindow#artists]
474    /// * [`documenters`][struct@crate::AboutWindow#documenters]
475    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
476    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
477    ///
478    /// Readable | Writeable
479    ///
480    ///
481    /// #### `version`
482    ///  The version of the application.
483    ///
484    /// The version is displayed on the main page.
485    ///
486    /// If [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] is not set, the version
487    /// will also be displayed above the release notes on the What's New page.
488    ///
489    /// Readable | Writeable
490    ///
491    ///
492    /// #### `website`
493    ///  The URL of the application's website.
494    ///
495    /// Website is displayed on the Details page, below comments, or on the main
496    /// page if the Details page doesn't have any other content.
497    ///
498    /// Applications can add other links below, see [`AboutWindow::add_link()`][crate::AboutWindow::add_link()].
499    ///
500    /// Readable | Writeable
501    /// <details><summary><h4>Window</h4></summary>
502    ///
503    ///
504    /// #### `adaptive-preview`
505    ///  Whether adaptive preview is currently open.
506    ///
507    /// Adaptive preview is a debugging tool used for testing the window
508    /// contents at specific screen sizes, simulating mobile environment.
509    ///
510    /// Adaptive preview can always be accessed from inspector. This function
511    /// allows applications to open it manually.
512    ///
513    /// Most applications should not use this property.
514    ///
515    /// Readable | Writeable
516    ///
517    ///
518    /// #### `content`
519    ///  The content widget.
520    ///
521    /// This property should always be used instead of [`child`][struct@crate::gtk::Window#child].
522    ///
523    /// Readable | Writeable
524    ///
525    ///
526    /// #### `current-breakpoint`
527    ///  The current breakpoint.
528    ///
529    /// Readable
530    ///
531    ///
532    /// #### `dialogs`
533    ///  The open dialogs.
534    ///
535    /// Readable
536    ///
537    ///
538    /// #### `visible-dialog`
539    ///  The currently visible dialog
540    ///
541    /// Readable
542    /// </details>
543    /// <details><summary><h4>Window</h4></summary>
544    ///
545    ///
546    /// #### `application`
547    ///  The [`gtk::Application`][crate::gtk::Application] associated with the window.
548    ///
549    /// The application will be kept alive for at least as long as it
550    /// has any windows associated with it (see g_application_hold()
551    /// for a way to keep it alive without windows).
552    ///
553    /// Normally, the connection between the application and the window
554    /// will remain until the window is destroyed, but you can explicitly
555    /// remove it by setting the this property to `NULL`.
556    ///
557    /// Readable | Writeable
558    ///
559    ///
560    /// #### `child`
561    ///  The child widget.
562    ///
563    /// Readable | Writeable
564    ///
565    ///
566    /// #### `decorated`
567    ///  Whether the window should have a frame (also known as *decorations*).
568    ///
569    /// Readable | Writeable
570    ///
571    ///
572    /// #### `default-height`
573    ///  The default height of the window.
574    ///
575    /// Readable | Writeable
576    ///
577    ///
578    /// #### `default-widget`
579    ///  The default widget.
580    ///
581    /// Readable | Writeable
582    ///
583    ///
584    /// #### `default-width`
585    ///  The default width of the window.
586    ///
587    /// Readable | Writeable
588    ///
589    ///
590    /// #### `deletable`
591    ///  Whether the window frame should have a close button.
592    ///
593    /// Readable | Writeable
594    ///
595    ///
596    /// #### `destroy-with-parent`
597    ///  If this window should be destroyed when the parent is destroyed.
598    ///
599    /// Readable | Writeable
600    ///
601    ///
602    /// #### `display`
603    ///  The display that will display this window.
604    ///
605    /// Readable | Writeable
606    ///
607    ///
608    /// #### `focus-visible`
609    ///  Whether 'focus rectangles' are currently visible in this window.
610    ///
611    /// This property is maintained by GTK based on user input
612    /// and should not be set by applications.
613    ///
614    /// Readable | Writeable
615    ///
616    ///
617    /// #### `focus-widget`
618    ///  The focus widget.
619    ///
620    /// Readable | Writeable
621    ///
622    ///
623    /// #### `fullscreened`
624    ///  Whether the window is fullscreen.
625    ///
626    /// Setting this property is the equivalent of calling
627    /// [`GtkWindowExtManual::fullscreen()`][crate::gtk::prelude::GtkWindowExtManual::fullscreen()] or [`GtkWindowExtManual::unfullscreen()`][crate::gtk::prelude::GtkWindowExtManual::unfullscreen()];
628    /// either operation is asynchronous, which means you will need to
629    /// connect to the ::notify signal in order to know whether the
630    /// operation was successful.
631    ///
632    /// Readable | Writeable
633    ///
634    ///
635    /// #### `gravity`
636    ///  The gravity to use when resizing the window programmatically.
637    ///
638    /// Gravity describes which point of the window we want to keep
639    /// fixed (meaning that the window will grow in the opposite direction).
640    /// For example, a gravity of `GTK_WINDOW_GRAVITY_TOP_RIGHT` means that we
641    /// want the to fix top right corner of the window.
642    ///
643    /// Readable | Writeable
644    ///
645    ///
646    /// #### `handle-menubar-accel`
647    ///  Whether the window frame should handle <kbd>F10</kbd> for activating
648    /// menubars.
649    ///
650    /// Readable | Writeable
651    ///
652    ///
653    /// #### `hide-on-close`
654    ///  If this window should be hidden instead of destroyed when the user clicks
655    /// the close button.
656    ///
657    /// Readable | Writeable
658    ///
659    ///
660    /// #### `icon-name`
661    ///  Specifies the name of the themed icon to use as the window icon.
662    ///
663    /// See `Gtk::IconTheme` for more details.
664    ///
665    /// Readable | Writeable
666    ///
667    ///
668    /// #### `is-active`
669    ///  Whether the toplevel is the currently active window.
670    ///
671    /// Readable
672    ///
673    ///
674    /// #### `maximized`
675    ///  Whether the window is maximized.
676    ///
677    /// Setting this property is the equivalent of calling
678    /// [`GtkWindowExtManual::maximize()`][crate::gtk::prelude::GtkWindowExtManual::maximize()] or [`GtkWindowExtManual::unmaximize()`][crate::gtk::prelude::GtkWindowExtManual::unmaximize()];
679    /// either operation is asynchronous, which means you will need to
680    /// connect to the ::notify signal in order to know whether the
681    /// operation was successful.
682    ///
683    /// Readable | Writeable
684    ///
685    ///
686    /// #### `mnemonics-visible`
687    ///  Whether mnemonics are currently visible in this window.
688    ///
689    /// This property is maintained by GTK based on user input,
690    /// and should not be set by applications.
691    ///
692    /// Readable | Writeable
693    ///
694    ///
695    /// #### `modal`
696    ///  If true, the window is modal.
697    ///
698    /// Readable | Writeable
699    ///
700    ///
701    /// #### `resizable`
702    ///  If true, users can resize the window.
703    ///
704    /// Readable | Writeable
705    ///
706    ///
707    /// #### `startup-id`
708    ///  A write-only property for setting window's startup notification identifier.
709    ///
710    /// Writeable
711    ///
712    ///
713    /// #### `suspended`
714    ///  Whether the window is suspended.
715    ///
716    /// See [`GtkWindowExtManual::is_suspended()`][crate::gtk::prelude::GtkWindowExtManual::is_suspended()] for details about what suspended means.
717    ///
718    /// Readable
719    ///
720    ///
721    /// #### `title`
722    ///  The title of the window.
723    ///
724    /// Readable | Writeable
725    ///
726    ///
727    /// #### `titlebar`
728    ///  The titlebar widget.
729    ///
730    /// Readable | Writeable
731    ///
732    ///
733    /// #### `transient-for`
734    ///  The transient parent of the window.
735    ///
736    /// Readable | Writeable | Construct
737    /// </details>
738    /// <details><summary><h4>Widget</h4></summary>
739    ///
740    ///
741    /// #### `can-focus`
742    ///  Whether the widget or any of its descendents can accept
743    /// the input focus.
744    ///
745    /// This property is meant to be set by widget implementations,
746    /// typically in their instance init function.
747    ///
748    /// Readable | Writeable
749    ///
750    ///
751    /// #### `can-target`
752    ///  Whether the widget can receive pointer events.
753    ///
754    /// Readable | Writeable
755    ///
756    ///
757    /// #### `css-classes`
758    ///  A list of css classes applied to this widget.
759    ///
760    /// Readable | Writeable
761    ///
762    ///
763    /// #### `css-name`
764    ///  The name of this widget in the CSS tree.
765    ///
766    /// This property is meant to be set by widget implementations,
767    /// typically in their instance init function.
768    ///
769    /// Readable | Writeable | Construct Only
770    ///
771    ///
772    /// #### `cursor`
773    ///  The cursor used by @widget.
774    ///
775    /// Readable | Writeable
776    ///
777    ///
778    /// #### `focus-on-click`
779    ///  Whether the widget should grab focus when it is clicked with the mouse.
780    ///
781    /// This property is only relevant for widgets that can take focus.
782    ///
783    /// Readable | Writeable
784    ///
785    ///
786    /// #### `focusable`
787    ///  Whether this widget itself will accept the input focus.
788    ///
789    /// Readable | Writeable
790    ///
791    ///
792    /// #### `halign`
793    ///  How to distribute horizontal space if widget gets extra space.
794    ///
795    /// Readable | Writeable
796    ///
797    ///
798    /// #### `has-default`
799    ///  Whether the widget is the default widget.
800    ///
801    /// Readable
802    ///
803    ///
804    /// #### `has-focus`
805    ///  Whether the widget has the input focus.
806    ///
807    /// Readable
808    ///
809    ///
810    /// #### `has-tooltip`
811    ///  Enables or disables the emission of the [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip]
812    /// signal on @widget.
813    ///
814    /// A true value indicates that @widget can have a tooltip, in this case
815    /// the widget will be queried using [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip] to
816    /// determine whether it will provide a tooltip or not.
817    ///
818    /// Readable | Writeable
819    ///
820    ///
821    /// #### `height-request`
822    ///  Overrides for height request of the widget.
823    ///
824    /// If this is -1, the natural request will be used.
825    ///
826    /// Readable | Writeable
827    ///
828    ///
829    /// #### `hexpand`
830    ///  Whether to expand horizontally.
831    ///
832    /// Readable | Writeable
833    ///
834    ///
835    /// #### `hexpand-set`
836    ///  Whether to use the `hexpand` property.
837    ///
838    /// Readable | Writeable
839    ///
840    ///
841    /// #### `layout-manager`
842    ///  The [`gtk::LayoutManager`][crate::gtk::LayoutManager] instance to use to compute
843    /// the preferred size of the widget, and allocate its children.
844    ///
845    /// This property is meant to be set by widget implementations,
846    /// typically in their instance init function.
847    ///
848    /// Readable | Writeable
849    ///
850    ///
851    /// #### `limit-events`
852    ///  Makes this widget act like a modal dialog, with respect to
853    /// event delivery.
854    ///
855    /// Global event controllers will not handle events with targets
856    /// inside the widget, unless they are set up to ignore propagation
857    /// limits. See `Gtk::EventController::set_propagation_limit()`.
858    ///
859    /// Readable | Writeable
860    ///
861    ///
862    /// #### `margin-bottom`
863    ///  Margin on bottom side of widget.
864    ///
865    /// This property adds margin outside of the widget's normal size
866    /// request, the margin will be added in addition to the size from
867    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
868    ///
869    /// Readable | Writeable
870    ///
871    ///
872    /// #### `margin-end`
873    ///  Margin on end of widget, horizontally.
874    ///
875    /// This property supports left-to-right and right-to-left text
876    /// directions.
877    ///
878    /// This property adds margin outside of the widget's normal size
879    /// request, the margin will be added in addition to the size from
880    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
881    ///
882    /// Readable | Writeable
883    ///
884    ///
885    /// #### `margin-start`
886    ///  Margin on start of widget, horizontally.
887    ///
888    /// This property supports left-to-right and right-to-left text
889    /// directions.
890    ///
891    /// This property adds margin outside of the widget's normal size
892    /// request, the margin will be added in addition to the size from
893    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
894    ///
895    /// Readable | Writeable
896    ///
897    ///
898    /// #### `margin-top`
899    ///  Margin on top side of widget.
900    ///
901    /// This property adds margin outside of the widget's normal size
902    /// request, the margin will be added in addition to the size from
903    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
904    ///
905    /// Readable | Writeable
906    ///
907    ///
908    /// #### `name`
909    ///  The name of the widget.
910    ///
911    /// Readable | Writeable
912    ///
913    ///
914    /// #### `opacity`
915    ///  The requested opacity of the widget.
916    ///
917    /// Readable | Writeable
918    ///
919    ///
920    /// #### `overflow`
921    ///  How content outside the widget's content area is treated.
922    ///
923    /// This property is meant to be set by widget implementations,
924    /// typically in their instance init function.
925    ///
926    /// Readable | Writeable
927    ///
928    ///
929    /// #### `parent`
930    ///  The parent widget of this widget.
931    ///
932    /// Readable
933    ///
934    ///
935    /// #### `receives-default`
936    ///  Whether the widget will receive the default action when it is focused.
937    ///
938    /// Readable | Writeable
939    ///
940    ///
941    /// #### `root`
942    ///  The [`gtk::Root`][crate::gtk::Root] widget of the widget tree containing this widget.
943    ///
944    /// This will be `NULL` if the widget is not contained in a root widget.
945    ///
946    /// Readable
947    ///
948    ///
949    /// #### `scale-factor`
950    ///  The scale factor of the widget.
951    ///
952    /// Readable
953    ///
954    ///
955    /// #### `sensitive`
956    ///  Whether the widget responds to input.
957    ///
958    /// Readable | Writeable
959    ///
960    ///
961    /// #### `tooltip-markup`
962    ///  Sets the text of tooltip to be the given string, which is marked up
963    /// with Pango markup.
964    ///
965    /// Also see `Gtk::Tooltip::set_markup()`.
966    ///
967    /// This is a convenience property which will take care of getting the
968    /// tooltip shown if the given string is not `NULL`:
969    /// [`has-tooltip`][struct@crate::gtk::Widget#has-tooltip] will automatically be set to true
970    /// and there will be taken care of [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip] in
971    /// the default signal handler.
972    ///
973    /// Note that if both [`tooltip-text`][struct@crate::gtk::Widget#tooltip-text] and
974    /// [`tooltip-markup`][struct@crate::gtk::Widget#tooltip-markup] are set, the last one wins.
975    ///
976    /// Readable | Writeable
977    ///
978    ///
979    /// #### `tooltip-text`
980    ///  Sets the text of tooltip to be the given string.
981    ///
982    /// Also see `Gtk::Tooltip::set_text()`.
983    ///
984    /// This is a convenience property which will take care of getting the
985    /// tooltip shown if the given string is not `NULL`:
986    /// [`has-tooltip`][struct@crate::gtk::Widget#has-tooltip] will automatically be set to true
987    /// and there will be taken care of [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip] in
988    /// the default signal handler.
989    ///
990    /// Note that if both [`tooltip-text`][struct@crate::gtk::Widget#tooltip-text] and
991    /// [`tooltip-markup`][struct@crate::gtk::Widget#tooltip-markup] are set, the last one wins.
992    ///
993    /// Readable | Writeable
994    ///
995    ///
996    /// #### `valign`
997    ///  How to distribute vertical space if widget gets extra space.
998    ///
999    /// Readable | Writeable
1000    ///
1001    ///
1002    /// #### `vexpand`
1003    ///  Whether to expand vertically.
1004    ///
1005    /// Readable | Writeable
1006    ///
1007    ///
1008    /// #### `vexpand-set`
1009    ///  Whether to use the `vexpand` property.
1010    ///
1011    /// Readable | Writeable
1012    ///
1013    ///
1014    /// #### `visible`
1015    ///  Whether the widget is visible.
1016    ///
1017    /// Readable | Writeable
1018    ///
1019    ///
1020    /// #### `width-request`
1021    ///  Overrides for width request of the widget.
1022    ///
1023    /// If this is -1, the natural request will be used.
1024    ///
1025    /// Readable | Writeable
1026    /// </details>
1027    /// <details><summary><h4>Accessible</h4></summary>
1028    ///
1029    ///
1030    /// #### `accessible-role`
1031    ///  The accessible role of the given [`gtk::Accessible`][crate::gtk::Accessible] implementation.
1032    ///
1033    /// The accessible role cannot be changed once set.
1034    ///
1035    /// Readable | Writeable
1036    /// </details>
1037    ///
1038    /// ## Signals
1039    ///
1040    ///
1041    /// #### `activate-link`
1042    ///  Emitted when a URL is activated.
1043    ///
1044    /// Applications may connect to it to override the default behavior, which is
1045    /// to call `show_uri()`.
1046    ///
1047    ///
1048    /// <details><summary><h4>Window</h4></summary>
1049    ///
1050    ///
1051    /// #### `activate-default`
1052    ///  Emitted when the user activates the default widget.
1053    ///
1054    /// This is a [keybinding signal](class.SignalAction.html).
1055    ///
1056    /// The keybindings for this signal are all forms of the <kbd>Enter</kbd> key.
1057    ///
1058    /// Action
1059    ///
1060    ///
1061    /// #### `activate-focus`
1062    ///  Emitted when the user activates the currently focused
1063    /// widget of @window.
1064    ///
1065    /// This is a [keybinding signal](class.SignalAction.html).
1066    ///
1067    /// The default binding for this signal is <kbd>␣</kbd>.
1068    ///
1069    /// Action
1070    ///
1071    ///
1072    /// #### `close-request`
1073    ///  Emitted when the user clicks on the close button of the window.
1074    ///
1075    ///
1076    ///
1077    ///
1078    /// #### `enable-debugging`
1079    ///  Emitted when the user enables or disables interactive debugging.
1080    ///
1081    /// When @toggle is true, interactive debugging is toggled on or off,
1082    /// when it is false, the debugger will be pointed at the widget
1083    /// under the pointer.
1084    ///
1085    /// This is a [keybinding signal](class.SignalAction.html).
1086    ///
1087    /// The default bindings for this signal are
1088    /// <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>I</kbd> and
1089    /// <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>D</kbd>.
1090    ///
1091    /// Action
1092    ///
1093    ///
1094    /// #### `keys-changed`
1095    ///  Emitted when the set of accelerators or mnemonics that
1096    /// are associated with the window changes.
1097    ///
1098    ///
1099    /// </details>
1100    /// <details><summary><h4>Widget</h4></summary>
1101    ///
1102    ///
1103    /// #### `destroy`
1104    ///  Signals that all holders of a reference to the widget should release
1105    /// the reference that they hold.
1106    ///
1107    /// May result in finalization of the widget if all references are released.
1108    ///
1109    /// This signal is not suitable for saving widget state.
1110    ///
1111    ///
1112    ///
1113    ///
1114    /// #### `direction-changed`
1115    ///  Emitted when the text direction of a widget changes.
1116    ///
1117    ///
1118    ///
1119    ///
1120    /// #### `hide`
1121    ///  Emitted when @widget is hidden.
1122    ///
1123    ///
1124    ///
1125    ///
1126    /// #### `keynav-failed`
1127    ///  Emitted if keyboard navigation fails.
1128    ///
1129    /// See [`WidgetExtManual::keynav_failed()`][crate::gtk::prelude::WidgetExtManual::keynav_failed()] for details.
1130    ///
1131    ///
1132    ///
1133    ///
1134    /// #### `map`
1135    ///  Emitted when @widget is going to be mapped.
1136    ///
1137    /// A widget is mapped when the widget is visible (which is controlled with
1138    /// [`visible`][struct@crate::gtk::Widget#visible]) and all its parents up to the toplevel widget
1139    /// are also visible.
1140    ///
1141    /// The `::map` signal can be used to determine whether a widget will be drawn,
1142    /// for instance it can resume an animation that was stopped during the
1143    /// emission of [`unmap`][struct@crate::gtk::Widget#unmap].
1144    ///
1145    ///
1146    ///
1147    ///
1148    /// #### `mnemonic-activate`
1149    ///  Emitted when a widget is activated via a mnemonic.
1150    ///
1151    /// The default handler for this signal activates @widget if @group_cycling
1152    /// is false, or just makes @widget grab focus if @group_cycling is true.
1153    ///
1154    ///
1155    ///
1156    ///
1157    /// #### `move-focus`
1158    ///  Emitted when the focus is moved.
1159    ///
1160    /// The `::move-focus` signal is a [keybinding signal](class.SignalAction.html).
1161    ///
1162    /// The default bindings for this signal are <kbd>Tab</kbd> to move forward,
1163    /// and <kbd>Shift</kbd>+<kbd>Tab</kbd> to move backward.
1164    ///
1165    /// Action
1166    ///
1167    ///
1168    /// #### `query-tooltip`
1169    ///  Emitted when the widget’s tooltip is about to be shown.
1170    ///
1171    /// This happens when the [`has-tooltip`][struct@crate::gtk::Widget#has-tooltip] property
1172    /// is true and the hover timeout has expired with the cursor hovering
1173    /// above @widget; or emitted when @widget got focus in keyboard mode.
1174    ///
1175    /// Using the given coordinates, the signal handler should determine
1176    /// whether a tooltip should be shown for @widget. If this is the case
1177    /// true should be returned, false otherwise. Note that if @keyboard_mode
1178    /// is true, the values of @x and @y are undefined and should not be used.
1179    ///
1180    /// The signal handler is free to manipulate @tooltip with the therefore
1181    /// destined function calls.
1182    ///
1183    ///
1184    ///
1185    ///
1186    /// #### `realize`
1187    ///  Emitted when @widget is associated with a `GdkSurface`.
1188    ///
1189    /// This means that [`WidgetExtManual::realize()`][crate::gtk::prelude::WidgetExtManual::realize()] has been called
1190    /// or the widget has been mapped (that is, it is going to be drawn).
1191    ///
1192    ///
1193    ///
1194    ///
1195    /// #### `show`
1196    ///  Emitted when @widget is shown.
1197    ///
1198    ///
1199    ///
1200    ///
1201    /// #### `state-flags-changed`
1202    ///  Emitted when the widget state changes.
1203    ///
1204    /// See [`WidgetExtManual::state_flags()`][crate::gtk::prelude::WidgetExtManual::state_flags()].
1205    ///
1206    ///
1207    ///
1208    ///
1209    /// #### `unmap`
1210    ///  Emitted when @widget is going to be unmapped.
1211    ///
1212    /// A widget is unmapped when either it or any of its parents up to the
1213    /// toplevel widget have been set as hidden.
1214    ///
1215    /// As `::unmap` indicates that a widget will not be shown any longer,
1216    /// it can be used to, for example, stop an animation on the widget.
1217    ///
1218    ///
1219    ///
1220    ///
1221    /// #### `unrealize`
1222    ///  Emitted when the `GdkSurface` associated with @widget is destroyed.
1223    ///
1224    /// This means that [`WidgetExtManual::unrealize()`][crate::gtk::prelude::WidgetExtManual::unrealize()] has been called
1225    /// or the widget has been unmapped (that is, it is going to be hidden).
1226    ///
1227    ///
1228    /// </details>
1229    ///
1230    /// # Implements
1231    ///
1232    /// [`AdwWindowExt`][trait@crate::prelude::AdwWindowExt], [`trait@gtk::prelude::GtkWindowExt`], [`trait@gtk::prelude::WidgetExt`], [`trait@glib::ObjectExt`], [`trait@gtk::prelude::AccessibleExt`], [`trait@gtk::prelude::BuildableExt`], [`trait@gtk::prelude::ConstraintTargetExt`], [`trait@gtk::prelude::NativeExt`], [`trait@gtk::prelude::RootExt`], [`trait@gtk::prelude::ShortcutManagerExt`]
1233    #[doc(alias = "AdwAboutWindow")]
1234    pub struct AboutWindow(Object<ffi::AdwAboutWindow, ffi::AdwAboutWindowClass>) @extends Window, gtk::Window, gtk::Widget, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Native, gtk::Root, gtk::ShortcutManager;
1235
1236    match fn {
1237        type_ => || ffi::adw_about_window_get_type(),
1238    }
1239}
1240
1241impl AboutWindow {
1242    /// Creates a new [`AboutWindow`][crate::AboutWindow].
1243    ///
1244    /// # Deprecated since 1.6
1245    ///
1246    /// Use [`AboutDialog`][crate::AboutDialog].
1247    ///
1248    /// # Returns
1249    ///
1250    /// the newly created [`AboutWindow`][crate::AboutWindow]
1251    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1252    #[allow(deprecated)]
1253    #[doc(alias = "adw_about_window_new")]
1254    pub fn new() -> AboutWindow {
1255        assert_initialized_main_thread!();
1256        unsafe { gtk::Widget::from_glib_none(ffi::adw_about_window_new()).unsafe_cast() }
1257    }
1258
1259    /// Creates a new [`AboutWindow`][crate::AboutWindow] using AppStream metadata.
1260    ///
1261    /// This automatically sets the following properties with the following AppStream
1262    /// values:
1263    ///
1264    /// * [`application-icon`][struct@crate::AboutWindow#application-icon] is set from the `<id>`
1265    /// * [`application-name`][struct@crate::AboutWindow#application-name] is set from the `<name>`
1266    /// * [`developer-name`][struct@crate::AboutWindow#developer-name] is set from the `<name>` within
1267    ///      `<developer>`
1268    /// * [`version`][struct@crate::AboutWindow#version] is set from the version of the latest release
1269    /// * [`website`][struct@crate::AboutWindow#website] is set from the `<url type="homepage">`
1270    /// * [`support-url`][struct@crate::AboutWindow#support-url] is set from the `<url type="help">`
1271    /// * [`issue-url`][struct@crate::AboutWindow#issue-url] is set from the `<url type="bugtracker">`
1272    /// * [`license-type`][struct@crate::AboutWindow#license-type] is set from the `<project_license>`.
1273    ///     If the license type retrieved from AppStream is not listed in
1274    ///     [`gtk::License`][crate::gtk::License], it will be set to [enum@Gtk.License.custom].
1275    ///
1276    /// If @release_notes_version is not `NULL`,
1277    /// [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] is set to match it, while
1278    /// [`release-notes`][struct@crate::AboutWindow#release-notes] is set from the AppStream release
1279    /// description for that version.
1280    ///
1281    /// # Deprecated since 1.6
1282    ///
1283    /// Use [`AboutDialog`][crate::AboutDialog].
1284    /// ## `resource_path`
1285    /// The resource to use
1286    /// ## `release_notes_version`
1287    /// The version to retrieve release notes for
1288    ///
1289    /// # Returns
1290    ///
1291    /// the newly created [`AboutWindow`][crate::AboutWindow]
1292    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1293    #[cfg(not(target_env = "msvc"))]
1294    #[cfg_attr(docsrs, doc(cfg(not(target_env = "msvc"))))]
1295    #[cfg(feature = "v1_4")]
1296    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
1297    #[allow(deprecated)]
1298    #[doc(alias = "adw_about_window_new_from_appdata")]
1299    #[doc(alias = "new_from_appdata")]
1300    pub fn from_appdata(resource_path: &str, release_notes_version: Option<&str>) -> AboutWindow {
1301        assert_initialized_main_thread!();
1302        unsafe {
1303            gtk::Widget::from_glib_none(ffi::adw_about_window_new_from_appdata(
1304                resource_path.to_glib_none().0,
1305                release_notes_version.to_glib_none().0,
1306            ))
1307            .unsafe_cast()
1308        }
1309    }
1310
1311    // rustdoc-stripper-ignore-next
1312    /// Creates a new builder-pattern struct instance to construct [`AboutWindow`] objects.
1313    ///
1314    /// This method returns an instance of [`AboutWindowBuilder`](crate::builders::AboutWindowBuilder) which can be used to create [`AboutWindow`] objects.
1315    pub fn builder() -> AboutWindowBuilder {
1316        AboutWindowBuilder::new()
1317    }
1318
1319    /// Adds a section to the Acknowledgements page.
1320    ///
1321    /// This can be used to acknowledge additional people and organizations for their
1322    /// non-development contributions - for example, backers in a crowdfunded
1323    /// project.
1324    ///
1325    /// Each name may contain email addresses and URLs, see the introduction for more
1326    /// details.
1327    ///
1328    /// See also:
1329    ///
1330    /// * [`developers`][struct@crate::AboutWindow#developers]
1331    /// * [`designers`][struct@crate::AboutWindow#designers]
1332    /// * [`artists`][struct@crate::AboutWindow#artists]
1333    /// * [`documenters`][struct@crate::AboutWindow#documenters]
1334    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
1335    /// * [`add_credit_section()`][Self::add_credit_section()]
1336    ///
1337    /// # Deprecated since 1.6
1338    ///
1339    /// Use [`AboutDialog`][crate::AboutDialog].
1340    /// ## `name`
1341    /// the section name
1342    /// ## `people`
1343    /// the list of names
1344    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1345    #[allow(deprecated)]
1346    #[doc(alias = "adw_about_window_add_acknowledgement_section")]
1347    pub fn add_acknowledgement_section(&self, name: Option<&str>, people: &[&str]) {
1348        unsafe {
1349            ffi::adw_about_window_add_acknowledgement_section(
1350                self.to_glib_none().0,
1351                name.to_glib_none().0,
1352                people.to_glib_none().0,
1353            );
1354        }
1355    }
1356
1357    /// Adds an extra section to the Credits page.
1358    ///
1359    /// Extra sections are displayed below the standard categories.
1360    ///
1361    /// Each name may contain email addresses and URLs, see the introduction for more
1362    /// details.
1363    ///
1364    /// See also:
1365    ///
1366    /// * [`developers`][struct@crate::AboutWindow#developers]
1367    /// * [`designers`][struct@crate::AboutWindow#designers]
1368    /// * [`artists`][struct@crate::AboutWindow#artists]
1369    /// * [`documenters`][struct@crate::AboutWindow#documenters]
1370    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
1371    /// * [`add_acknowledgement_section()`][Self::add_acknowledgement_section()]
1372    ///
1373    /// # Deprecated since 1.6
1374    ///
1375    /// Use [`AboutDialog`][crate::AboutDialog].
1376    /// ## `name`
1377    /// the section name
1378    /// ## `people`
1379    /// the list of names
1380    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1381    #[allow(deprecated)]
1382    #[doc(alias = "adw_about_window_add_credit_section")]
1383    pub fn add_credit_section(&self, name: Option<&str>, people: &[&str]) {
1384        unsafe {
1385            ffi::adw_about_window_add_credit_section(
1386                self.to_glib_none().0,
1387                name.to_glib_none().0,
1388                people.to_glib_none().0,
1389            );
1390        }
1391    }
1392
1393    /// Adds an extra section to the Legal page.
1394    ///
1395    /// Extra sections will be displayed below the application's own information.
1396    ///
1397    /// The parameters @copyright, @license_type and @license will be used to present
1398    /// the it the same way as [`copyright`][struct@crate::AboutWindow#copyright],
1399    /// [`license-type`][struct@crate::AboutWindow#license-type] and [`license`][struct@crate::AboutWindow#license] are
1400    /// for the application's own information.
1401    ///
1402    /// See those properties for more details.
1403    ///
1404    /// This can be useful to attribute the application dependencies or data.
1405    ///
1406    /// Examples:
1407    ///
1408    /// **⚠️ The following code is in c ⚠️**
1409    ///
1410    /// ```c
1411    /// adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about),
1412    ///                                     _("Copyright and a known license"),
1413    ///                                     "© 2022 Example",
1414    ///                                     GTK_LICENSE_LGPL_2_1,
1415    ///                                     NULL);
1416    ///
1417    /// adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about),
1418    ///                                     _("Copyright and custom license"),
1419    ///                                     "© 2022 Example",
1420    ///                                     GTK_LICENSE_CUSTOM,
1421    ///                                     "Custom license text");
1422    ///
1423    /// adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about),
1424    ///                                     _("Copyright only"),
1425    ///                                     "© 2022 Example",
1426    ///                                     GTK_LICENSE_UNKNOWN,
1427    ///                                     NULL);
1428    ///
1429    /// adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about),
1430    ///                                     _("Custom license only"),
1431    ///                                     NULL,
1432    ///                                     GTK_LICENSE_CUSTOM,
1433    ///                                     "Something completely custom here.");
1434    /// ```
1435    ///
1436    /// # Deprecated since 1.6
1437    ///
1438    /// Use [`AboutDialog`][crate::AboutDialog].
1439    /// ## `title`
1440    /// the name of the section
1441    /// ## `copyright`
1442    /// a copyright string
1443    /// ## `license_type`
1444    /// the type of license
1445    /// ## `license`
1446    /// custom license information
1447    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1448    #[allow(deprecated)]
1449    #[doc(alias = "adw_about_window_add_legal_section")]
1450    pub fn add_legal_section(
1451        &self,
1452        title: &str,
1453        copyright: Option<&str>,
1454        license_type: gtk::License,
1455        license: Option<&str>,
1456    ) {
1457        unsafe {
1458            ffi::adw_about_window_add_legal_section(
1459                self.to_glib_none().0,
1460                title.to_glib_none().0,
1461                copyright.to_glib_none().0,
1462                license_type.into_glib(),
1463                license.to_glib_none().0,
1464            );
1465        }
1466    }
1467
1468    /// Adds an extra link to the Details page.
1469    ///
1470    /// Extra links are displayed under the comment and website.
1471    ///
1472    /// Underlines in @title will be interpreted as indicating a mnemonic.
1473    ///
1474    /// See [`website`][struct@crate::AboutWindow#website].
1475    ///
1476    /// # Deprecated since 1.6
1477    ///
1478    /// Use [`AboutDialog`][crate::AboutDialog].
1479    /// ## `title`
1480    /// the link title
1481    /// ## `url`
1482    /// the link URL
1483    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1484    #[allow(deprecated)]
1485    #[doc(alias = "adw_about_window_add_link")]
1486    pub fn add_link(&self, title: &str, url: &str) {
1487        unsafe {
1488            ffi::adw_about_window_add_link(
1489                self.to_glib_none().0,
1490                title.to_glib_none().0,
1491                url.to_glib_none().0,
1492            );
1493        }
1494    }
1495
1496    /// Gets the name of the application icon for @self.
1497    ///
1498    /// # Deprecated since 1.6
1499    ///
1500    /// Use [`AboutDialog`][crate::AboutDialog].
1501    ///
1502    /// # Returns
1503    ///
1504    /// the application icon name
1505    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1506    #[allow(deprecated)]
1507    #[doc(alias = "adw_about_window_get_application_icon")]
1508    #[doc(alias = "get_application_icon")]
1509    #[doc(alias = "application-icon")]
1510    pub fn application_icon(&self) -> glib::GString {
1511        unsafe {
1512            from_glib_none(ffi::adw_about_window_get_application_icon(
1513                self.to_glib_none().0,
1514            ))
1515        }
1516    }
1517
1518    /// Gets the application name for @self.
1519    ///
1520    /// # Deprecated since 1.6
1521    ///
1522    /// Use [`AboutDialog`][crate::AboutDialog].
1523    ///
1524    /// # Returns
1525    ///
1526    /// the application name
1527    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1528    #[allow(deprecated)]
1529    #[doc(alias = "adw_about_window_get_application_name")]
1530    #[doc(alias = "get_application_name")]
1531    #[doc(alias = "application-name")]
1532    pub fn application_name(&self) -> glib::GString {
1533        unsafe {
1534            from_glib_none(ffi::adw_about_window_get_application_name(
1535                self.to_glib_none().0,
1536            ))
1537        }
1538    }
1539
1540    /// Gets the list of artists of the application.
1541    ///
1542    /// # Deprecated since 1.6
1543    ///
1544    /// Use [`AboutDialog`][crate::AboutDialog].
1545    ///
1546    /// # Returns
1547    ///
1548    /// The list of artists
1549    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1550    #[allow(deprecated)]
1551    #[doc(alias = "adw_about_window_get_artists")]
1552    #[doc(alias = "get_artists")]
1553    pub fn artists(&self) -> Vec<glib::GString> {
1554        unsafe {
1555            FromGlibPtrContainer::from_glib_none(ffi::adw_about_window_get_artists(
1556                self.to_glib_none().0,
1557            ))
1558        }
1559    }
1560
1561    /// Gets the comments about the application.
1562    ///
1563    /// # Deprecated since 1.6
1564    ///
1565    /// Use [`AboutDialog`][crate::AboutDialog].
1566    ///
1567    /// # Returns
1568    ///
1569    /// the comments
1570    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1571    #[allow(deprecated)]
1572    #[doc(alias = "adw_about_window_get_comments")]
1573    #[doc(alias = "get_comments")]
1574    pub fn comments(&self) -> glib::GString {
1575        unsafe { from_glib_none(ffi::adw_about_window_get_comments(self.to_glib_none().0)) }
1576    }
1577
1578    /// Gets the copyright information for @self.
1579    ///
1580    /// # Deprecated since 1.6
1581    ///
1582    /// Use [`AboutDialog`][crate::AboutDialog].
1583    ///
1584    /// # Returns
1585    ///
1586    /// the copyright information
1587    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1588    #[allow(deprecated)]
1589    #[doc(alias = "adw_about_window_get_copyright")]
1590    #[doc(alias = "get_copyright")]
1591    pub fn copyright(&self) -> glib::GString {
1592        unsafe { from_glib_none(ffi::adw_about_window_get_copyright(self.to_glib_none().0)) }
1593    }
1594
1595    /// Gets the debug information for @self.
1596    ///
1597    /// # Deprecated since 1.6
1598    ///
1599    /// Use [`AboutDialog`][crate::AboutDialog].
1600    ///
1601    /// # Returns
1602    ///
1603    /// the debug information
1604    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1605    #[allow(deprecated)]
1606    #[doc(alias = "adw_about_window_get_debug_info")]
1607    #[doc(alias = "get_debug_info")]
1608    #[doc(alias = "debug-info")]
1609    pub fn debug_info(&self) -> glib::GString {
1610        unsafe { from_glib_none(ffi::adw_about_window_get_debug_info(self.to_glib_none().0)) }
1611    }
1612
1613    /// Gets the debug information filename for @self.
1614    ///
1615    /// # Deprecated since 1.6
1616    ///
1617    /// Use [`AboutDialog`][crate::AboutDialog].
1618    ///
1619    /// # Returns
1620    ///
1621    /// the debug information filename
1622    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1623    #[allow(deprecated)]
1624    #[doc(alias = "adw_about_window_get_debug_info_filename")]
1625    #[doc(alias = "get_debug_info_filename")]
1626    #[doc(alias = "debug-info-filename")]
1627    pub fn debug_info_filename(&self) -> glib::GString {
1628        unsafe {
1629            from_glib_none(ffi::adw_about_window_get_debug_info_filename(
1630                self.to_glib_none().0,
1631            ))
1632        }
1633    }
1634
1635    /// Gets the list of designers of the application.
1636    ///
1637    /// # Deprecated since 1.6
1638    ///
1639    /// Use [`AboutDialog`][crate::AboutDialog].
1640    ///
1641    /// # Returns
1642    ///
1643    /// The list of designers
1644    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1645    #[allow(deprecated)]
1646    #[doc(alias = "adw_about_window_get_designers")]
1647    #[doc(alias = "get_designers")]
1648    pub fn designers(&self) -> Vec<glib::GString> {
1649        unsafe {
1650            FromGlibPtrContainer::from_glib_none(ffi::adw_about_window_get_designers(
1651                self.to_glib_none().0,
1652            ))
1653        }
1654    }
1655
1656    /// Gets the developer name for @self.
1657    ///
1658    /// # Deprecated since 1.6
1659    ///
1660    /// Use [`AboutDialog`][crate::AboutDialog].
1661    ///
1662    /// # Returns
1663    ///
1664    /// the developer_name
1665    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1666    #[allow(deprecated)]
1667    #[doc(alias = "adw_about_window_get_developer_name")]
1668    #[doc(alias = "get_developer_name")]
1669    #[doc(alias = "developer-name")]
1670    pub fn developer_name(&self) -> glib::GString {
1671        unsafe {
1672            from_glib_none(ffi::adw_about_window_get_developer_name(
1673                self.to_glib_none().0,
1674            ))
1675        }
1676    }
1677
1678    /// Gets the list of developers of the application.
1679    ///
1680    /// # Deprecated since 1.6
1681    ///
1682    /// Use [`AboutDialog`][crate::AboutDialog].
1683    ///
1684    /// # Returns
1685    ///
1686    /// The list of developers
1687    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1688    #[allow(deprecated)]
1689    #[doc(alias = "adw_about_window_get_developers")]
1690    #[doc(alias = "get_developers")]
1691    pub fn developers(&self) -> Vec<glib::GString> {
1692        unsafe {
1693            FromGlibPtrContainer::from_glib_none(ffi::adw_about_window_get_developers(
1694                self.to_glib_none().0,
1695            ))
1696        }
1697    }
1698
1699    /// Gets the list of documenters of the application.
1700    ///
1701    /// # Deprecated since 1.6
1702    ///
1703    /// Use [`AboutDialog`][crate::AboutDialog].
1704    ///
1705    /// # Returns
1706    ///
1707    /// The list of documenters
1708    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1709    #[allow(deprecated)]
1710    #[doc(alias = "adw_about_window_get_documenters")]
1711    #[doc(alias = "get_documenters")]
1712    pub fn documenters(&self) -> Vec<glib::GString> {
1713        unsafe {
1714            FromGlibPtrContainer::from_glib_none(ffi::adw_about_window_get_documenters(
1715                self.to_glib_none().0,
1716            ))
1717        }
1718    }
1719
1720    /// Gets the issue tracker URL for @self.
1721    ///
1722    /// # Deprecated since 1.6
1723    ///
1724    /// Use [`AboutDialog`][crate::AboutDialog].
1725    ///
1726    /// # Returns
1727    ///
1728    /// the issue tracker URL
1729    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1730    #[allow(deprecated)]
1731    #[doc(alias = "adw_about_window_get_issue_url")]
1732    #[doc(alias = "get_issue_url")]
1733    #[doc(alias = "issue-url")]
1734    pub fn issue_url(&self) -> glib::GString {
1735        unsafe { from_glib_none(ffi::adw_about_window_get_issue_url(self.to_glib_none().0)) }
1736    }
1737
1738    /// Gets the license for @self.
1739    ///
1740    /// # Deprecated since 1.6
1741    ///
1742    /// Use [`AboutDialog`][crate::AboutDialog].
1743    ///
1744    /// # Returns
1745    ///
1746    /// the license
1747    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1748    #[allow(deprecated)]
1749    #[doc(alias = "adw_about_window_get_license")]
1750    #[doc(alias = "get_license")]
1751    pub fn license(&self) -> glib::GString {
1752        unsafe { from_glib_none(ffi::adw_about_window_get_license(self.to_glib_none().0)) }
1753    }
1754
1755    /// Gets the license type for @self.
1756    ///
1757    /// # Deprecated since 1.6
1758    ///
1759    /// Use [`AboutDialog`][crate::AboutDialog].
1760    ///
1761    /// # Returns
1762    ///
1763    /// the license type
1764    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1765    #[allow(deprecated)]
1766    #[doc(alias = "adw_about_window_get_license_type")]
1767    #[doc(alias = "get_license_type")]
1768    #[doc(alias = "license-type")]
1769    pub fn license_type(&self) -> gtk::License {
1770        unsafe {
1771            from_glib(ffi::adw_about_window_get_license_type(
1772                self.to_glib_none().0,
1773            ))
1774        }
1775    }
1776
1777    /// Gets the release notes for @self.
1778    ///
1779    /// # Deprecated since 1.6
1780    ///
1781    /// Use [`AboutDialog`][crate::AboutDialog].
1782    ///
1783    /// # Returns
1784    ///
1785    /// the release notes
1786    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1787    #[allow(deprecated)]
1788    #[doc(alias = "adw_about_window_get_release_notes")]
1789    #[doc(alias = "get_release_notes")]
1790    #[doc(alias = "release-notes")]
1791    pub fn release_notes(&self) -> glib::GString {
1792        unsafe {
1793            from_glib_none(ffi::adw_about_window_get_release_notes(
1794                self.to_glib_none().0,
1795            ))
1796        }
1797    }
1798
1799    /// Gets the version described by the application's release notes.
1800    ///
1801    /// # Deprecated since 1.6
1802    ///
1803    /// Use [`AboutDialog`][crate::AboutDialog].
1804    ///
1805    /// # Returns
1806    ///
1807    /// the release notes version
1808    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1809    #[allow(deprecated)]
1810    #[doc(alias = "adw_about_window_get_release_notes_version")]
1811    #[doc(alias = "get_release_notes_version")]
1812    #[doc(alias = "release-notes-version")]
1813    pub fn release_notes_version(&self) -> glib::GString {
1814        unsafe {
1815            from_glib_none(ffi::adw_about_window_get_release_notes_version(
1816                self.to_glib_none().0,
1817            ))
1818        }
1819    }
1820
1821    /// Gets the URL of the support page for @self.
1822    ///
1823    /// # Deprecated since 1.6
1824    ///
1825    /// Use [`AboutDialog`][crate::AboutDialog].
1826    ///
1827    /// # Returns
1828    ///
1829    /// the support page URL
1830    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1831    #[allow(deprecated)]
1832    #[doc(alias = "adw_about_window_get_support_url")]
1833    #[doc(alias = "get_support_url")]
1834    #[doc(alias = "support-url")]
1835    pub fn support_url(&self) -> glib::GString {
1836        unsafe { from_glib_none(ffi::adw_about_window_get_support_url(self.to_glib_none().0)) }
1837    }
1838
1839    /// Gets the translator credits string.
1840    ///
1841    /// # Deprecated since 1.6
1842    ///
1843    /// Use [`AboutDialog`][crate::AboutDialog].
1844    ///
1845    /// # Returns
1846    ///
1847    /// The translator credits string
1848    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1849    #[allow(deprecated)]
1850    #[doc(alias = "adw_about_window_get_translator_credits")]
1851    #[doc(alias = "get_translator_credits")]
1852    #[doc(alias = "translator-credits")]
1853    pub fn translator_credits(&self) -> glib::GString {
1854        unsafe {
1855            from_glib_none(ffi::adw_about_window_get_translator_credits(
1856                self.to_glib_none().0,
1857            ))
1858        }
1859    }
1860
1861    /// Gets the version for @self.
1862    ///
1863    /// # Deprecated since 1.6
1864    ///
1865    /// Use [`AboutDialog`][crate::AboutDialog].
1866    ///
1867    /// # Returns
1868    ///
1869    /// the version
1870    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1871    #[allow(deprecated)]
1872    #[doc(alias = "adw_about_window_get_version")]
1873    #[doc(alias = "get_version")]
1874    pub fn version(&self) -> glib::GString {
1875        unsafe { from_glib_none(ffi::adw_about_window_get_version(self.to_glib_none().0)) }
1876    }
1877
1878    /// Gets the application website URL for @self.
1879    ///
1880    /// # Deprecated since 1.6
1881    ///
1882    /// Use [`AboutDialog`][crate::AboutDialog].
1883    ///
1884    /// # Returns
1885    ///
1886    /// the website URL
1887    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1888    #[allow(deprecated)]
1889    #[doc(alias = "adw_about_window_get_website")]
1890    #[doc(alias = "get_website")]
1891    pub fn website(&self) -> glib::GString {
1892        unsafe { from_glib_none(ffi::adw_about_window_get_website(self.to_glib_none().0)) }
1893    }
1894
1895    /// Sets the name of the application icon for @self.
1896    ///
1897    /// The icon is displayed at the top of the main page.
1898    ///
1899    /// # Deprecated since 1.6
1900    ///
1901    /// Use [`AboutDialog`][crate::AboutDialog].
1902    /// ## `application_icon`
1903    /// the application icon name
1904    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1905    #[allow(deprecated)]
1906    #[doc(alias = "adw_about_window_set_application_icon")]
1907    #[doc(alias = "application-icon")]
1908    pub fn set_application_icon(&self, application_icon: &str) {
1909        unsafe {
1910            ffi::adw_about_window_set_application_icon(
1911                self.to_glib_none().0,
1912                application_icon.to_glib_none().0,
1913            );
1914        }
1915    }
1916
1917    /// Sets the application name for @self.
1918    ///
1919    /// The name is displayed at the top of the main page.
1920    ///
1921    /// # Deprecated since 1.6
1922    ///
1923    /// Use [`AboutDialog`][crate::AboutDialog].
1924    /// ## `application_name`
1925    /// the application name
1926    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1927    #[allow(deprecated)]
1928    #[doc(alias = "adw_about_window_set_application_name")]
1929    #[doc(alias = "application-name")]
1930    pub fn set_application_name(&self, application_name: &str) {
1931        unsafe {
1932            ffi::adw_about_window_set_application_name(
1933                self.to_glib_none().0,
1934                application_name.to_glib_none().0,
1935            );
1936        }
1937    }
1938
1939    /// Sets the list of artists of the application.
1940    ///
1941    /// It will be displayed on the Credits page.
1942    ///
1943    /// Each name may contain email addresses and URLs, see the introduction for more
1944    /// details.
1945    ///
1946    /// See also:
1947    ///
1948    /// * [`developers`][struct@crate::AboutWindow#developers]
1949    /// * [`designers`][struct@crate::AboutWindow#designers]
1950    /// * [`documenters`][struct@crate::AboutWindow#documenters]
1951    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
1952    /// * [`add_credit_section()`][Self::add_credit_section()]
1953    /// * [`add_acknowledgement_section()`][Self::add_acknowledgement_section()]
1954    ///
1955    /// # Deprecated since 1.6
1956    ///
1957    /// Use [`AboutDialog`][crate::AboutDialog].
1958    /// ## `artists`
1959    /// the list of artists
1960    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1961    #[allow(deprecated)]
1962    #[doc(alias = "adw_about_window_set_artists")]
1963    #[doc(alias = "artists")]
1964    pub fn set_artists(&self, artists: &[&str]) {
1965        unsafe {
1966            ffi::adw_about_window_set_artists(self.to_glib_none().0, artists.to_glib_none().0);
1967        }
1968    }
1969
1970    /// Sets the comments about the application.
1971    ///
1972    /// Comments will be shown on the Details page, above links.
1973    ///
1974    /// Unlike [`comments`][struct@crate::Gtk::AboutDialog#comments], this string can be long and
1975    /// detailed. It can also contain links and Pango markup.
1976    ///
1977    /// # Deprecated since 1.6
1978    ///
1979    /// Use [`AboutDialog`][crate::AboutDialog].
1980    /// ## `comments`
1981    /// the comments
1982    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
1983    #[allow(deprecated)]
1984    #[doc(alias = "adw_about_window_set_comments")]
1985    #[doc(alias = "comments")]
1986    pub fn set_comments(&self, comments: &str) {
1987        unsafe {
1988            ffi::adw_about_window_set_comments(self.to_glib_none().0, comments.to_glib_none().0);
1989        }
1990    }
1991
1992    /// Sets the copyright information for @self.
1993    ///
1994    /// This should be a short string of one or two lines, for example:
1995    /// `© 2022 Example`.
1996    ///
1997    /// The copyright information will be displayed on the Legal page, before the
1998    /// application license.
1999    ///
2000    /// [`add_legal_section()`][Self::add_legal_section()] can be used to add copyright
2001    /// information for the application dependencies or other components.
2002    ///
2003    /// # Deprecated since 1.6
2004    ///
2005    /// Use [`AboutDialog`][crate::AboutDialog].
2006    /// ## `copyright`
2007    /// the copyright information
2008    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2009    #[allow(deprecated)]
2010    #[doc(alias = "adw_about_window_set_copyright")]
2011    #[doc(alias = "copyright")]
2012    pub fn set_copyright(&self, copyright: &str) {
2013        unsafe {
2014            ffi::adw_about_window_set_copyright(self.to_glib_none().0, copyright.to_glib_none().0);
2015        }
2016    }
2017
2018    /// Sets the debug information for @self.
2019    ///
2020    /// Debug information will be shown on the Troubleshooting page. It's intended
2021    /// to be attached to issue reports when reporting issues against the
2022    /// application.
2023    ///
2024    /// [`AboutWindow`][crate::AboutWindow] provides a quick way to save debug information to a file.
2025    /// When saving, [`debug-info-filename`][struct@crate::AboutWindow#debug-info-filename] would be used as
2026    /// the suggested filename.
2027    ///
2028    /// Debug information cannot contain markup or links.
2029    ///
2030    /// # Deprecated since 1.6
2031    ///
2032    /// Use [`AboutDialog`][crate::AboutDialog].
2033    /// ## `debug_info`
2034    /// the debug information
2035    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2036    #[allow(deprecated)]
2037    #[doc(alias = "adw_about_window_set_debug_info")]
2038    #[doc(alias = "debug-info")]
2039    pub fn set_debug_info(&self, debug_info: &str) {
2040        unsafe {
2041            ffi::adw_about_window_set_debug_info(
2042                self.to_glib_none().0,
2043                debug_info.to_glib_none().0,
2044            );
2045        }
2046    }
2047
2048    /// Sets the debug information filename for @self.
2049    ///
2050    /// It will be used as the suggested filename when saving debug information to a
2051    /// file.
2052    ///
2053    /// See [`debug-info`][struct@crate::AboutWindow#debug-info].
2054    ///
2055    /// # Deprecated since 1.6
2056    ///
2057    /// Use [`AboutDialog`][crate::AboutDialog].
2058    /// ## `filename`
2059    /// the debug info filename
2060    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2061    #[allow(deprecated)]
2062    #[doc(alias = "adw_about_window_set_debug_info_filename")]
2063    #[doc(alias = "debug-info-filename")]
2064    pub fn set_debug_info_filename(&self, filename: &str) {
2065        unsafe {
2066            ffi::adw_about_window_set_debug_info_filename(
2067                self.to_glib_none().0,
2068                filename.to_glib_none().0,
2069            );
2070        }
2071    }
2072
2073    /// Sets the list of designers of the application.
2074    ///
2075    /// It will be displayed on the Credits page.
2076    ///
2077    /// Each name may contain email addresses and URLs, see the introduction for more
2078    /// details.
2079    ///
2080    /// See also:
2081    ///
2082    /// * [`developers`][struct@crate::AboutWindow#developers]
2083    /// * [`artists`][struct@crate::AboutWindow#artists]
2084    /// * [`documenters`][struct@crate::AboutWindow#documenters]
2085    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
2086    /// * [`add_credit_section()`][Self::add_credit_section()]
2087    /// * [`add_acknowledgement_section()`][Self::add_acknowledgement_section()]
2088    ///
2089    /// # Deprecated since 1.6
2090    ///
2091    /// Use [`AboutDialog`][crate::AboutDialog].
2092    /// ## `designers`
2093    /// the list of designers
2094    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2095    #[allow(deprecated)]
2096    #[doc(alias = "adw_about_window_set_designers")]
2097    #[doc(alias = "designers")]
2098    pub fn set_designers(&self, designers: &[&str]) {
2099        unsafe {
2100            ffi::adw_about_window_set_designers(self.to_glib_none().0, designers.to_glib_none().0);
2101        }
2102    }
2103
2104    /// Sets the developer name for @self.
2105    ///
2106    /// The developer name is displayed on the main page, under the application name.
2107    ///
2108    /// If the application is developed by multiple people, the developer name can be
2109    /// set to values like "AppName team", "AppName developers" or
2110    /// "The AppName project", and the individual contributors can be listed on the
2111    /// Credits page, with [`developers`][struct@crate::AboutWindow#developers] and related properties.
2112    ///
2113    /// # Deprecated since 1.6
2114    ///
2115    /// Use [`AboutDialog`][crate::AboutDialog].
2116    /// ## `developer_name`
2117    /// the developer name
2118    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2119    #[allow(deprecated)]
2120    #[doc(alias = "adw_about_window_set_developer_name")]
2121    #[doc(alias = "developer-name")]
2122    pub fn set_developer_name(&self, developer_name: &str) {
2123        unsafe {
2124            ffi::adw_about_window_set_developer_name(
2125                self.to_glib_none().0,
2126                developer_name.to_glib_none().0,
2127            );
2128        }
2129    }
2130
2131    /// Sets the list of developers of the application.
2132    ///
2133    /// It will be displayed on the Credits page.
2134    ///
2135    /// Each name may contain email addresses and URLs, see the introduction for more
2136    /// details.
2137    ///
2138    /// See also:
2139    ///
2140    /// * [`designers`][struct@crate::AboutWindow#designers]
2141    /// * [`artists`][struct@crate::AboutWindow#artists]
2142    /// * [`documenters`][struct@crate::AboutWindow#documenters]
2143    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
2144    /// * [`add_credit_section()`][Self::add_credit_section()]
2145    /// * [`add_acknowledgement_section()`][Self::add_acknowledgement_section()]
2146    ///
2147    /// # Deprecated since 1.6
2148    ///
2149    /// Use [`AboutDialog`][crate::AboutDialog].
2150    /// ## `developers`
2151    /// the list of developers
2152    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2153    #[allow(deprecated)]
2154    #[doc(alias = "adw_about_window_set_developers")]
2155    #[doc(alias = "developers")]
2156    pub fn set_developers(&self, developers: &[&str]) {
2157        unsafe {
2158            ffi::adw_about_window_set_developers(
2159                self.to_glib_none().0,
2160                developers.to_glib_none().0,
2161            );
2162        }
2163    }
2164
2165    /// Sets the list of documenters of the application.
2166    ///
2167    /// It will be displayed on the Credits page.
2168    ///
2169    /// Each name may contain email addresses and URLs, see the introduction for more
2170    /// details.
2171    ///
2172    /// See also:
2173    ///
2174    /// * [`developers`][struct@crate::AboutWindow#developers]
2175    /// * [`designers`][struct@crate::AboutWindow#designers]
2176    /// * [`artists`][struct@crate::AboutWindow#artists]
2177    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
2178    /// * [`add_credit_section()`][Self::add_credit_section()]
2179    /// * [`add_acknowledgement_section()`][Self::add_acknowledgement_section()]
2180    ///
2181    /// # Deprecated since 1.6
2182    ///
2183    /// Use [`AboutDialog`][crate::AboutDialog].
2184    /// ## `documenters`
2185    /// the list of documenters
2186    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2187    #[allow(deprecated)]
2188    #[doc(alias = "adw_about_window_set_documenters")]
2189    #[doc(alias = "documenters")]
2190    pub fn set_documenters(&self, documenters: &[&str]) {
2191        unsafe {
2192            ffi::adw_about_window_set_documenters(
2193                self.to_glib_none().0,
2194                documenters.to_glib_none().0,
2195            );
2196        }
2197    }
2198
2199    /// Sets the issue tracker URL for @self.
2200    ///
2201    /// The issue tracker link is displayed on the main page.
2202    ///
2203    /// # Deprecated since 1.6
2204    ///
2205    /// Use [`AboutDialog`][crate::AboutDialog].
2206    /// ## `issue_url`
2207    /// the issue tracker URL
2208    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2209    #[allow(deprecated)]
2210    #[doc(alias = "adw_about_window_set_issue_url")]
2211    #[doc(alias = "issue-url")]
2212    pub fn set_issue_url(&self, issue_url: &str) {
2213        unsafe {
2214            ffi::adw_about_window_set_issue_url(self.to_glib_none().0, issue_url.to_glib_none().0);
2215        }
2216    }
2217
2218    /// Sets the license for @self.
2219    ///
2220    /// This can be used to set a custom text for the license if it can't be set via
2221    /// [`license-type`][struct@crate::AboutWindow#license-type].
2222    ///
2223    /// When set, [`license-type`][struct@crate::AboutWindow#license-type] will be set to
2224    /// [enum@Gtk.License.custom].
2225    ///
2226    /// The license text will be displayed on the Legal page, below the copyright
2227    /// information.
2228    ///
2229    /// License text can contain Pango markup and links.
2230    ///
2231    /// [`add_legal_section()`][Self::add_legal_section()] can be used to add license information
2232    /// for the application dependencies or other components.
2233    ///
2234    /// # Deprecated since 1.6
2235    ///
2236    /// Use [`AboutDialog`][crate::AboutDialog].
2237    /// ## `license`
2238    /// the license
2239    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2240    #[allow(deprecated)]
2241    #[doc(alias = "adw_about_window_set_license")]
2242    #[doc(alias = "license")]
2243    pub fn set_license(&self, license: &str) {
2244        unsafe {
2245            ffi::adw_about_window_set_license(self.to_glib_none().0, license.to_glib_none().0);
2246        }
2247    }
2248
2249    /// Sets the license for @self from a list of known licenses.
2250    ///
2251    /// If the application's license is not in the list,
2252    /// [`license`][struct@crate::AboutWindow#license] can be used instead. The license type will be
2253    /// automatically set to [enum@Gtk.License.custom] in that case.
2254    ///
2255    /// If @license_type is [enum@Gtk.License.unknown], no information will be displayed.
2256    ///
2257    /// If @license_type is different from [enum@Gtk.License.custom].
2258    /// [`license`][struct@crate::AboutWindow#license] will be cleared out.
2259    ///
2260    /// The license description will be displayed on the Legal page, below the
2261    /// copyright information.
2262    ///
2263    /// [`add_legal_section()`][Self::add_legal_section()] can be used to add license information
2264    /// for the application dependencies or other components.
2265    ///
2266    /// # Deprecated since 1.6
2267    ///
2268    /// Use [`AboutDialog`][crate::AboutDialog].
2269    /// ## `license_type`
2270    /// the license type
2271    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2272    #[allow(deprecated)]
2273    #[doc(alias = "adw_about_window_set_license_type")]
2274    #[doc(alias = "license-type")]
2275    pub fn set_license_type(&self, license_type: gtk::License) {
2276        unsafe {
2277            ffi::adw_about_window_set_license_type(self.to_glib_none().0, license_type.into_glib());
2278        }
2279    }
2280
2281    /// Sets the release notes for @self.
2282    ///
2283    /// Release notes are displayed on the the What's New page.
2284    ///
2285    /// Release notes are formatted the same way as
2286    /// [AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description).
2287    ///
2288    /// The supported formatting options are:
2289    ///
2290    /// * Paragraph (`<p>`)
2291    /// * Ordered list (`<ol>`), with list items (`<li>`)
2292    /// * Unordered list (`<ul>`), with list items (`<li>`)
2293    ///
2294    /// Within paragraphs and list items, emphasis (`<em>`) and inline code
2295    /// (`<code>`) text styles are supported. The emphasis is rendered in italic,
2296    /// while inline code is shown in a monospaced font.
2297    ///
2298    /// Any text outside paragraphs or list items is ignored.
2299    ///
2300    /// Nested lists are not supported.
2301    ///
2302    /// [`AboutWindow`][crate::AboutWindow] displays the version above the release notes. If set, the
2303    /// [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] of the property will be used
2304    /// as the version; otherwise, [`version`][struct@crate::AboutWindow#version] is used.
2305    ///
2306    /// # Deprecated since 1.6
2307    ///
2308    /// Use [`AboutDialog`][crate::AboutDialog].
2309    /// ## `release_notes`
2310    /// the release notes
2311    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2312    #[allow(deprecated)]
2313    #[doc(alias = "adw_about_window_set_release_notes")]
2314    #[doc(alias = "release-notes")]
2315    pub fn set_release_notes(&self, release_notes: &str) {
2316        unsafe {
2317            ffi::adw_about_window_set_release_notes(
2318                self.to_glib_none().0,
2319                release_notes.to_glib_none().0,
2320            );
2321        }
2322    }
2323
2324    /// Sets the version described by the application's release notes.
2325    ///
2326    /// The release notes version is displayed on the What's New page, above the
2327    /// release notes.
2328    ///
2329    /// If not set, [`version`][struct@crate::AboutWindow#version] will be used instead.
2330    ///
2331    /// For example, an application with the current version 2.0.2 might want to
2332    /// keep the release notes from 2.0.0, and set the release notes version
2333    /// accordingly.
2334    ///
2335    /// See [`release-notes`][struct@crate::AboutWindow#release-notes].
2336    ///
2337    /// # Deprecated since 1.6
2338    ///
2339    /// Use [`AboutDialog`][crate::AboutDialog].
2340    /// ## `version`
2341    /// the release notes version
2342    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2343    #[allow(deprecated)]
2344    #[doc(alias = "adw_about_window_set_release_notes_version")]
2345    #[doc(alias = "release-notes-version")]
2346    pub fn set_release_notes_version(&self, version: &str) {
2347        unsafe {
2348            ffi::adw_about_window_set_release_notes_version(
2349                self.to_glib_none().0,
2350                version.to_glib_none().0,
2351            );
2352        }
2353    }
2354
2355    /// Sets the URL of the support page for @self.
2356    ///
2357    /// The support page link is displayed on the main page.
2358    ///
2359    /// # Deprecated since 1.6
2360    ///
2361    /// Use [`AboutDialog`][crate::AboutDialog].
2362    /// ## `support_url`
2363    /// the support page URL
2364    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2365    #[allow(deprecated)]
2366    #[doc(alias = "adw_about_window_set_support_url")]
2367    #[doc(alias = "support-url")]
2368    pub fn set_support_url(&self, support_url: &str) {
2369        unsafe {
2370            ffi::adw_about_window_set_support_url(
2371                self.to_glib_none().0,
2372                support_url.to_glib_none().0,
2373            );
2374        }
2375    }
2376
2377    /// Sets the translator credits string.
2378    ///
2379    /// It will be displayed on the Credits page.
2380    ///
2381    /// This string should be `"translator-credits"` or `"translator_credits"` and
2382    /// should be marked as translatable.
2383    ///
2384    /// The string may contain email addresses and URLs, see the introduction for
2385    /// more details. When there is more than one translator, they must be
2386    /// separated by a newline in the same string.
2387    ///
2388    /// See also:
2389    ///
2390    /// * [`developers`][struct@crate::AboutWindow#developers]
2391    /// * [`designers`][struct@crate::AboutWindow#designers]
2392    /// * [`artists`][struct@crate::AboutWindow#artists]
2393    /// * [`documenters`][struct@crate::AboutWindow#documenters]
2394    /// * [`add_credit_section()`][Self::add_credit_section()]
2395    /// * [`add_acknowledgement_section()`][Self::add_acknowledgement_section()]
2396    ///
2397    /// # Deprecated since 1.6
2398    ///
2399    /// Use [`AboutDialog`][crate::AboutDialog].
2400    /// ## `translator_credits`
2401    /// the translator credits
2402    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2403    #[allow(deprecated)]
2404    #[doc(alias = "adw_about_window_set_translator_credits")]
2405    #[doc(alias = "translator-credits")]
2406    pub fn set_translator_credits(&self, translator_credits: &str) {
2407        unsafe {
2408            ffi::adw_about_window_set_translator_credits(
2409                self.to_glib_none().0,
2410                translator_credits.to_glib_none().0,
2411            );
2412        }
2413    }
2414
2415    /// Sets the version for @self.
2416    ///
2417    /// The version is displayed on the main page.
2418    ///
2419    /// If [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] is not set, the version will
2420    /// also be displayed above the release notes on the What's New page.
2421    ///
2422    /// # Deprecated since 1.6
2423    ///
2424    /// Use [`AboutDialog`][crate::AboutDialog].
2425    /// ## `version`
2426    /// the version
2427    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2428    #[allow(deprecated)]
2429    #[doc(alias = "adw_about_window_set_version")]
2430    #[doc(alias = "version")]
2431    pub fn set_version(&self, version: &str) {
2432        unsafe {
2433            ffi::adw_about_window_set_version(self.to_glib_none().0, version.to_glib_none().0);
2434        }
2435    }
2436
2437    /// Sets the application website URL for @self.
2438    ///
2439    /// Website is displayed on the Details page, below comments, or on the main page
2440    /// if the Details page doesn't have any other content.
2441    ///
2442    /// Applications can add other links below, see [`add_link()`][Self::add_link()].
2443    ///
2444    /// # Deprecated since 1.6
2445    ///
2446    /// Use [`AboutDialog`][crate::AboutDialog].
2447    /// ## `website`
2448    /// the website URL
2449    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2450    #[allow(deprecated)]
2451    #[doc(alias = "adw_about_window_set_website")]
2452    #[doc(alias = "website")]
2453    pub fn set_website(&self, website: &str) {
2454        unsafe {
2455            ffi::adw_about_window_set_website(self.to_glib_none().0, website.to_glib_none().0);
2456        }
2457    }
2458
2459    /// Emitted when a URL is activated.
2460    ///
2461    /// Applications may connect to it to override the default behavior, which is
2462    /// to call `show_uri()`.
2463    ///
2464    /// # Deprecated since 1.6
2465    ///
2466    /// Use [`AboutDialog`][crate::AboutDialog].
2467    /// ## `uri`
2468    /// the URI to activate
2469    ///
2470    /// # Returns
2471    ///
2472    /// `TRUE` if the link has been activated
2473    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2474    #[cfg(feature = "v1_2")]
2475    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2476    #[doc(alias = "activate-link")]
2477    pub fn connect_activate_link<F: Fn(&Self, &str) -> bool + 'static>(
2478        &self,
2479        f: F,
2480    ) -> SignalHandlerId {
2481        unsafe extern "C" fn activate_link_trampoline<
2482            F: Fn(&AboutWindow, &str) -> bool + 'static,
2483        >(
2484            this: *mut ffi::AdwAboutWindow,
2485            uri: *mut std::ffi::c_char,
2486            f: glib::ffi::gpointer,
2487        ) -> glib::ffi::gboolean {
2488            unsafe {
2489                let f: &F = &*(f as *const F);
2490                f(
2491                    &from_glib_borrow(this),
2492                    &glib::GString::from_glib_borrow(uri),
2493                )
2494                .into_glib()
2495            }
2496        }
2497        unsafe {
2498            let f: Box_<F> = Box_::new(f);
2499            connect_raw(
2500                self.as_ptr() as *mut _,
2501                c"activate-link".as_ptr(),
2502                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2503                    activate_link_trampoline::<F> as *const (),
2504                )),
2505                Box_::into_raw(f),
2506            )
2507        }
2508    }
2509
2510    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2511    #[cfg(feature = "v1_2")]
2512    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2513    #[doc(alias = "application-icon")]
2514    pub fn connect_application_icon_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2515        unsafe extern "C" fn notify_application_icon_trampoline<F: Fn(&AboutWindow) + 'static>(
2516            this: *mut ffi::AdwAboutWindow,
2517            _param_spec: glib::ffi::gpointer,
2518            f: glib::ffi::gpointer,
2519        ) {
2520            unsafe {
2521                let f: &F = &*(f as *const F);
2522                f(&from_glib_borrow(this))
2523            }
2524        }
2525        unsafe {
2526            let f: Box_<F> = Box_::new(f);
2527            connect_raw(
2528                self.as_ptr() as *mut _,
2529                c"notify::application-icon".as_ptr(),
2530                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2531                    notify_application_icon_trampoline::<F> as *const (),
2532                )),
2533                Box_::into_raw(f),
2534            )
2535        }
2536    }
2537
2538    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2539    #[cfg(feature = "v1_2")]
2540    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2541    #[doc(alias = "application-name")]
2542    pub fn connect_application_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2543        unsafe extern "C" fn notify_application_name_trampoline<F: Fn(&AboutWindow) + 'static>(
2544            this: *mut ffi::AdwAboutWindow,
2545            _param_spec: glib::ffi::gpointer,
2546            f: glib::ffi::gpointer,
2547        ) {
2548            unsafe {
2549                let f: &F = &*(f as *const F);
2550                f(&from_glib_borrow(this))
2551            }
2552        }
2553        unsafe {
2554            let f: Box_<F> = Box_::new(f);
2555            connect_raw(
2556                self.as_ptr() as *mut _,
2557                c"notify::application-name".as_ptr(),
2558                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2559                    notify_application_name_trampoline::<F> as *const (),
2560                )),
2561                Box_::into_raw(f),
2562            )
2563        }
2564    }
2565
2566    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2567    #[cfg(feature = "v1_2")]
2568    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2569    #[doc(alias = "artists")]
2570    pub fn connect_artists_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2571        unsafe extern "C" fn notify_artists_trampoline<F: Fn(&AboutWindow) + 'static>(
2572            this: *mut ffi::AdwAboutWindow,
2573            _param_spec: glib::ffi::gpointer,
2574            f: glib::ffi::gpointer,
2575        ) {
2576            unsafe {
2577                let f: &F = &*(f as *const F);
2578                f(&from_glib_borrow(this))
2579            }
2580        }
2581        unsafe {
2582            let f: Box_<F> = Box_::new(f);
2583            connect_raw(
2584                self.as_ptr() as *mut _,
2585                c"notify::artists".as_ptr(),
2586                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2587                    notify_artists_trampoline::<F> as *const (),
2588                )),
2589                Box_::into_raw(f),
2590            )
2591        }
2592    }
2593
2594    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2595    #[cfg(feature = "v1_2")]
2596    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2597    #[doc(alias = "comments")]
2598    pub fn connect_comments_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2599        unsafe extern "C" fn notify_comments_trampoline<F: Fn(&AboutWindow) + 'static>(
2600            this: *mut ffi::AdwAboutWindow,
2601            _param_spec: glib::ffi::gpointer,
2602            f: glib::ffi::gpointer,
2603        ) {
2604            unsafe {
2605                let f: &F = &*(f as *const F);
2606                f(&from_glib_borrow(this))
2607            }
2608        }
2609        unsafe {
2610            let f: Box_<F> = Box_::new(f);
2611            connect_raw(
2612                self.as_ptr() as *mut _,
2613                c"notify::comments".as_ptr(),
2614                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2615                    notify_comments_trampoline::<F> as *const (),
2616                )),
2617                Box_::into_raw(f),
2618            )
2619        }
2620    }
2621
2622    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2623    #[cfg(feature = "v1_2")]
2624    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2625    #[doc(alias = "copyright")]
2626    pub fn connect_copyright_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2627        unsafe extern "C" fn notify_copyright_trampoline<F: Fn(&AboutWindow) + 'static>(
2628            this: *mut ffi::AdwAboutWindow,
2629            _param_spec: glib::ffi::gpointer,
2630            f: glib::ffi::gpointer,
2631        ) {
2632            unsafe {
2633                let f: &F = &*(f as *const F);
2634                f(&from_glib_borrow(this))
2635            }
2636        }
2637        unsafe {
2638            let f: Box_<F> = Box_::new(f);
2639            connect_raw(
2640                self.as_ptr() as *mut _,
2641                c"notify::copyright".as_ptr(),
2642                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2643                    notify_copyright_trampoline::<F> as *const (),
2644                )),
2645                Box_::into_raw(f),
2646            )
2647        }
2648    }
2649
2650    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2651    #[cfg(feature = "v1_2")]
2652    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2653    #[doc(alias = "debug-info")]
2654    pub fn connect_debug_info_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2655        unsafe extern "C" fn notify_debug_info_trampoline<F: Fn(&AboutWindow) + 'static>(
2656            this: *mut ffi::AdwAboutWindow,
2657            _param_spec: glib::ffi::gpointer,
2658            f: glib::ffi::gpointer,
2659        ) {
2660            unsafe {
2661                let f: &F = &*(f as *const F);
2662                f(&from_glib_borrow(this))
2663            }
2664        }
2665        unsafe {
2666            let f: Box_<F> = Box_::new(f);
2667            connect_raw(
2668                self.as_ptr() as *mut _,
2669                c"notify::debug-info".as_ptr(),
2670                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2671                    notify_debug_info_trampoline::<F> as *const (),
2672                )),
2673                Box_::into_raw(f),
2674            )
2675        }
2676    }
2677
2678    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2679    #[cfg(feature = "v1_2")]
2680    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2681    #[doc(alias = "debug-info-filename")]
2682    pub fn connect_debug_info_filename_notify<F: Fn(&Self) + 'static>(
2683        &self,
2684        f: F,
2685    ) -> SignalHandlerId {
2686        unsafe extern "C" fn notify_debug_info_filename_trampoline<
2687            F: Fn(&AboutWindow) + 'static,
2688        >(
2689            this: *mut ffi::AdwAboutWindow,
2690            _param_spec: glib::ffi::gpointer,
2691            f: glib::ffi::gpointer,
2692        ) {
2693            unsafe {
2694                let f: &F = &*(f as *const F);
2695                f(&from_glib_borrow(this))
2696            }
2697        }
2698        unsafe {
2699            let f: Box_<F> = Box_::new(f);
2700            connect_raw(
2701                self.as_ptr() as *mut _,
2702                c"notify::debug-info-filename".as_ptr(),
2703                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2704                    notify_debug_info_filename_trampoline::<F> as *const (),
2705                )),
2706                Box_::into_raw(f),
2707            )
2708        }
2709    }
2710
2711    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2712    #[cfg(feature = "v1_2")]
2713    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2714    #[doc(alias = "designers")]
2715    pub fn connect_designers_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2716        unsafe extern "C" fn notify_designers_trampoline<F: Fn(&AboutWindow) + 'static>(
2717            this: *mut ffi::AdwAboutWindow,
2718            _param_spec: glib::ffi::gpointer,
2719            f: glib::ffi::gpointer,
2720        ) {
2721            unsafe {
2722                let f: &F = &*(f as *const F);
2723                f(&from_glib_borrow(this))
2724            }
2725        }
2726        unsafe {
2727            let f: Box_<F> = Box_::new(f);
2728            connect_raw(
2729                self.as_ptr() as *mut _,
2730                c"notify::designers".as_ptr(),
2731                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2732                    notify_designers_trampoline::<F> as *const (),
2733                )),
2734                Box_::into_raw(f),
2735            )
2736        }
2737    }
2738
2739    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2740    #[cfg(feature = "v1_2")]
2741    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2742    #[doc(alias = "developer-name")]
2743    pub fn connect_developer_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2744        unsafe extern "C" fn notify_developer_name_trampoline<F: Fn(&AboutWindow) + 'static>(
2745            this: *mut ffi::AdwAboutWindow,
2746            _param_spec: glib::ffi::gpointer,
2747            f: glib::ffi::gpointer,
2748        ) {
2749            unsafe {
2750                let f: &F = &*(f as *const F);
2751                f(&from_glib_borrow(this))
2752            }
2753        }
2754        unsafe {
2755            let f: Box_<F> = Box_::new(f);
2756            connect_raw(
2757                self.as_ptr() as *mut _,
2758                c"notify::developer-name".as_ptr(),
2759                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2760                    notify_developer_name_trampoline::<F> as *const (),
2761                )),
2762                Box_::into_raw(f),
2763            )
2764        }
2765    }
2766
2767    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2768    #[cfg(feature = "v1_2")]
2769    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2770    #[doc(alias = "developers")]
2771    pub fn connect_developers_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2772        unsafe extern "C" fn notify_developers_trampoline<F: Fn(&AboutWindow) + 'static>(
2773            this: *mut ffi::AdwAboutWindow,
2774            _param_spec: glib::ffi::gpointer,
2775            f: glib::ffi::gpointer,
2776        ) {
2777            unsafe {
2778                let f: &F = &*(f as *const F);
2779                f(&from_glib_borrow(this))
2780            }
2781        }
2782        unsafe {
2783            let f: Box_<F> = Box_::new(f);
2784            connect_raw(
2785                self.as_ptr() as *mut _,
2786                c"notify::developers".as_ptr(),
2787                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2788                    notify_developers_trampoline::<F> as *const (),
2789                )),
2790                Box_::into_raw(f),
2791            )
2792        }
2793    }
2794
2795    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2796    #[cfg(feature = "v1_2")]
2797    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2798    #[doc(alias = "documenters")]
2799    pub fn connect_documenters_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2800        unsafe extern "C" fn notify_documenters_trampoline<F: Fn(&AboutWindow) + 'static>(
2801            this: *mut ffi::AdwAboutWindow,
2802            _param_spec: glib::ffi::gpointer,
2803            f: glib::ffi::gpointer,
2804        ) {
2805            unsafe {
2806                let f: &F = &*(f as *const F);
2807                f(&from_glib_borrow(this))
2808            }
2809        }
2810        unsafe {
2811            let f: Box_<F> = Box_::new(f);
2812            connect_raw(
2813                self.as_ptr() as *mut _,
2814                c"notify::documenters".as_ptr(),
2815                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2816                    notify_documenters_trampoline::<F> as *const (),
2817                )),
2818                Box_::into_raw(f),
2819            )
2820        }
2821    }
2822
2823    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2824    #[cfg(feature = "v1_2")]
2825    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2826    #[doc(alias = "issue-url")]
2827    pub fn connect_issue_url_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2828        unsafe extern "C" fn notify_issue_url_trampoline<F: Fn(&AboutWindow) + 'static>(
2829            this: *mut ffi::AdwAboutWindow,
2830            _param_spec: glib::ffi::gpointer,
2831            f: glib::ffi::gpointer,
2832        ) {
2833            unsafe {
2834                let f: &F = &*(f as *const F);
2835                f(&from_glib_borrow(this))
2836            }
2837        }
2838        unsafe {
2839            let f: Box_<F> = Box_::new(f);
2840            connect_raw(
2841                self.as_ptr() as *mut _,
2842                c"notify::issue-url".as_ptr(),
2843                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2844                    notify_issue_url_trampoline::<F> as *const (),
2845                )),
2846                Box_::into_raw(f),
2847            )
2848        }
2849    }
2850
2851    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2852    #[cfg(feature = "v1_2")]
2853    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2854    #[doc(alias = "license")]
2855    pub fn connect_license_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2856        unsafe extern "C" fn notify_license_trampoline<F: Fn(&AboutWindow) + 'static>(
2857            this: *mut ffi::AdwAboutWindow,
2858            _param_spec: glib::ffi::gpointer,
2859            f: glib::ffi::gpointer,
2860        ) {
2861            unsafe {
2862                let f: &F = &*(f as *const F);
2863                f(&from_glib_borrow(this))
2864            }
2865        }
2866        unsafe {
2867            let f: Box_<F> = Box_::new(f);
2868            connect_raw(
2869                self.as_ptr() as *mut _,
2870                c"notify::license".as_ptr(),
2871                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2872                    notify_license_trampoline::<F> as *const (),
2873                )),
2874                Box_::into_raw(f),
2875            )
2876        }
2877    }
2878
2879    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2880    #[cfg(feature = "v1_2")]
2881    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2882    #[doc(alias = "license-type")]
2883    pub fn connect_license_type_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2884        unsafe extern "C" fn notify_license_type_trampoline<F: Fn(&AboutWindow) + 'static>(
2885            this: *mut ffi::AdwAboutWindow,
2886            _param_spec: glib::ffi::gpointer,
2887            f: glib::ffi::gpointer,
2888        ) {
2889            unsafe {
2890                let f: &F = &*(f as *const F);
2891                f(&from_glib_borrow(this))
2892            }
2893        }
2894        unsafe {
2895            let f: Box_<F> = Box_::new(f);
2896            connect_raw(
2897                self.as_ptr() as *mut _,
2898                c"notify::license-type".as_ptr(),
2899                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2900                    notify_license_type_trampoline::<F> as *const (),
2901                )),
2902                Box_::into_raw(f),
2903            )
2904        }
2905    }
2906
2907    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2908    #[cfg(feature = "v1_2")]
2909    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2910    #[doc(alias = "release-notes")]
2911    pub fn connect_release_notes_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2912        unsafe extern "C" fn notify_release_notes_trampoline<F: Fn(&AboutWindow) + 'static>(
2913            this: *mut ffi::AdwAboutWindow,
2914            _param_spec: glib::ffi::gpointer,
2915            f: glib::ffi::gpointer,
2916        ) {
2917            unsafe {
2918                let f: &F = &*(f as *const F);
2919                f(&from_glib_borrow(this))
2920            }
2921        }
2922        unsafe {
2923            let f: Box_<F> = Box_::new(f);
2924            connect_raw(
2925                self.as_ptr() as *mut _,
2926                c"notify::release-notes".as_ptr(),
2927                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2928                    notify_release_notes_trampoline::<F> as *const (),
2929                )),
2930                Box_::into_raw(f),
2931            )
2932        }
2933    }
2934
2935    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2936    #[cfg(feature = "v1_2")]
2937    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2938    #[doc(alias = "release-notes-version")]
2939    pub fn connect_release_notes_version_notify<F: Fn(&Self) + 'static>(
2940        &self,
2941        f: F,
2942    ) -> SignalHandlerId {
2943        unsafe extern "C" fn notify_release_notes_version_trampoline<
2944            F: Fn(&AboutWindow) + 'static,
2945        >(
2946            this: *mut ffi::AdwAboutWindow,
2947            _param_spec: glib::ffi::gpointer,
2948            f: glib::ffi::gpointer,
2949        ) {
2950            unsafe {
2951                let f: &F = &*(f as *const F);
2952                f(&from_glib_borrow(this))
2953            }
2954        }
2955        unsafe {
2956            let f: Box_<F> = Box_::new(f);
2957            connect_raw(
2958                self.as_ptr() as *mut _,
2959                c"notify::release-notes-version".as_ptr(),
2960                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2961                    notify_release_notes_version_trampoline::<F> as *const (),
2962                )),
2963                Box_::into_raw(f),
2964            )
2965        }
2966    }
2967
2968    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2969    #[cfg(feature = "v1_2")]
2970    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2971    #[doc(alias = "support-url")]
2972    pub fn connect_support_url_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
2973        unsafe extern "C" fn notify_support_url_trampoline<F: Fn(&AboutWindow) + 'static>(
2974            this: *mut ffi::AdwAboutWindow,
2975            _param_spec: glib::ffi::gpointer,
2976            f: glib::ffi::gpointer,
2977        ) {
2978            unsafe {
2979                let f: &F = &*(f as *const F);
2980                f(&from_glib_borrow(this))
2981            }
2982        }
2983        unsafe {
2984            let f: Box_<F> = Box_::new(f);
2985            connect_raw(
2986                self.as_ptr() as *mut _,
2987                c"notify::support-url".as_ptr(),
2988                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
2989                    notify_support_url_trampoline::<F> as *const (),
2990                )),
2991                Box_::into_raw(f),
2992            )
2993        }
2994    }
2995
2996    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
2997    #[cfg(feature = "v1_2")]
2998    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
2999    #[doc(alias = "translator-credits")]
3000    pub fn connect_translator_credits_notify<F: Fn(&Self) + 'static>(
3001        &self,
3002        f: F,
3003    ) -> SignalHandlerId {
3004        unsafe extern "C" fn notify_translator_credits_trampoline<F: Fn(&AboutWindow) + 'static>(
3005            this: *mut ffi::AdwAboutWindow,
3006            _param_spec: glib::ffi::gpointer,
3007            f: glib::ffi::gpointer,
3008        ) {
3009            unsafe {
3010                let f: &F = &*(f as *const F);
3011                f(&from_glib_borrow(this))
3012            }
3013        }
3014        unsafe {
3015            let f: Box_<F> = Box_::new(f);
3016            connect_raw(
3017                self.as_ptr() as *mut _,
3018                c"notify::translator-credits".as_ptr(),
3019                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3020                    notify_translator_credits_trampoline::<F> as *const (),
3021                )),
3022                Box_::into_raw(f),
3023            )
3024        }
3025    }
3026
3027    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3028    #[cfg(feature = "v1_2")]
3029    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3030    #[doc(alias = "version")]
3031    pub fn connect_version_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3032        unsafe extern "C" fn notify_version_trampoline<F: Fn(&AboutWindow) + 'static>(
3033            this: *mut ffi::AdwAboutWindow,
3034            _param_spec: glib::ffi::gpointer,
3035            f: glib::ffi::gpointer,
3036        ) {
3037            unsafe {
3038                let f: &F = &*(f as *const F);
3039                f(&from_glib_borrow(this))
3040            }
3041        }
3042        unsafe {
3043            let f: Box_<F> = Box_::new(f);
3044            connect_raw(
3045                self.as_ptr() as *mut _,
3046                c"notify::version".as_ptr(),
3047                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3048                    notify_version_trampoline::<F> as *const (),
3049                )),
3050                Box_::into_raw(f),
3051            )
3052        }
3053    }
3054
3055    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3056    #[cfg(feature = "v1_2")]
3057    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3058    #[doc(alias = "website")]
3059    pub fn connect_website_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
3060        unsafe extern "C" fn notify_website_trampoline<F: Fn(&AboutWindow) + 'static>(
3061            this: *mut ffi::AdwAboutWindow,
3062            _param_spec: glib::ffi::gpointer,
3063            f: glib::ffi::gpointer,
3064        ) {
3065            unsafe {
3066                let f: &F = &*(f as *const F);
3067                f(&from_glib_borrow(this))
3068            }
3069        }
3070        unsafe {
3071            let f: Box_<F> = Box_::new(f);
3072            connect_raw(
3073                self.as_ptr() as *mut _,
3074                c"notify::website".as_ptr(),
3075                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
3076                    notify_website_trampoline::<F> as *const (),
3077                )),
3078                Box_::into_raw(f),
3079            )
3080        }
3081    }
3082}
3083
3084#[cfg(feature = "v1_2")]
3085#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3086impl Default for AboutWindow {
3087    fn default() -> Self {
3088        Self::new()
3089    }
3090}
3091
3092// rustdoc-stripper-ignore-next
3093/// A [builder-pattern] type to construct [`AboutWindow`] objects.
3094///
3095/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
3096#[must_use = "The builder must be built to be used"]
3097pub struct AboutWindowBuilder {
3098    builder: glib::object::ObjectBuilder<'static, AboutWindow>,
3099}
3100
3101impl AboutWindowBuilder {
3102    fn new() -> Self {
3103        Self {
3104            builder: glib::object::Object::builder(),
3105        }
3106    }
3107
3108    /// The name of the application icon.
3109    ///
3110    /// The icon is displayed at the top of the main page.
3111    /// Use [`AboutDialog`][crate::AboutDialog].
3112    #[cfg(feature = "v1_2")]
3113    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3114    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3115    pub fn application_icon(self, application_icon: impl Into<glib::GString>) -> Self {
3116        Self {
3117            builder: self
3118                .builder
3119                .property("application-icon", application_icon.into()),
3120        }
3121    }
3122
3123    /// The name of the application.
3124    ///
3125    /// The name is displayed at the top of the main page.
3126    /// Use [`AboutDialog`][crate::AboutDialog].
3127    #[cfg(feature = "v1_2")]
3128    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3129    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3130    pub fn application_name(self, application_name: impl Into<glib::GString>) -> Self {
3131        Self {
3132            builder: self
3133                .builder
3134                .property("application-name", application_name.into()),
3135        }
3136    }
3137
3138    /// The list of artists of the application.
3139    ///
3140    /// It will be displayed on the Credits page.
3141    ///
3142    /// Each name may contain email addresses and URLs, see the introduction for
3143    /// more details.
3144    ///
3145    /// See also:
3146    ///
3147    /// * [`developers`][struct@crate::AboutWindow#developers]
3148    /// * [`designers`][struct@crate::AboutWindow#designers]
3149    /// * [`documenters`][struct@crate::AboutWindow#documenters]
3150    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
3151    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
3152    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
3153    /// Use [`AboutDialog`][crate::AboutDialog].
3154    #[cfg(feature = "v1_2")]
3155    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3156    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3157    pub fn artists(self, artists: impl Into<glib::StrV>) -> Self {
3158        Self {
3159            builder: self.builder.property("artists", artists.into()),
3160        }
3161    }
3162
3163    /// The comments about the application.
3164    ///
3165    /// Comments will be shown on the Details page, above links.
3166    ///
3167    /// Unlike [`comments`][struct@crate::Gtk::AboutDialog#comments], this string can be long and
3168    /// detailed. It can also contain links and Pango markup.
3169    /// Use [`AboutDialog`][crate::AboutDialog].
3170    #[cfg(feature = "v1_2")]
3171    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3172    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3173    pub fn comments(self, comments: impl Into<glib::GString>) -> Self {
3174        Self {
3175            builder: self.builder.property("comments", comments.into()),
3176        }
3177    }
3178
3179    /// The copyright information.
3180    ///
3181    /// This should be a short string of one or two lines, for example:
3182    /// `© 2022 Example`.
3183    ///
3184    /// The copyright information will be displayed on the Legal page, above the
3185    /// application license.
3186    ///
3187    /// [`AboutWindow::add_legal_section()`][crate::AboutWindow::add_legal_section()] can be used to add copyright
3188    /// information for the application dependencies or other components.
3189    /// Use [`AboutDialog`][crate::AboutDialog].
3190    #[cfg(feature = "v1_2")]
3191    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3192    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3193    pub fn copyright(self, copyright: impl Into<glib::GString>) -> Self {
3194        Self {
3195            builder: self.builder.property("copyright", copyright.into()),
3196        }
3197    }
3198
3199    /// The debug information.
3200    ///
3201    /// Debug information will be shown on the Troubleshooting page. It's intended
3202    /// to be attached to issue reports when reporting issues against the
3203    /// application.
3204    ///
3205    /// [`AboutWindow`][crate::AboutWindow] provides a quick way to save debug information to a file.
3206    /// When saving, [`debug-info-filename`][struct@crate::AboutWindow#debug-info-filename] would be used as
3207    /// the suggested filename.
3208    ///
3209    /// Debug information cannot contain markup or links.
3210    /// Use [`AboutDialog`][crate::AboutDialog].
3211    #[cfg(feature = "v1_2")]
3212    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3213    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3214    pub fn debug_info(self, debug_info: impl Into<glib::GString>) -> Self {
3215        Self {
3216            builder: self.builder.property("debug-info", debug_info.into()),
3217        }
3218    }
3219
3220    /// The debug information filename.
3221    ///
3222    /// It will be used as the suggested filename when saving debug information to
3223    /// a file.
3224    ///
3225    /// See [`debug-info`][struct@crate::AboutWindow#debug-info].
3226    /// Use [`AboutDialog`][crate::AboutDialog].
3227    #[cfg(feature = "v1_2")]
3228    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3229    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3230    pub fn debug_info_filename(self, debug_info_filename: impl Into<glib::GString>) -> Self {
3231        Self {
3232            builder: self
3233                .builder
3234                .property("debug-info-filename", debug_info_filename.into()),
3235        }
3236    }
3237
3238    /// The list of designers of the application.
3239    ///
3240    /// It will be displayed on the Credits page.
3241    ///
3242    /// Each name may contain email addresses and URLs, see the introduction for
3243    /// more details.
3244    ///
3245    /// See also:
3246    ///
3247    /// * [`developers`][struct@crate::AboutWindow#developers]
3248    /// * [`artists`][struct@crate::AboutWindow#artists]
3249    /// * [`documenters`][struct@crate::AboutWindow#documenters]
3250    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
3251    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
3252    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
3253    /// Use [`AboutDialog`][crate::AboutDialog].
3254    #[cfg(feature = "v1_2")]
3255    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3256    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3257    pub fn designers(self, designers: impl Into<glib::StrV>) -> Self {
3258        Self {
3259            builder: self.builder.property("designers", designers.into()),
3260        }
3261    }
3262
3263    /// The developer name.
3264    ///
3265    /// The developer name is displayed on the main page, under the application
3266    /// name.
3267    ///
3268    /// If the application is developed by multiple people, the developer name can
3269    /// be set to values like "AppName team", "AppName developers" or
3270    /// "The AppName project", and the individual contributors can be listed on the
3271    /// Credits page, with [`developers`][struct@crate::AboutWindow#developers] and related
3272    /// properties.
3273    /// Use [`AboutDialog`][crate::AboutDialog].
3274    #[cfg(feature = "v1_2")]
3275    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3276    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3277    pub fn developer_name(self, developer_name: impl Into<glib::GString>) -> Self {
3278        Self {
3279            builder: self
3280                .builder
3281                .property("developer-name", developer_name.into()),
3282        }
3283    }
3284
3285    /// The list of developers of the application.
3286    ///
3287    /// It will be displayed on the Credits page.
3288    ///
3289    /// Each name may contain email addresses and URLs, see the introduction for
3290    /// more details.
3291    ///
3292    /// See also:
3293    ///
3294    /// * [`designers`][struct@crate::AboutWindow#designers]
3295    /// * [`artists`][struct@crate::AboutWindow#artists]
3296    /// * [`documenters`][struct@crate::AboutWindow#documenters]
3297    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
3298    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
3299    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
3300    /// Use [`AboutDialog`][crate::AboutDialog].
3301    #[cfg(feature = "v1_2")]
3302    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3303    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3304    pub fn developers(self, developers: impl Into<glib::StrV>) -> Self {
3305        Self {
3306            builder: self.builder.property("developers", developers.into()),
3307        }
3308    }
3309
3310    /// The list of documenters of the application.
3311    ///
3312    /// It will be displayed on the Credits page.
3313    ///
3314    /// Each name may contain email addresses and URLs, see the introduction for
3315    /// more details.
3316    ///
3317    /// See also:
3318    ///
3319    /// * [`developers`][struct@crate::AboutWindow#developers]
3320    /// * [`designers`][struct@crate::AboutWindow#designers]
3321    /// * [`artists`][struct@crate::AboutWindow#artists]
3322    /// * [`translator-credits`][struct@crate::AboutWindow#translator-credits]
3323    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
3324    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
3325    /// Use [`AboutDialog`][crate::AboutDialog].
3326    #[cfg(feature = "v1_2")]
3327    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3328    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3329    pub fn documenters(self, documenters: impl Into<glib::StrV>) -> Self {
3330        Self {
3331            builder: self.builder.property("documenters", documenters.into()),
3332        }
3333    }
3334
3335    /// The URL for the application's issue tracker.
3336    ///
3337    /// The issue tracker link is displayed on the main page.
3338    /// Use [`AboutDialog`][crate::AboutDialog].
3339    #[cfg(feature = "v1_2")]
3340    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3341    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3342    pub fn issue_url(self, issue_url: impl Into<glib::GString>) -> Self {
3343        Self {
3344            builder: self.builder.property("issue-url", issue_url.into()),
3345        }
3346    }
3347
3348    /// The license text.
3349    ///
3350    /// This can be used to set a custom text for the license if it can't be set
3351    /// via [`license-type`][struct@crate::AboutWindow#license-type].
3352    ///
3353    /// When set, [`license-type`][struct@crate::AboutWindow#license-type] will be set to
3354    /// [enum@Gtk.License.custom].
3355    ///
3356    /// The license text will be displayed on the Legal page, below the copyright
3357    /// information.
3358    ///
3359    /// License text can contain Pango markup and links.
3360    ///
3361    /// [`AboutWindow::add_legal_section()`][crate::AboutWindow::add_legal_section()] can be used to add license
3362    /// information for the application dependencies or other components.
3363    /// Use [`AboutDialog`][crate::AboutDialog].
3364    #[cfg(feature = "v1_2")]
3365    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3366    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3367    pub fn license(self, license: impl Into<glib::GString>) -> Self {
3368        Self {
3369            builder: self.builder.property("license", license.into()),
3370        }
3371    }
3372
3373    /// The license type.
3374    ///
3375    /// Allows to set the application's license froma list of known licenses.
3376    ///
3377    /// If the application's license is not in the list,
3378    /// [`license`][struct@crate::AboutWindow#license] can be used instead. The license type will
3379    /// be automatically set to [enum@Gtk.License.custom] in that case.
3380    ///
3381    /// If set to [enum@Gtk.License.unknown], no information will be displayed.
3382    ///
3383    /// If the license type is different from [enum@Gtk.License.custom].
3384    /// [`license`][struct@crate::AboutWindow#license] will be cleared out.
3385    ///
3386    /// The license description will be displayed on the Legal page, below the
3387    /// copyright information.
3388    ///
3389    /// [`AboutWindow::add_legal_section()`][crate::AboutWindow::add_legal_section()] can be used to add license
3390    /// information for the application dependencies or other components.
3391    /// Use [`AboutDialog`][crate::AboutDialog].
3392    #[cfg(feature = "v1_2")]
3393    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3394    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3395    pub fn license_type(self, license_type: gtk::License) -> Self {
3396        Self {
3397            builder: self.builder.property("license-type", license_type),
3398        }
3399    }
3400
3401    /// The release notes of the application.
3402    ///
3403    /// Release notes are displayed on the the What's New page.
3404    ///
3405    /// Release notes are formatted the same way as
3406    /// [AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description).
3407    ///
3408    /// The supported formatting options are:
3409    ///
3410    /// * Paragraph (`<p>`)
3411    /// * Ordered list (`<ol>`), with list items (`<li>`)
3412    /// * Unordered list (`<ul>`), with list items (`<li>`)
3413    ///
3414    /// Within paragraphs and list items, emphasis (`<em>`) and inline code
3415    /// (`<code>`) text styles are supported. The emphasis is rendered in italic,
3416    /// while inline code is shown in a monospaced font.
3417    ///
3418    /// Any text outside paragraphs or list items is ignored.
3419    ///
3420    /// Nested lists are not supported.
3421    ///
3422    /// [`AboutWindow`][crate::AboutWindow] displays the version above the release notes. If set, the
3423    /// [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] of the property will be used
3424    /// as the version; otherwise, [`version`][struct@crate::AboutWindow#version] is used.
3425    /// Use [`AboutDialog`][crate::AboutDialog].
3426    #[cfg(feature = "v1_2")]
3427    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3428    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3429    pub fn release_notes(self, release_notes: impl Into<glib::GString>) -> Self {
3430        Self {
3431            builder: self.builder.property("release-notes", release_notes.into()),
3432        }
3433    }
3434
3435    /// The version described by the application's release notes.
3436    ///
3437    /// The release notes version is displayed on the What's New page, above the
3438    /// release notes.
3439    ///
3440    /// If not set, [`version`][struct@crate::AboutWindow#version] will be used instead.
3441    ///
3442    /// For example, an application with the current version 2.0.2 might want to
3443    /// keep the release notes from 2.0.0, and set the release notes version
3444    /// accordingly.
3445    ///
3446    /// See [`release-notes`][struct@crate::AboutWindow#release-notes].
3447    /// Use [`AboutDialog`][crate::AboutDialog].
3448    #[cfg(feature = "v1_2")]
3449    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3450    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3451    pub fn release_notes_version(self, release_notes_version: impl Into<glib::GString>) -> Self {
3452        Self {
3453            builder: self
3454                .builder
3455                .property("release-notes-version", release_notes_version.into()),
3456        }
3457    }
3458
3459    /// The URL of the application's support page.
3460    ///
3461    /// The support page link is displayed on the main page.
3462    /// Use [`AboutDialog`][crate::AboutDialog].
3463    #[cfg(feature = "v1_2")]
3464    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3465    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3466    pub fn support_url(self, support_url: impl Into<glib::GString>) -> Self {
3467        Self {
3468            builder: self.builder.property("support-url", support_url.into()),
3469        }
3470    }
3471
3472    /// The translator credits string.
3473    ///
3474    /// It will be displayed on the Credits page.
3475    ///
3476    /// This string should be `"translator-credits"` or `"translator_credits"` and
3477    /// should be marked as translatable.
3478    ///
3479    /// The string may contain email addresses and URLs, see the introduction for
3480    /// more details.
3481    ///
3482    /// See also:
3483    ///
3484    /// * [`developers`][struct@crate::AboutWindow#developers]
3485    /// * [`designers`][struct@crate::AboutWindow#designers]
3486    /// * [`artists`][struct@crate::AboutWindow#artists]
3487    /// * [`documenters`][struct@crate::AboutWindow#documenters]
3488    /// * [`AboutWindow::add_credit_section()`][crate::AboutWindow::add_credit_section()]
3489    /// * [`AboutWindow::add_acknowledgement_section()`][crate::AboutWindow::add_acknowledgement_section()]
3490    /// Use [`AboutDialog`][crate::AboutDialog].
3491    #[cfg(feature = "v1_2")]
3492    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3493    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3494    pub fn translator_credits(self, translator_credits: impl Into<glib::GString>) -> Self {
3495        Self {
3496            builder: self
3497                .builder
3498                .property("translator-credits", translator_credits.into()),
3499        }
3500    }
3501
3502    /// The version of the application.
3503    ///
3504    /// The version is displayed on the main page.
3505    ///
3506    /// If [`release-notes-version`][struct@crate::AboutWindow#release-notes-version] is not set, the version
3507    /// will also be displayed above the release notes on the What's New page.
3508    /// Use [`AboutDialog`][crate::AboutDialog].
3509    #[cfg(feature = "v1_2")]
3510    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3511    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3512    pub fn version(self, version: impl Into<glib::GString>) -> Self {
3513        Self {
3514            builder: self.builder.property("version", version.into()),
3515        }
3516    }
3517
3518    /// The URL of the application's website.
3519    ///
3520    /// Website is displayed on the Details page, below comments, or on the main
3521    /// page if the Details page doesn't have any other content.
3522    ///
3523    /// Applications can add other links below, see [`AboutWindow::add_link()`][crate::AboutWindow::add_link()].
3524    /// Use [`AboutDialog`][crate::AboutDialog].
3525    #[cfg(feature = "v1_2")]
3526    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
3527    #[cfg_attr(feature = "v1_6", deprecated = "Since 1.6")]
3528    pub fn website(self, website: impl Into<glib::GString>) -> Self {
3529        Self {
3530            builder: self.builder.property("website", website.into()),
3531        }
3532    }
3533
3534    /// Whether adaptive preview is currently open.
3535    ///
3536    /// Adaptive preview is a debugging tool used for testing the window
3537    /// contents at specific screen sizes, simulating mobile environment.
3538    ///
3539    /// Adaptive preview can always be accessed from inspector. This function
3540    /// allows applications to open it manually.
3541    ///
3542    /// Most applications should not use this property.
3543    #[cfg(feature = "v1_7")]
3544    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
3545    pub fn adaptive_preview(self, adaptive_preview: bool) -> Self {
3546        Self {
3547            builder: self.builder.property("adaptive-preview", adaptive_preview),
3548        }
3549    }
3550
3551    /// The content widget.
3552    ///
3553    /// This property should always be used instead of [`child`][struct@crate::gtk::Window#child].
3554    pub fn content(self, content: &impl IsA<gtk::Widget>) -> Self {
3555        Self {
3556            builder: self.builder.property("content", content.clone().upcast()),
3557        }
3558    }
3559
3560    /// The [`gtk::Application`][crate::gtk::Application] associated with the window.
3561    ///
3562    /// The application will be kept alive for at least as long as it
3563    /// has any windows associated with it (see g_application_hold()
3564    /// for a way to keep it alive without windows).
3565    ///
3566    /// Normally, the connection between the application and the window
3567    /// will remain until the window is destroyed, but you can explicitly
3568    /// remove it by setting the this property to `NULL`.
3569    pub fn application(self, application: &impl IsA<gtk::Application>) -> Self {
3570        Self {
3571            builder: self
3572                .builder
3573                .property("application", application.clone().upcast()),
3574        }
3575    }
3576
3577    /// Whether the window should have a frame (also known as *decorations*).
3578    pub fn decorated(self, decorated: bool) -> Self {
3579        Self {
3580            builder: self.builder.property("decorated", decorated),
3581        }
3582    }
3583
3584    /// The default height of the window.
3585    pub fn default_height(self, default_height: i32) -> Self {
3586        Self {
3587            builder: self.builder.property("default-height", default_height),
3588        }
3589    }
3590
3591    /// The default widget.
3592    pub fn default_widget(self, default_widget: &impl IsA<gtk::Widget>) -> Self {
3593        Self {
3594            builder: self
3595                .builder
3596                .property("default-widget", default_widget.clone().upcast()),
3597        }
3598    }
3599
3600    /// The default width of the window.
3601    pub fn default_width(self, default_width: i32) -> Self {
3602        Self {
3603            builder: self.builder.property("default-width", default_width),
3604        }
3605    }
3606
3607    /// Whether the window frame should have a close button.
3608    pub fn deletable(self, deletable: bool) -> Self {
3609        Self {
3610            builder: self.builder.property("deletable", deletable),
3611        }
3612    }
3613
3614    /// If this window should be destroyed when the parent is destroyed.
3615    pub fn destroy_with_parent(self, destroy_with_parent: bool) -> Self {
3616        Self {
3617            builder: self
3618                .builder
3619                .property("destroy-with-parent", destroy_with_parent),
3620        }
3621    }
3622
3623    /// The display that will display this window.
3624    pub fn display(self, display: &gdk::Display) -> Self {
3625        Self {
3626            builder: self.builder.property("display", display.clone()),
3627        }
3628    }
3629
3630    /// Whether 'focus rectangles' are currently visible in this window.
3631    ///
3632    /// This property is maintained by GTK based on user input
3633    /// and should not be set by applications.
3634    pub fn focus_visible(self, focus_visible: bool) -> Self {
3635        Self {
3636            builder: self.builder.property("focus-visible", focus_visible),
3637        }
3638    }
3639
3640    /// The focus widget.
3641    pub fn focus_widget(self, focus_widget: &impl IsA<gtk::Widget>) -> Self {
3642        Self {
3643            builder: self
3644                .builder
3645                .property("focus-widget", focus_widget.clone().upcast()),
3646        }
3647    }
3648
3649    /// Whether the window is fullscreen.
3650    ///
3651    /// Setting this property is the equivalent of calling
3652    /// [`GtkWindowExtManual::fullscreen()`][crate::gtk::prelude::GtkWindowExtManual::fullscreen()] or [`GtkWindowExtManual::unfullscreen()`][crate::gtk::prelude::GtkWindowExtManual::unfullscreen()];
3653    /// either operation is asynchronous, which means you will need to
3654    /// connect to the ::notify signal in order to know whether the
3655    /// operation was successful.
3656    pub fn fullscreened(self, fullscreened: bool) -> Self {
3657        Self {
3658            builder: self.builder.property("fullscreened", fullscreened),
3659        }
3660    }
3661
3662    /// The gravity to use when resizing the window programmatically.
3663    ///
3664    /// Gravity describes which point of the window we want to keep
3665    /// fixed (meaning that the window will grow in the opposite direction).
3666    /// For example, a gravity of `GTK_WINDOW_GRAVITY_TOP_RIGHT` means that we
3667    /// want the to fix top right corner of the window.
3668    #[cfg(feature = "gtk_v4_20")]
3669    #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_20")))]
3670    pub fn gravity(self, gravity: gtk::WindowGravity) -> Self {
3671        Self {
3672            builder: self.builder.property("gravity", gravity),
3673        }
3674    }
3675
3676    /// Whether the window frame should handle <kbd>F10</kbd> for activating
3677    /// menubars.
3678    #[cfg(feature = "gtk_v4_2")]
3679    #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_2")))]
3680    pub fn handle_menubar_accel(self, handle_menubar_accel: bool) -> Self {
3681        Self {
3682            builder: self
3683                .builder
3684                .property("handle-menubar-accel", handle_menubar_accel),
3685        }
3686    }
3687
3688    /// If this window should be hidden instead of destroyed when the user clicks
3689    /// the close button.
3690    pub fn hide_on_close(self, hide_on_close: bool) -> Self {
3691        Self {
3692            builder: self.builder.property("hide-on-close", hide_on_close),
3693        }
3694    }
3695
3696    /// Specifies the name of the themed icon to use as the window icon.
3697    ///
3698    /// See `Gtk::IconTheme` for more details.
3699    pub fn icon_name(self, icon_name: impl Into<glib::GString>) -> Self {
3700        Self {
3701            builder: self.builder.property("icon-name", icon_name.into()),
3702        }
3703    }
3704
3705    /// Whether the window is maximized.
3706    ///
3707    /// Setting this property is the equivalent of calling
3708    /// [`GtkWindowExtManual::maximize()`][crate::gtk::prelude::GtkWindowExtManual::maximize()] or [`GtkWindowExtManual::unmaximize()`][crate::gtk::prelude::GtkWindowExtManual::unmaximize()];
3709    /// either operation is asynchronous, which means you will need to
3710    /// connect to the ::notify signal in order to know whether the
3711    /// operation was successful.
3712    pub fn maximized(self, maximized: bool) -> Self {
3713        Self {
3714            builder: self.builder.property("maximized", maximized),
3715        }
3716    }
3717
3718    /// Whether mnemonics are currently visible in this window.
3719    ///
3720    /// This property is maintained by GTK based on user input,
3721    /// and should not be set by applications.
3722    pub fn mnemonics_visible(self, mnemonics_visible: bool) -> Self {
3723        Self {
3724            builder: self
3725                .builder
3726                .property("mnemonics-visible", mnemonics_visible),
3727        }
3728    }
3729
3730    /// If true, the window is modal.
3731    pub fn modal(self, modal: bool) -> Self {
3732        Self {
3733            builder: self.builder.property("modal", modal),
3734        }
3735    }
3736
3737    /// If true, users can resize the window.
3738    pub fn resizable(self, resizable: bool) -> Self {
3739        Self {
3740            builder: self.builder.property("resizable", resizable),
3741        }
3742    }
3743
3744    /// A write-only property for setting window's startup notification identifier.
3745    pub fn startup_id(self, startup_id: impl Into<glib::GString>) -> Self {
3746        Self {
3747            builder: self.builder.property("startup-id", startup_id.into()),
3748        }
3749    }
3750
3751    /// The title of the window.
3752    pub fn title(self, title: impl Into<glib::GString>) -> Self {
3753        Self {
3754            builder: self.builder.property("title", title.into()),
3755        }
3756    }
3757
3758    /// The titlebar widget.
3759    #[cfg(feature = "gtk_v4_6")]
3760    #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_6")))]
3761    pub fn titlebar(self, titlebar: &impl IsA<gtk::Widget>) -> Self {
3762        Self {
3763            builder: self.builder.property("titlebar", titlebar.clone().upcast()),
3764        }
3765    }
3766
3767    /// The transient parent of the window.
3768    pub fn transient_for(self, transient_for: &impl IsA<gtk::Window>) -> Self {
3769        Self {
3770            builder: self
3771                .builder
3772                .property("transient-for", transient_for.clone().upcast()),
3773        }
3774    }
3775
3776    /// Whether the widget or any of its descendents can accept
3777    /// the input focus.
3778    ///
3779    /// This property is meant to be set by widget implementations,
3780    /// typically in their instance init function.
3781    pub fn can_focus(self, can_focus: bool) -> Self {
3782        Self {
3783            builder: self.builder.property("can-focus", can_focus),
3784        }
3785    }
3786
3787    /// Whether the widget can receive pointer events.
3788    pub fn can_target(self, can_target: bool) -> Self {
3789        Self {
3790            builder: self.builder.property("can-target", can_target),
3791        }
3792    }
3793
3794    /// A list of css classes applied to this widget.
3795    pub fn css_classes(self, css_classes: impl Into<glib::StrV>) -> Self {
3796        Self {
3797            builder: self.builder.property("css-classes", css_classes.into()),
3798        }
3799    }
3800
3801    /// The name of this widget in the CSS tree.
3802    ///
3803    /// This property is meant to be set by widget implementations,
3804    /// typically in their instance init function.
3805    pub fn css_name(self, css_name: impl Into<glib::GString>) -> Self {
3806        Self {
3807            builder: self.builder.property("css-name", css_name.into()),
3808        }
3809    }
3810
3811    /// The cursor used by @widget.
3812    pub fn cursor(self, cursor: &gdk::Cursor) -> Self {
3813        Self {
3814            builder: self.builder.property("cursor", cursor.clone()),
3815        }
3816    }
3817
3818    /// Whether the widget should grab focus when it is clicked with the mouse.
3819    ///
3820    /// This property is only relevant for widgets that can take focus.
3821    pub fn focus_on_click(self, focus_on_click: bool) -> Self {
3822        Self {
3823            builder: self.builder.property("focus-on-click", focus_on_click),
3824        }
3825    }
3826
3827    /// Whether this widget itself will accept the input focus.
3828    pub fn focusable(self, focusable: bool) -> Self {
3829        Self {
3830            builder: self.builder.property("focusable", focusable),
3831        }
3832    }
3833
3834    /// How to distribute horizontal space if widget gets extra space.
3835    pub fn halign(self, halign: gtk::Align) -> Self {
3836        Self {
3837            builder: self.builder.property("halign", halign),
3838        }
3839    }
3840
3841    /// Enables or disables the emission of the [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip]
3842    /// signal on @widget.
3843    ///
3844    /// A true value indicates that @widget can have a tooltip, in this case
3845    /// the widget will be queried using [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip] to
3846    /// determine whether it will provide a tooltip or not.
3847    pub fn has_tooltip(self, has_tooltip: bool) -> Self {
3848        Self {
3849            builder: self.builder.property("has-tooltip", has_tooltip),
3850        }
3851    }
3852
3853    /// Overrides for height request of the widget.
3854    ///
3855    /// If this is -1, the natural request will be used.
3856    pub fn height_request(self, height_request: i32) -> Self {
3857        Self {
3858            builder: self.builder.property("height-request", height_request),
3859        }
3860    }
3861
3862    /// Whether to expand horizontally.
3863    pub fn hexpand(self, hexpand: bool) -> Self {
3864        Self {
3865            builder: self.builder.property("hexpand", hexpand),
3866        }
3867    }
3868
3869    /// Whether to use the `hexpand` property.
3870    pub fn hexpand_set(self, hexpand_set: bool) -> Self {
3871        Self {
3872            builder: self.builder.property("hexpand-set", hexpand_set),
3873        }
3874    }
3875
3876    /// The [`gtk::LayoutManager`][crate::gtk::LayoutManager] instance to use to compute
3877    /// the preferred size of the widget, and allocate its children.
3878    ///
3879    /// This property is meant to be set by widget implementations,
3880    /// typically in their instance init function.
3881    pub fn layout_manager(self, layout_manager: &impl IsA<gtk::LayoutManager>) -> Self {
3882        Self {
3883            builder: self
3884                .builder
3885                .property("layout-manager", layout_manager.clone().upcast()),
3886        }
3887    }
3888
3889    /// Makes this widget act like a modal dialog, with respect to
3890    /// event delivery.
3891    ///
3892    /// Global event controllers will not handle events with targets
3893    /// inside the widget, unless they are set up to ignore propagation
3894    /// limits. See `Gtk::EventController::set_propagation_limit()`.
3895    #[cfg(feature = "gtk_v4_18")]
3896    #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_18")))]
3897    pub fn limit_events(self, limit_events: bool) -> Self {
3898        Self {
3899            builder: self.builder.property("limit-events", limit_events),
3900        }
3901    }
3902
3903    /// Margin on bottom side of widget.
3904    ///
3905    /// This property adds margin outside of the widget's normal size
3906    /// request, the margin will be added in addition to the size from
3907    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
3908    pub fn margin_bottom(self, margin_bottom: i32) -> Self {
3909        Self {
3910            builder: self.builder.property("margin-bottom", margin_bottom),
3911        }
3912    }
3913
3914    /// Margin on end of widget, horizontally.
3915    ///
3916    /// This property supports left-to-right and right-to-left text
3917    /// directions.
3918    ///
3919    /// This property adds margin outside of the widget's normal size
3920    /// request, the margin will be added in addition to the size from
3921    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
3922    pub fn margin_end(self, margin_end: i32) -> Self {
3923        Self {
3924            builder: self.builder.property("margin-end", margin_end),
3925        }
3926    }
3927
3928    /// Margin on start of widget, horizontally.
3929    ///
3930    /// This property supports left-to-right and right-to-left text
3931    /// directions.
3932    ///
3933    /// This property adds margin outside of the widget's normal size
3934    /// request, the margin will be added in addition to the size from
3935    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
3936    pub fn margin_start(self, margin_start: i32) -> Self {
3937        Self {
3938            builder: self.builder.property("margin-start", margin_start),
3939        }
3940    }
3941
3942    /// Margin on top side of widget.
3943    ///
3944    /// This property adds margin outside of the widget's normal size
3945    /// request, the margin will be added in addition to the size from
3946    /// [`WidgetExtManual::set_size_request()`][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
3947    pub fn margin_top(self, margin_top: i32) -> Self {
3948        Self {
3949            builder: self.builder.property("margin-top", margin_top),
3950        }
3951    }
3952
3953    /// The name of the widget.
3954    pub fn name(self, name: impl Into<glib::GString>) -> Self {
3955        Self {
3956            builder: self.builder.property("name", name.into()),
3957        }
3958    }
3959
3960    /// The requested opacity of the widget.
3961    pub fn opacity(self, opacity: f64) -> Self {
3962        Self {
3963            builder: self.builder.property("opacity", opacity),
3964        }
3965    }
3966
3967    /// How content outside the widget's content area is treated.
3968    ///
3969    /// This property is meant to be set by widget implementations,
3970    /// typically in their instance init function.
3971    pub fn overflow(self, overflow: gtk::Overflow) -> Self {
3972        Self {
3973            builder: self.builder.property("overflow", overflow),
3974        }
3975    }
3976
3977    /// Whether the widget will receive the default action when it is focused.
3978    pub fn receives_default(self, receives_default: bool) -> Self {
3979        Self {
3980            builder: self.builder.property("receives-default", receives_default),
3981        }
3982    }
3983
3984    /// Whether the widget responds to input.
3985    pub fn sensitive(self, sensitive: bool) -> Self {
3986        Self {
3987            builder: self.builder.property("sensitive", sensitive),
3988        }
3989    }
3990
3991    /// Sets the text of tooltip to be the given string, which is marked up
3992    /// with Pango markup.
3993    ///
3994    /// Also see `Gtk::Tooltip::set_markup()`.
3995    ///
3996    /// This is a convenience property which will take care of getting the
3997    /// tooltip shown if the given string is not `NULL`:
3998    /// [`has-tooltip`][struct@crate::gtk::Widget#has-tooltip] will automatically be set to true
3999    /// and there will be taken care of [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip] in
4000    /// the default signal handler.
4001    ///
4002    /// Note that if both [`tooltip-text`][struct@crate::gtk::Widget#tooltip-text] and
4003    /// [`tooltip-markup`][struct@crate::gtk::Widget#tooltip-markup] are set, the last one wins.
4004    pub fn tooltip_markup(self, tooltip_markup: impl Into<glib::GString>) -> Self {
4005        Self {
4006            builder: self
4007                .builder
4008                .property("tooltip-markup", tooltip_markup.into()),
4009        }
4010    }
4011
4012    /// Sets the text of tooltip to be the given string.
4013    ///
4014    /// Also see `Gtk::Tooltip::set_text()`.
4015    ///
4016    /// This is a convenience property which will take care of getting the
4017    /// tooltip shown if the given string is not `NULL`:
4018    /// [`has-tooltip`][struct@crate::gtk::Widget#has-tooltip] will automatically be set to true
4019    /// and there will be taken care of [`query-tooltip`][struct@crate::gtk::Widget#query-tooltip] in
4020    /// the default signal handler.
4021    ///
4022    /// Note that if both [`tooltip-text`][struct@crate::gtk::Widget#tooltip-text] and
4023    /// [`tooltip-markup`][struct@crate::gtk::Widget#tooltip-markup] are set, the last one wins.
4024    pub fn tooltip_text(self, tooltip_text: impl Into<glib::GString>) -> Self {
4025        Self {
4026            builder: self.builder.property("tooltip-text", tooltip_text.into()),
4027        }
4028    }
4029
4030    /// How to distribute vertical space if widget gets extra space.
4031    pub fn valign(self, valign: gtk::Align) -> Self {
4032        Self {
4033            builder: self.builder.property("valign", valign),
4034        }
4035    }
4036
4037    /// Whether to expand vertically.
4038    pub fn vexpand(self, vexpand: bool) -> Self {
4039        Self {
4040            builder: self.builder.property("vexpand", vexpand),
4041        }
4042    }
4043
4044    /// Whether to use the `vexpand` property.
4045    pub fn vexpand_set(self, vexpand_set: bool) -> Self {
4046        Self {
4047            builder: self.builder.property("vexpand-set", vexpand_set),
4048        }
4049    }
4050
4051    /// Whether the widget is visible.
4052    pub fn visible(self, visible: bool) -> Self {
4053        Self {
4054            builder: self.builder.property("visible", visible),
4055        }
4056    }
4057
4058    /// Overrides for width request of the widget.
4059    ///
4060    /// If this is -1, the natural request will be used.
4061    pub fn width_request(self, width_request: i32) -> Self {
4062        Self {
4063            builder: self.builder.property("width-request", width_request),
4064        }
4065    }
4066
4067    /// The accessible role of the given [`gtk::Accessible`][crate::gtk::Accessible] implementation.
4068    ///
4069    /// The accessible role cannot be changed once set.
4070    pub fn accessible_role(self, accessible_role: gtk::AccessibleRole) -> Self {
4071        Self {
4072            builder: self.builder.property("accessible-role", accessible_role),
4073        }
4074    }
4075
4076    // rustdoc-stripper-ignore-next
4077    /// Build the [`AboutWindow`].
4078    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
4079    pub fn build(self) -> AboutWindow {
4080        assert_initialized_main_thread!();
4081        self.builder.build()
4082    }
4083}