diff options
Diffstat (limited to 'examples/rich/src')
| -rw-r--r-- | examples/rich/src/main.rs | 133 |
1 files changed, 67 insertions, 66 deletions
diff --git a/examples/rich/src/main.rs b/examples/rich/src/main.rs index 7cb3245..6e59680 100644 --- a/examples/rich/src/main.rs +++ b/examples/rich/src/main.rs @@ -1,6 +1,6 @@ use iced::widget::{column, container, responsive}; -use iced::{Center, Element, Fill, Font, color, font, padding}; -use iced_selection::{rich_text, span}; +use iced::{Element, Fill, Font, color, font, padding}; +use iced_selection::{rich_text, selectable, span}; fn main() -> iced::Result { iced::application(State::default, State::update, State::view) @@ -37,72 +37,73 @@ impl State { fn view(&self) -> Element<'_, Message> { responsive(|size| { - container( - column![ - rich_text![ - span("iced") - .color(color!(0x2b79a2)) - .link("https://iced.rs"), - " is a cross-platform GUI library for ", - span("Rust") - .color(color!(0x2b79a2)) - .link("https://rust-lang.org"), - ". It is inspired by ", - span("Elm") - .color(color!(0x2b79a2)) - .link("https://elm-lang.org"), - ", a delightful functional language for building web applications.\n\n", - "As a GUI library, iced helps you build ", - span("graphical user interfaces") - .color(color!(0x2b79a2)) - .link("https://en.wikipedia.org/wiki/Graphical_user_interface") - .font(Font { - style: font::Style::Italic, - ..Font::DEFAULT - }), - " for your Rust applications.\n\n", - "iced is strongly focused on ", - span("simplicity") - .font(Font { - weight: font::Weight::Bold, - ..Font::DEFAULT - }), - " and ", - span("type-safety") - .font(Font { - weight: font::Weight::Bold, - ..Font::DEFAULT - }), - ". As a result, iced tries to provide simple building blocks that can be put together with strong typing to reduce the chance of ", - span("runtime errors") - .font(Font { - weight: font::Weight::Bold, - ..Font::DEFAULT - }), - "." + selectable( + container( + column![ + rich_text![ + span("iced") + .color(color!(0x2b79a2)) + .link("https://iced.rs"), + " is a cross-platform GUI library for ", + span("Rust") + .color(color!(0x2b79a2)) + .link("https://rust-lang.org"), + ". It is inspired by ", + span("Elm") + .color(color!(0x2b79a2)) + .link("https://elm-lang.org"), + ", a delightful functional language for building web applications.\n\n", + "As a GUI library, iced helps you build ", + span("graphical user interfaces") + .color(color!(0x2b79a2)) + .link("https://en.wikipedia.org/wiki/Graphical_user_interface") + .font(Font { + style: font::Style::Italic, + ..Font::DEFAULT + }), + " for your Rust applications.\n\n", + "iced is strongly focused on ", + span("simplicity") + .font(Font { + weight: font::Weight::Bold, + ..Font::DEFAULT + }), + " and ", + span("type-safety") + .font(Font { + weight: font::Weight::Bold, + ..Font::DEFAULT + }), + ". As a result, iced tries to provide simple building blocks that can be put together with strong typing to reduce the chance of ", + span("runtime errors") + .font(Font { + weight: font::Weight::Bold, + ..Font::DEFAULT + }), + "." + ] + .on_link_click(Message::LinkClicked) + .on_link_hover(Message::LinkHovered) + .on_hover_lost(Message::HoverLost), + self.clicked.as_deref().map(|link| rich_text![ + "Last clicked link: ", + span(link).color(color!(0x2b79a2)).link(link) + ] + .on_link_click(Message::LinkClicked) + .on_link_hover(Message::LinkHovered) + .on_hover_lost(Message::HoverLost)), + self.hovered.as_deref().map(|link| rich_text![ + "Currently hovered link: ", + span(link).color(color!(0x2b79a2)).link(link) + ] + .on_link_click(Message::LinkClicked)), ] - .on_link_click(Message::LinkClicked) - .on_link_hover(Message::LinkHovered) - .on_hover_lost(Message::HoverLost), - self.clicked.as_deref().map(|link| rich_text![ - "Last clicked link: ", - span(link).color(color!(0x2b79a2)).link(link) - ] - .on_link_click(Message::LinkClicked) - .on_link_hover(Message::LinkHovered) - .on_hover_lost(Message::HoverLost)), - self.hovered.as_deref().map(|link| rich_text![ - "Currently hovered link: ", - span(link).color(color!(0x2b79a2)).link(link) - ] - .on_link_click(Message::LinkClicked)), - ] - .spacing(10) - .align_x(Center) - .max_width(size.width * 0.8), + .spacing(10) + .max_width(size.width * 0.8), + ) + .padding(padding::top(size.height * 0.4)) + .center_x(Fill) ) - .padding(padding::top(size.height * 0.4)) - .center_x(Fill) .into() }) .into() |
