1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! Configure your application.
use crate::{Font, Pixels};
use std::borrow::Cow;
/// The settings of an iced program.
#[derive(Debug, Clone)]
pub struct Settings {
/// The identifier of the application.
///
/// If provided, this identifier may be used to identify the application or
/// communicate with it through the windowing system.
pub id: Option<String>,
/// The fonts to load on boot.
pub fonts: Vec<Cow<'static, [u8]>>,
/// The default [`Font`] to be used.
///
/// By default, it uses [`Family::SansSerif`](crate::font::Family::SansSerif).
pub default_font: Font,
/// The text size that will be used by default.
///
/// The default value is `16.0`.
pub default_text_size: Pixels,
/// If set to true, the renderer will try to perform antialiasing for some
/// primitives.
///
/// Enabling it can produce a smoother result in some widgets, like the
/// `canvas` widget, at a performance cost.
///
/// By default, it is enabled.
pub antialiasing: bool,
/// Whether or not to attempt to synchronize rendering when possible.
///
/// Disabling it can improve rendering performance on some platforms.
///
/// By default, it is enabled.
pub vsync: bool,
/// Whether the text system loads the fonts installed on the host, besides the
/// program's own [`fonts`](Self::fonts) and iced's built-in ones.
///
/// Off, text draws only in fonts the program ships, so a headless capture draws the
/// same on every machine, and a glyph none of them has draws as the same missing
/// glyph everywhere. The text system is shared and built once per process, so the
/// first renderer to be created decides. `iced_test` always runs with it off.
///
/// By default, it is enabled.
pub system_fonts: bool,
/// How the app's automation door behaves, when the `automation` feature
/// builds one in and an administrator has switched it on. The defaults
/// suit most apps.
pub automation: crate::automation::Config,
}
impl Default for Settings {
fn default() -> Self {
Self {
id: None,
fonts: Vec::new(),
default_font: Font::default(),
default_text_size: Pixels(16.0),
antialiasing: true,
vsync: true,
system_fonts: true,
automation: crate::automation::Config::default(),
}
}
}