From e7509d41405a1f5af64f2f74166f2bc5f1673225 Mon Sep 17 00:00:00 2001 From: Polesznyák Márk Date: Mon, 20 Oct 2025 12:47:36 +0200 Subject: feat: make markdown support optional with a feature flag --- examples/iced.rs | 63 ----------------------------------------------- examples/name.rs | 39 ----------------------------- examples/name/Cargo.toml | 8 ++++++ examples/name/src/main.rs | 38 ++++++++++++++++++++++++++++ examples/rich/Cargo.toml | 9 +++++++ examples/rich/src/main.rs | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 117 insertions(+), 102 deletions(-) delete mode 100644 examples/iced.rs delete mode 100644 examples/name.rs create mode 100644 examples/name/Cargo.toml create mode 100644 examples/name/src/main.rs create mode 100644 examples/rich/Cargo.toml create mode 100644 examples/rich/src/main.rs (limited to 'examples') diff --git a/examples/iced.rs b/examples/iced.rs deleted file mode 100644 index e031d08..0000000 --- a/examples/iced.rs +++ /dev/null @@ -1,63 +0,0 @@ -#![allow(missing_docs)] -use iced::widget::{center, column, responsive}; -use iced::{Center, Element, color}; -use iced_selection::{rich_text, span}; - -fn main() -> iced::Result { - iced::run(State::update, State::view) -} - -#[derive(Default)] -struct State { - link: Option, -} - -#[derive(Debug, Clone)] -enum Message { - LinkClicked(String), -} - -impl State { - fn update(&mut self, message: Message) { - match message { - Message::LinkClicked(link) => { - let _ = open::that(&link); - self.link = Some(link); - } - }; - } - - fn view(&self) -> Element<'_, Message> { - responsive(|size| { - center( - 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"), - "." - ] - .on_link_click(Message::LinkClicked), - self.link.as_deref().map(|link| rich_text![ - "Last clicked link: ", - span(link).color(color!(0x2b79a2)).link(link) - ] - .on_link_click(Message::LinkClicked)) - ] - .spacing(10) - .align_x(Center) - .max_width(size.width * 0.8), - ) - .into() - }) - .into() - } -} diff --git a/examples/name.rs b/examples/name.rs deleted file mode 100644 index 6d0edec..0000000 --- a/examples/name.rs +++ /dev/null @@ -1,39 +0,0 @@ -#![allow(missing_docs)] -use iced::widget::{center, column, text_input}; -use iced::{Center, Element}; -use iced_selection::text; - -fn main() -> iced::Result { - iced::run(State::update, State::view) -} - -#[derive(Default)] -struct State { - name: String, -} - -#[derive(Debug, Clone)] -enum Message { - UpdateText(String), -} - -impl State { - fn update(&mut self, message: Message) { - match message { - Message::UpdateText(name) => self.name = name, - }; - } - - fn view(&self) -> Element<'_, Message> { - center( - column![ - text!("Hello {}", &self.name), - text_input("Type your name here...", &self.name) - .on_input(Message::UpdateText) - ] - .spacing(10) - .align_x(Center), - ) - .into() - } -} diff --git a/examples/name/Cargo.toml b/examples/name/Cargo.toml new file mode 100644 index 0000000..23c3b58 --- /dev/null +++ b/examples/name/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "name" +version = "0.0.0" +edition = "2024" + +[dependencies] +iced.workspace = true +iced_selection = { path = "../.." } diff --git a/examples/name/src/main.rs b/examples/name/src/main.rs new file mode 100644 index 0000000..2a733d5 --- /dev/null +++ b/examples/name/src/main.rs @@ -0,0 +1,38 @@ +use iced::widget::{center, column, text_input}; +use iced::{Center, Element}; +use iced_selection::text; + +fn main() -> iced::Result { + iced::run(State::update, State::view) +} + +#[derive(Default)] +struct State { + name: String, +} + +#[derive(Debug, Clone)] +enum Message { + UpdateText(String), +} + +impl State { + fn update(&mut self, message: Message) { + match message { + Message::UpdateText(name) => self.name = name, + }; + } + + fn view(&self) -> Element<'_, Message> { + center( + column![ + text!("Hello {}", &self.name), + text_input("Type your name here...", &self.name) + .on_input(Message::UpdateText) + ] + .spacing(10) + .align_x(Center), + ) + .into() + } +} diff --git a/examples/rich/Cargo.toml b/examples/rich/Cargo.toml new file mode 100644 index 0000000..a016a5e --- /dev/null +++ b/examples/rich/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "rich" +version = "0.0.0" +edition = "2024" + +[dependencies] +iced.workspace = true +iced_selection = { path = "../.." } +open.workspace = true diff --git a/examples/rich/src/main.rs b/examples/rich/src/main.rs new file mode 100644 index 0000000..6c47e0f --- /dev/null +++ b/examples/rich/src/main.rs @@ -0,0 +1,62 @@ +use iced::widget::{center, column, responsive}; +use iced::{Center, Element, color}; +use iced_selection::{rich_text, span}; + +fn main() -> iced::Result { + iced::run(State::update, State::view) +} + +#[derive(Default)] +struct State { + link: Option, +} + +#[derive(Debug, Clone)] +enum Message { + LinkClicked(String), +} + +impl State { + fn update(&mut self, message: Message) { + match message { + Message::LinkClicked(link) => { + let _ = open::that(&link); + self.link = Some(link); + } + }; + } + + fn view(&self) -> Element<'_, Message> { + responsive(|size| { + center( + 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"), + "." + ] + .on_link_click(Message::LinkClicked), + self.link.as_deref().map(|link| rich_text![ + "Last clicked link: ", + span(link).color(color!(0x2b79a2)).link(link) + ] + .on_link_click(Message::LinkClicked)) + ] + .spacing(10) + .align_x(Center) + .max_width(size.width * 0.8), + ) + .into() + }) + .into() + } +} -- cgit v1.2.3