summaryrefslogtreecommitdiffstats
path: root/core/src/settings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/settings.rs')
-rw-r--r--core/src/settings.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/core/src/settings.rs b/core/src/settings.rs
new file mode 100644
index 00000000..36bbb699
--- /dev/null
+++ b/core/src/settings.rs
@@ -0,0 +1,50 @@
+//! 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`], at a performance cost.
+ ///
+ /// By default, it is disabled.
+ ///
+ /// [`Canvas`]: crate::widget::Canvas
+ pub antialiasing: bool,
+}
+
+impl Default for Settings {
+ fn default() -> Self {
+ Self {
+ id: None,
+ fonts: Vec::new(),
+ default_font: Font::default(),
+ default_text_size: Pixels(16.0),
+ antialiasing: false,
+ }
+ }
+}