gtk/auto/font_chooser_dialog.rs
1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5#[cfg(feature = "v3_24")]
6#[cfg_attr(docsrs, doc(cfg(feature = "v3_24")))]
7use crate::FontChooserLevel;
8use crate::{
9 Align, Application, Bin, Buildable, Container, Dialog, FontChooser, ResizeMode, Widget, Window,
10 WindowPosition, WindowType,
11};
12use glib::{prelude::*, translate::*};
13use std::fmt;
14
15glib::wrapper! {
16 /// The [`FontChooserDialog`][crate::FontChooserDialog] widget is a dialog for selecting a font.
17 /// It implements the [`FontChooser`][crate::FontChooser] interface.
18 ///
19 /// # GtkFontChooserDialog as GtkBuildable
20 ///
21 /// The GtkFontChooserDialog implementation of the [`Buildable`][crate::Buildable]
22 /// interface exposes the buttons with the names “select_button”
23 /// and “cancel_button”.
24 ///
25 /// # Implements
26 ///
27 /// [`DialogExt`][trait@crate::prelude::DialogExt], [`GtkWindowExt`][trait@crate::prelude::GtkWindowExt], [`BinExt`][trait@crate::prelude::BinExt], [`ContainerExt`][trait@crate::prelude::ContainerExt], [`WidgetExt`][trait@crate::prelude::WidgetExt], [`trait@glib::ObjectExt`], [`BuildableExt`][trait@crate::prelude::BuildableExt], [`FontChooserExt`][trait@crate::prelude::FontChooserExt], [`DialogExtManual`][trait@crate::prelude::DialogExtManual], [`GtkWindowExtManual`][trait@crate::prelude::GtkWindowExtManual], [`ContainerExtManual`][trait@crate::prelude::ContainerExtManual], [`WidgetExtManual`][trait@crate::prelude::WidgetExtManual], [`BuildableExtManual`][trait@crate::prelude::BuildableExtManual]
28 #[doc(alias = "GtkFontChooserDialog")]
29 pub struct FontChooserDialog(Object<ffi::GtkFontChooserDialog, ffi::GtkFontChooserDialogClass>) @extends Dialog, Window, Bin, Container, Widget, @implements Buildable, FontChooser;
30
31 match fn {
32 type_ => || ffi::gtk_font_chooser_dialog_get_type(),
33 }
34}
35
36impl FontChooserDialog {
37 pub const NONE: Option<&'static FontChooserDialog> = None;
38
39 /// Creates a new [`FontChooserDialog`][crate::FontChooserDialog].
40 /// ## `title`
41 /// Title of the dialog, or [`None`]
42 /// ## `parent`
43 /// Transient parent of the dialog, or [`None`]
44 ///
45 /// # Returns
46 ///
47 /// a new [`FontChooserDialog`][crate::FontChooserDialog]
48 #[doc(alias = "gtk_font_chooser_dialog_new")]
49 pub fn new(title: Option<&str>, parent: Option<&impl IsA<Window>>) -> FontChooserDialog {
50 assert_initialized_main_thread!();
51 unsafe {
52 Widget::from_glib_none(ffi::gtk_font_chooser_dialog_new(
53 title.to_glib_none().0,
54 parent.map(|p| p.as_ref()).to_glib_none().0,
55 ))
56 .unsafe_cast()
57 }
58 }
59
60 // rustdoc-stripper-ignore-next
61 /// Creates a new builder-pattern struct instance to construct [`FontChooserDialog`] objects.
62 ///
63 /// This method returns an instance of [`FontChooserDialogBuilder`](crate::builders::FontChooserDialogBuilder) which can be used to create [`FontChooserDialog`] objects.
64 pub fn builder() -> FontChooserDialogBuilder {
65 FontChooserDialogBuilder::new()
66 }
67}
68
69impl Default for FontChooserDialog {
70 fn default() -> Self {
71 glib::object::Object::new::<Self>()
72 }
73}
74
75// rustdoc-stripper-ignore-next
76/// A [builder-pattern] type to construct [`FontChooserDialog`] objects.
77///
78/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
79#[must_use = "The builder must be built to be used"]
80pub struct FontChooserDialogBuilder {
81 builder: glib::object::ObjectBuilder<'static, FontChooserDialog>,
82}
83
84impl FontChooserDialogBuilder {
85 fn new() -> Self {
86 Self {
87 builder: glib::object::Object::builder(),
88 }
89 }
90
91 /// [`true`] if the dialog uses a [`HeaderBar`][crate::HeaderBar] for action buttons
92 /// instead of the action-area.
93 ///
94 /// For technical reasons, this property is declared as an integer
95 /// property, but you should only set it to [`true`] or [`false`].
96 pub fn use_header_bar(self, use_header_bar: i32) -> Self {
97 Self {
98 builder: self.builder.property("use-header-bar", use_header_bar),
99 }
100 }
101
102 /// Whether the window should receive the input focus.
103 pub fn accept_focus(self, accept_focus: bool) -> Self {
104 Self {
105 builder: self.builder.property("accept-focus", accept_focus),
106 }
107 }
108
109 /// The [`Application`][crate::Application] associated with the window.
110 ///
111 /// The application will be kept alive for at least as long as it
112 /// has any windows associated with it (see [`ApplicationExtManual::hold()`][crate::gio::prelude::ApplicationExtManual::hold()]
113 /// for a way to keep it alive without windows).
114 ///
115 /// Normally, the connection between the application and the window
116 /// will remain until the window is destroyed, but you can explicitly
117 /// remove it by setting the :application property to [`None`].
118 pub fn application(self, application: &impl IsA<Application>) -> Self {
119 Self {
120 builder: self
121 .builder
122 .property("application", application.clone().upcast()),
123 }
124 }
125
126 /// The widget to which this window is attached.
127 /// See [`GtkWindowExt::set_attached_to()`][crate::prelude::GtkWindowExt::set_attached_to()].
128 ///
129 /// Examples of places where specifying this relation is useful are
130 /// for instance a [`Menu`][crate::Menu] created by a [`ComboBox`][crate::ComboBox], a completion
131 /// popup window created by [`Entry`][crate::Entry] or a typeahead search entry
132 /// created by [`TreeView`][crate::TreeView].
133 pub fn attached_to(self, attached_to: &impl IsA<Widget>) -> Self {
134 Self {
135 builder: self
136 .builder
137 .property("attached-to", attached_to.clone().upcast()),
138 }
139 }
140
141 /// Whether the window should be decorated by the window manager.
142 pub fn decorated(self, decorated: bool) -> Self {
143 Self {
144 builder: self.builder.property("decorated", decorated),
145 }
146 }
147
148 pub fn default_height(self, default_height: i32) -> Self {
149 Self {
150 builder: self.builder.property("default-height", default_height),
151 }
152 }
153
154 pub fn default_width(self, default_width: i32) -> Self {
155 Self {
156 builder: self.builder.property("default-width", default_width),
157 }
158 }
159
160 /// Whether the window frame should have a close button.
161 pub fn deletable(self, deletable: bool) -> Self {
162 Self {
163 builder: self.builder.property("deletable", deletable),
164 }
165 }
166
167 pub fn destroy_with_parent(self, destroy_with_parent: bool) -> Self {
168 Self {
169 builder: self
170 .builder
171 .property("destroy-with-parent", destroy_with_parent),
172 }
173 }
174
175 /// Whether the window should receive the input focus when mapped.
176 pub fn focus_on_map(self, focus_on_map: bool) -> Self {
177 Self {
178 builder: self.builder.property("focus-on-map", focus_on_map),
179 }
180 }
181
182 /// Whether 'focus rectangles' are currently visible in this window.
183 ///
184 /// This property is maintained by GTK+ based on user input
185 /// and should not be set by applications.
186 pub fn focus_visible(self, focus_visible: bool) -> Self {
187 Self {
188 builder: self.builder.property("focus-visible", focus_visible),
189 }
190 }
191
192 /// The window gravity of the window. See [`GtkWindowExt::move_()`][crate::prelude::GtkWindowExt::move_()] and [`gdk::Gravity`][crate::gdk::Gravity] for
193 /// more details about window gravity.
194 pub fn gravity(self, gravity: gdk::Gravity) -> Self {
195 Self {
196 builder: self.builder.property("gravity", gravity),
197 }
198 }
199
200 /// Whether the titlebar should be hidden during maximization.
201 pub fn hide_titlebar_when_maximized(self, hide_titlebar_when_maximized: bool) -> Self {
202 Self {
203 builder: self
204 .builder
205 .property("hide-titlebar-when-maximized", hide_titlebar_when_maximized),
206 }
207 }
208
209 pub fn icon(self, icon: &gdk_pixbuf::Pixbuf) -> Self {
210 Self {
211 builder: self.builder.property("icon", icon.clone()),
212 }
213 }
214
215 /// The :icon-name property specifies the name of the themed icon to
216 /// use as the window icon. See [`IconTheme`][crate::IconTheme] for more details.
217 pub fn icon_name(self, icon_name: impl Into<glib::GString>) -> Self {
218 Self {
219 builder: self.builder.property("icon-name", icon_name.into()),
220 }
221 }
222
223 /// Whether mnemonics are currently visible in this window.
224 ///
225 /// This property is maintained by GTK+ based on user input,
226 /// and should not be set by applications.
227 pub fn mnemonics_visible(self, mnemonics_visible: bool) -> Self {
228 Self {
229 builder: self
230 .builder
231 .property("mnemonics-visible", mnemonics_visible),
232 }
233 }
234
235 pub fn modal(self, modal: bool) -> Self {
236 Self {
237 builder: self.builder.property("modal", modal),
238 }
239 }
240
241 pub fn resizable(self, resizable: bool) -> Self {
242 Self {
243 builder: self.builder.property("resizable", resizable),
244 }
245 }
246
247 pub fn role(self, role: impl Into<glib::GString>) -> Self {
248 Self {
249 builder: self.builder.property("role", role.into()),
250 }
251 }
252
253 pub fn screen(self, screen: &gdk::Screen) -> Self {
254 Self {
255 builder: self.builder.property("screen", screen.clone()),
256 }
257 }
258
259 pub fn skip_pager_hint(self, skip_pager_hint: bool) -> Self {
260 Self {
261 builder: self.builder.property("skip-pager-hint", skip_pager_hint),
262 }
263 }
264
265 pub fn skip_taskbar_hint(self, skip_taskbar_hint: bool) -> Self {
266 Self {
267 builder: self
268 .builder
269 .property("skip-taskbar-hint", skip_taskbar_hint),
270 }
271 }
272
273 /// The :startup-id is a write-only property for setting window's
274 /// startup notification identifier. See [`GtkWindowExt::set_startup_id()`][crate::prelude::GtkWindowExt::set_startup_id()]
275 /// for more details.
276 pub fn startup_id(self, startup_id: impl Into<glib::GString>) -> Self {
277 Self {
278 builder: self.builder.property("startup-id", startup_id.into()),
279 }
280 }
281
282 pub fn title(self, title: impl Into<glib::GString>) -> Self {
283 Self {
284 builder: self.builder.property("title", title.into()),
285 }
286 }
287
288 /// The transient parent of the window. See [`GtkWindowExt::set_transient_for()`][crate::prelude::GtkWindowExt::set_transient_for()] for
289 /// more details about transient windows.
290 pub fn transient_for(self, transient_for: &impl IsA<Window>) -> Self {
291 Self {
292 builder: self
293 .builder
294 .property("transient-for", transient_for.clone().upcast()),
295 }
296 }
297
298 pub fn type_(self, type_: WindowType) -> Self {
299 Self {
300 builder: self.builder.property("type", type_),
301 }
302 }
303
304 pub fn type_hint(self, type_hint: gdk::WindowTypeHint) -> Self {
305 Self {
306 builder: self.builder.property("type-hint", type_hint),
307 }
308 }
309
310 pub fn urgency_hint(self, urgency_hint: bool) -> Self {
311 Self {
312 builder: self.builder.property("urgency-hint", urgency_hint),
313 }
314 }
315
316 pub fn window_position(self, window_position: WindowPosition) -> Self {
317 Self {
318 builder: self.builder.property("window-position", window_position),
319 }
320 }
321
322 pub fn border_width(self, border_width: u32) -> Self {
323 Self {
324 builder: self.builder.property("border-width", border_width),
325 }
326 }
327
328 pub fn child(self, child: &impl IsA<Widget>) -> Self {
329 Self {
330 builder: self.builder.property("child", child.clone().upcast()),
331 }
332 }
333
334 pub fn resize_mode(self, resize_mode: ResizeMode) -> Self {
335 Self {
336 builder: self.builder.property("resize-mode", resize_mode),
337 }
338 }
339
340 pub fn app_paintable(self, app_paintable: bool) -> Self {
341 Self {
342 builder: self.builder.property("app-paintable", app_paintable),
343 }
344 }
345
346 pub fn can_default(self, can_default: bool) -> Self {
347 Self {
348 builder: self.builder.property("can-default", can_default),
349 }
350 }
351
352 pub fn can_focus(self, can_focus: bool) -> Self {
353 Self {
354 builder: self.builder.property("can-focus", can_focus),
355 }
356 }
357
358 pub fn events(self, events: gdk::EventMask) -> Self {
359 Self {
360 builder: self.builder.property("events", events),
361 }
362 }
363
364 /// Whether to expand in both directions. Setting this sets both [`hexpand`][struct@crate::Widget#hexpand] and [`vexpand`][struct@crate::Widget#vexpand]
365 pub fn expand(self, expand: bool) -> Self {
366 Self {
367 builder: self.builder.property("expand", expand),
368 }
369 }
370
371 /// Whether the widget should grab focus when it is clicked with the mouse.
372 ///
373 /// This property is only relevant for widgets that can take focus.
374 ///
375 /// Before 3.20, several widgets (GtkButton, GtkFileChooserButton,
376 /// GtkComboBox) implemented this property individually.
377 pub fn focus_on_click(self, focus_on_click: bool) -> Self {
378 Self {
379 builder: self.builder.property("focus-on-click", focus_on_click),
380 }
381 }
382
383 /// How to distribute horizontal space if widget gets extra space, see [`Align`][crate::Align]
384 pub fn halign(self, halign: Align) -> Self {
385 Self {
386 builder: self.builder.property("halign", halign),
387 }
388 }
389
390 pub fn has_default(self, has_default: bool) -> Self {
391 Self {
392 builder: self.builder.property("has-default", has_default),
393 }
394 }
395
396 pub fn has_focus(self, has_focus: bool) -> Self {
397 Self {
398 builder: self.builder.property("has-focus", has_focus),
399 }
400 }
401
402 /// Enables or disables the emission of [`query-tooltip`][struct@crate::Widget#query-tooltip] on `widget`.
403 /// A value of [`true`] indicates that `widget` can have a tooltip, in this case
404 /// the widget will be queried using [`query-tooltip`][struct@crate::Widget#query-tooltip] to determine
405 /// whether it will provide a tooltip or not.
406 ///
407 /// Note that setting this property to [`true`] for the first time will change
408 /// the event masks of the GdkWindows of this widget to include leave-notify
409 /// and motion-notify events. This cannot and will not be undone when the
410 /// property is set to [`false`] again.
411 pub fn has_tooltip(self, has_tooltip: bool) -> Self {
412 Self {
413 builder: self.builder.property("has-tooltip", has_tooltip),
414 }
415 }
416
417 pub fn height_request(self, height_request: i32) -> Self {
418 Self {
419 builder: self.builder.property("height-request", height_request),
420 }
421 }
422
423 /// Whether to expand horizontally. See [`WidgetExt::set_hexpand()`][crate::prelude::WidgetExt::set_hexpand()].
424 pub fn hexpand(self, hexpand: bool) -> Self {
425 Self {
426 builder: self.builder.property("hexpand", hexpand),
427 }
428 }
429
430 /// Whether to use the [`hexpand`][struct@crate::Widget#hexpand] property. See [`WidgetExt::is_hexpand_set()`][crate::prelude::WidgetExt::is_hexpand_set()].
431 pub fn hexpand_set(self, hexpand_set: bool) -> Self {
432 Self {
433 builder: self.builder.property("hexpand-set", hexpand_set),
434 }
435 }
436
437 pub fn is_focus(self, is_focus: bool) -> Self {
438 Self {
439 builder: self.builder.property("is-focus", is_focus),
440 }
441 }
442
443 /// Sets all four sides' margin at once. If read, returns max
444 /// margin on any side.
445 pub fn margin(self, margin: i32) -> Self {
446 Self {
447 builder: self.builder.property("margin", margin),
448 }
449 }
450
451 /// Margin on bottom side of widget.
452 ///
453 /// This property adds margin outside of the widget's normal size
454 /// request, the margin will be added in addition to the size from
455 /// [`WidgetExt::set_size_request()`][crate::prelude::WidgetExt::set_size_request()] for example.
456 pub fn margin_bottom(self, margin_bottom: i32) -> Self {
457 Self {
458 builder: self.builder.property("margin-bottom", margin_bottom),
459 }
460 }
461
462 /// Margin on end of widget, horizontally. This property supports
463 /// left-to-right and right-to-left text directions.
464 ///
465 /// This property adds margin outside of the widget's normal size
466 /// request, the margin will be added in addition to the size from
467 /// [`WidgetExt::set_size_request()`][crate::prelude::WidgetExt::set_size_request()] for example.
468 pub fn margin_end(self, margin_end: i32) -> Self {
469 Self {
470 builder: self.builder.property("margin-end", margin_end),
471 }
472 }
473
474 /// Margin on start of widget, horizontally. This property supports
475 /// left-to-right and right-to-left text directions.
476 ///
477 /// This property adds margin outside of the widget's normal size
478 /// request, the margin will be added in addition to the size from
479 /// [`WidgetExt::set_size_request()`][crate::prelude::WidgetExt::set_size_request()] for example.
480 pub fn margin_start(self, margin_start: i32) -> Self {
481 Self {
482 builder: self.builder.property("margin-start", margin_start),
483 }
484 }
485
486 /// Margin on top side of widget.
487 ///
488 /// This property adds margin outside of the widget's normal size
489 /// request, the margin will be added in addition to the size from
490 /// [`WidgetExt::set_size_request()`][crate::prelude::WidgetExt::set_size_request()] for example.
491 pub fn margin_top(self, margin_top: i32) -> Self {
492 Self {
493 builder: self.builder.property("margin-top", margin_top),
494 }
495 }
496
497 pub fn name(self, name: impl Into<glib::GString>) -> Self {
498 Self {
499 builder: self.builder.property("name", name.into()),
500 }
501 }
502
503 pub fn no_show_all(self, no_show_all: bool) -> Self {
504 Self {
505 builder: self.builder.property("no-show-all", no_show_all),
506 }
507 }
508
509 /// The requested opacity of the widget. See [`WidgetExt::set_opacity()`][crate::prelude::WidgetExt::set_opacity()] for
510 /// more details about window opacity.
511 ///
512 /// Before 3.8 this was only available in GtkWindow
513 pub fn opacity(self, opacity: f64) -> Self {
514 Self {
515 builder: self.builder.property("opacity", opacity),
516 }
517 }
518
519 pub fn parent(self, parent: &impl IsA<Container>) -> Self {
520 Self {
521 builder: self.builder.property("parent", parent.clone().upcast()),
522 }
523 }
524
525 pub fn receives_default(self, receives_default: bool) -> Self {
526 Self {
527 builder: self.builder.property("receives-default", receives_default),
528 }
529 }
530
531 pub fn sensitive(self, sensitive: bool) -> Self {
532 Self {
533 builder: self.builder.property("sensitive", sensitive),
534 }
535 }
536
537 /// Sets the text of tooltip to be the given string, which is marked up
538 /// with the [Pango text markup language][PangoMarkupFormat].
539 /// Also see [`Tooltip::set_markup()`][crate::Tooltip::set_markup()].
540 ///
541 /// This is a convenience property which will take care of getting the
542 /// tooltip shown if the given string is not [`None`]: [`has-tooltip`][struct@crate::Widget#has-tooltip]
543 /// will automatically be set to [`true`] and there will be taken care of
544 /// [`query-tooltip`][struct@crate::Widget#query-tooltip] in the default signal handler.
545 ///
546 /// Note that if both [`tooltip-text`][struct@crate::Widget#tooltip-text] and [`tooltip-markup`][struct@crate::Widget#tooltip-markup]
547 /// are set, the last one wins.
548 pub fn tooltip_markup(self, tooltip_markup: impl Into<glib::GString>) -> Self {
549 Self {
550 builder: self
551 .builder
552 .property("tooltip-markup", tooltip_markup.into()),
553 }
554 }
555
556 /// Sets the text of tooltip to be the given string.
557 ///
558 /// Also see [`Tooltip::set_text()`][crate::Tooltip::set_text()].
559 ///
560 /// This is a convenience property which will take care of getting the
561 /// tooltip shown if the given string is not [`None`]: [`has-tooltip`][struct@crate::Widget#has-tooltip]
562 /// will automatically be set to [`true`] and there will be taken care of
563 /// [`query-tooltip`][struct@crate::Widget#query-tooltip] in the default signal handler.
564 ///
565 /// Note that if both [`tooltip-text`][struct@crate::Widget#tooltip-text] and [`tooltip-markup`][struct@crate::Widget#tooltip-markup]
566 /// are set, the last one wins.
567 pub fn tooltip_text(self, tooltip_text: impl Into<glib::GString>) -> Self {
568 Self {
569 builder: self.builder.property("tooltip-text", tooltip_text.into()),
570 }
571 }
572
573 /// How to distribute vertical space if widget gets extra space, see [`Align`][crate::Align]
574 pub fn valign(self, valign: Align) -> Self {
575 Self {
576 builder: self.builder.property("valign", valign),
577 }
578 }
579
580 /// Whether to expand vertically. See [`WidgetExt::set_vexpand()`][crate::prelude::WidgetExt::set_vexpand()].
581 pub fn vexpand(self, vexpand: bool) -> Self {
582 Self {
583 builder: self.builder.property("vexpand", vexpand),
584 }
585 }
586
587 /// Whether to use the [`vexpand`][struct@crate::Widget#vexpand] property. See [`WidgetExt::is_vexpand_set()`][crate::prelude::WidgetExt::is_vexpand_set()].
588 pub fn vexpand_set(self, vexpand_set: bool) -> Self {
589 Self {
590 builder: self.builder.property("vexpand-set", vexpand_set),
591 }
592 }
593
594 pub fn visible(self, visible: bool) -> Self {
595 Self {
596 builder: self.builder.property("visible", visible),
597 }
598 }
599
600 pub fn width_request(self, width_request: i32) -> Self {
601 Self {
602 builder: self.builder.property("width-request", width_request),
603 }
604 }
605
606 /// The font description as a string, e.g. "Sans Italic 12".
607 pub fn font(self, font: impl Into<glib::GString>) -> Self {
608 Self {
609 builder: self.builder.property("font", font.into()),
610 }
611 }
612
613 /// The font description as a [`pango::FontDescription`][crate::pango::FontDescription].
614 pub fn font_desc(self, font_desc: &pango::FontDescription) -> Self {
615 Self {
616 builder: self.builder.property("font-desc", font_desc),
617 }
618 }
619
620 /// The language for which the [`font-features`][struct@crate::FontChooser#font-features] were
621 /// selected, in a format that is compatible with CSS and with Pango
622 /// attributes.
623 #[cfg(feature = "v3_24")]
624 #[cfg_attr(docsrs, doc(cfg(feature = "v3_24")))]
625 pub fn language(self, language: impl Into<glib::GString>) -> Self {
626 Self {
627 builder: self.builder.property("language", language.into()),
628 }
629 }
630
631 /// The level of granularity to offer for selecting fonts.
632 #[cfg(feature = "v3_24")]
633 #[cfg_attr(docsrs, doc(cfg(feature = "v3_24")))]
634 pub fn level(self, level: FontChooserLevel) -> Self {
635 Self {
636 builder: self.builder.property("level", level),
637 }
638 }
639
640 /// The string with which to preview the font.
641 pub fn preview_text(self, preview_text: impl Into<glib::GString>) -> Self {
642 Self {
643 builder: self.builder.property("preview-text", preview_text.into()),
644 }
645 }
646
647 /// Whether to show an entry to change the preview text.
648 pub fn show_preview_entry(self, show_preview_entry: bool) -> Self {
649 Self {
650 builder: self
651 .builder
652 .property("show-preview-entry", show_preview_entry),
653 }
654 }
655
656 // rustdoc-stripper-ignore-next
657 /// Build the [`FontChooserDialog`].
658 #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
659 pub fn build(self) -> FontChooserDialog {
660 self.builder.build()
661 }
662}
663
664impl fmt::Display for FontChooserDialog {
665 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
666 f.write_str("FontChooserDialog")
667 }
668}