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}