summaryrefslogtreecommitdiffstats
path: root/examples/url_handler
diff options
context:
space:
mode:
authorLibravatar Richard <richardsoncusto@gmail.com>2021-04-21 17:52:31 -0300
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-06-25 14:14:03 +0200
commit9ae22b58d843d9a39212028478598c19a49bc2e6 (patch)
treeeb470591af6a050632a93db8fbab9cfc3b805de8 /examples/url_handler
parentd2c8a3e04b02a1fcf54504bcbd41c488a8bba88a (diff)
downloadiced-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.toml12
-rw-r--r--examples/url_handler/src/main.rs67
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()
+ }
+}