diff options
author | 2021-04-21 17:52:31 -0300 | |
---|---|---|
committer | 2021-06-25 14:14:03 +0200 | |
commit | 9ae22b58d843d9a39212028478598c19a49bc2e6 (patch) | |
tree | eb470591af6a050632a93db8fbab9cfc3b805de8 /examples/url_handler | |
parent | d2c8a3e04b02a1fcf54504bcbd41c488a8bba88a (diff) | |
download | iced-9ae22b58d843d9a39212028478598c19a49bc2e6.tar.gz iced-9ae22b58d843d9a39212028478598c19a49bc2e6.tar.bz2 iced-9ae22b58d843d9a39212028478598c19a49bc2e6.zip |
Added events for url handling and create example
Diffstat (limited to 'examples/url_handler')
-rw-r--r-- | examples/url_handler/Cargo.toml | 12 | ||||
-rw-r--r-- | examples/url_handler/src/main.rs | 67 |
2 files changed, 79 insertions, 0 deletions
diff --git a/examples/url_handler/Cargo.toml b/examples/url_handler/Cargo.toml new file mode 100644 index 00000000..595bdac0 --- /dev/null +++ b/examples/url_handler/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "url_handler" +version = "0.1.0" +authors = ["Héctor Ramón Jiménez <hector0193@gmail.com>"] +edition = "2018" +publish = false + +[dependencies] +iced = { path = "../.." } +iced_native = { path = "../../native" } +syslog="4.0" +log="0.4"
\ No newline at end of file diff --git a/examples/url_handler/src/main.rs b/examples/url_handler/src/main.rs new file mode 100644 index 00000000..56d81031 --- /dev/null +++ b/examples/url_handler/src/main.rs @@ -0,0 +1,67 @@ +use iced::{ + executor, Application, Command, Clipboard, + Container, Element, Length, Settings, Subscription, Text, +}; +use iced_native::Event; + +pub fn main() -> iced::Result { + App::run(Settings::default()) +} + +#[derive(Debug, Default)] +struct App { + url: Option<String>, +} + +#[derive(Debug, Clone)] +enum Message { + EventOccurred(iced_native::Event), +} + +impl Application for App { + type Executor = executor::Default; + type Message = Message; + type Flags = (); + + fn new(_flags: ()) -> (App, Command<Message>) { + (App::default(), Command::none()) + } + + fn title(&self) -> String { + String::from("Url - Iced") + } + + fn update( + &mut self, + message: Message, + _clipboard: &mut Clipboard, + ) -> Command<Message> { + match message { + Message::EventOccurred(event) => { + if let Event::UrlReceived(url) = event{ + self.url = Some(url); + } + } + }; + + Command::none() + } + + fn subscription(&self) -> Subscription<Message> { + iced_native::subscription::events().map(Message::EventOccurred) + } + + fn view(&mut self) -> Element<Message> { + let content = match &self.url{ + Some(url) => Text::new(format!("{}", url)), + None => Text::new("No URL received yet!") + }; + + Container::new(content.size(48)) + .width(Length::Fill) + .height(Length::Fill) + .center_x() + .center_y() + .into() + } +} |