diff options
author | 2024-07-11 04:33:19 +0200 | |
---|---|---|
committer | 2024-07-11 04:33:19 +0200 | |
commit | 5e6c9eeb7e6f9ee985257853a140c19ec7ca1de0 (patch) | |
tree | ef2cc74dd64df8df899105f4fa5c82431fa5a02d /widget/src | |
parent | 70f44a6e264f7307531935bf0fb9e33a5ebd81c1 (diff) | |
download | iced-5e6c9eeb7e6f9ee985257853a140c19ec7ca1de0.tar.gz iced-5e6c9eeb7e6f9ee985257853a140c19ec7ca1de0.tar.bz2 iced-5e6c9eeb7e6f9ee985257853a140c19ec7ca1de0.zip |
Add `iced` widget helper to display the iced logo :comet:
Diffstat (limited to 'widget/src')
-rw-r--r-- | widget/src/helpers.rs | 35 | ||||
-rw-r--r-- | widget/src/slider.rs | 2 | ||||
-rw-r--r-- | widget/src/vertical_slider.rs | 2 |
3 files changed, 37 insertions, 2 deletions
diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 9056d191..d7631959 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -890,6 +890,41 @@ where crate::Svg::new(handle) } +/// Creates an [`Element`] that displays the iced logo with the given `text_size`. +/// +/// Useful for showing some love to your favorite GUI library in your "About" screen, +/// for instance. +#[cfg(feature = "svg")] +pub fn iced<'a, Message, Theme, Renderer>( + text_size: impl Into<Pixels>, +) -> Element<'a, Message, Theme, Renderer> +where + Message: 'a, + Renderer: core::Renderer + + core::text::Renderer<Font = core::Font> + + core::svg::Renderer + + 'a, + Theme: text::Catalog + crate::svg::Catalog + 'a, +{ + use crate::core::{Alignment, Font}; + use crate::svg; + use once_cell::sync::Lazy; + + static LOGO: Lazy<svg::Handle> = Lazy::new(|| { + svg::Handle::from_memory(include_bytes!("../assets/iced-logo.svg")) + }); + + let text_size = text_size.into(); + + row![ + svg(LOGO.clone()).width(text_size * 1.3), + text("iced").size(text_size).font(Font::MONOSPACE) + ] + .spacing(text_size.0 / 3.0) + .align_items(Alignment::Center) + .into() +} + /// Creates a new [`Canvas`]. /// /// [`Canvas`]: crate::Canvas diff --git a/widget/src/slider.rs b/widget/src/slider.rs index a8f1d192..74e6f8d3 100644 --- a/widget/src/slider.rs +++ b/widget/src/slider.rs @@ -237,7 +237,7 @@ where let steps = (percent * (end - start) / step).round(); let value = steps * step + start; - T::from_f64(value) + T::from_f64(value.min(end)) }; new_value diff --git a/widget/src/vertical_slider.rs b/widget/src/vertical_slider.rs index defb442f..33c591f5 100644 --- a/widget/src/vertical_slider.rs +++ b/widget/src/vertical_slider.rs @@ -239,7 +239,7 @@ where let steps = (percent * (end - start) / step).round(); let value = steps * step + start; - T::from_f64(value) + T::from_f64(value.min(end)) }; new_value |