summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2019-11-21 18:01:48 +0100
committerLibravatar GitHub <noreply@github.com>2019-11-21 18:01:48 +0100
commit9712b319bb7a32848001b96bd84977430f14b623 (patch)
treee9a40e89d05b353a8c8b37128b83c19c813f9da6 /examples
parent5adefdf6613bfe0738b573eab1d280fa041f5417 (diff)
parent49349b75d92612e158f78fee84c70b172b4acd0e (diff)
downloadiced-9712b319bb7a32848001b96bd84977430f14b623.tar.gz
iced-9712b319bb7a32848001b96bd84977430f14b623.tar.bz2
iced-9712b319bb7a32848001b96bd84977430f14b623.zip
Merge pull request #64 from hecrj/improvement/update-readmes
Update repository documentation
Diffstat (limited to 'examples')
-rw-r--r--examples/README.md73
-rw-r--r--examples/scroll.rs84
-rw-r--r--examples/tour.html14
-rw-r--r--examples/tour.rs2
4 files changed, 35 insertions, 138 deletions
diff --git a/examples/README.md b/examples/README.md
index 0a06a012..95ec6c5c 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -4,29 +4,17 @@ you want to learn about a specific release, check out [the release list].
[the release list]: https://github.com/hecrj/iced/releases
-
## [Tour](tour.rs)
-A simple UI tour showcasing different widgets that can be built using Iced.
-
-The example can run both on native and web platforms, using the same GUI code!
-
-[![Tour - Iced][gui_gif]][gui_gfycat]
-
-[gui_gif]: https://thumbs.gfycat.com/VeneratedSourAurochs-small.gif
-[gui_gfycat]: https://gfycat.com/veneratedsouraurochs
-On native, the example uses:
- - [`iced_winit`], as a bridge between [`iced_native`] and [`winit`].
- - [`iced_wgpu`], a WIP Iced renderer built on top of [`wgpu`] and supporting
- Vulkan, Metal, D3D11, and D3D12 (OpenGL and WebGL soon!).
+A simple UI tour that can run both on native platforms and the web! It showcases different widgets that can be built using Iced.
-The web version uses [`iced_web`], which is still a work in progress. In
-particular, the styling of elements is not finished yet (text color, alignment,
-sizing, etc).
+The __[`tour`]__ file contains all the code of the example! All the cross-platform GUI is defined in terms of __state__, __messages__, __update logic__ and __view logic__.
-The __[`tour`]__ file contains all the code of the example! All the
-cross-platform GUI is defined in terms of __state__, __messages__,
-__update logic__ and __view logic__.
+<div align="center">
+ <a href="https://gfycat.com/politeadorableiberianmole">
+ <img src="https://thumbs.gfycat.com/PoliteAdorableIberianmole-small.gif">
+ </a>
+</div>
[`tour`]: tour.rs
[`iced_winit`]: ../winit
@@ -36,42 +24,49 @@ __update logic__ and __view logic__.
[`winit`]: https://github.com/rust-windowing/winit
[`wgpu`]: https://github.com/gfx-rs/wgpu-rs
-#### Running the native version
-Use [Cargo](https://doc.rust-lang.org/cargo/reference/manifest.html#examples)
-to run the example:
-
+You can run the native version with `cargo run`:
```
cargo run --example tour
```
-#### Running the web version
-Build using the `wasm32-unknown-unknown` target and use the [`wasm-bindgen`] CLI
-to generate appropriate bindings in a `tour` directory.
+The web version can be run by following [the usage instructions of `iced_web`] or by accessing [iced.rs](https://iced.rs/)!
-```
-cd examples
-cargo build --example tour --target wasm32-unknown-unknown
-wasm-bindgen ../target/wasm32-unknown-unknown/debug/examples/tour.wasm --out-dir tour --web
-```
+[the usage instructions of `iced_web`]: ../web#usage
-Finally, serve the `examples` directory using an HTTP server and access the
-`tour.html` file.
-[`wasm-bindgen`]: https://github.com/rustwasm/wasm-bindgen
+## [Todos](todos.rs)
+
+A simple todos tracker inspired by [TodoMVC]. It showcases dynamic layout, text input, checkboxes, scrollables, icons, and async actions! It automatically saves your tasks in the background, even if you did not finish typing them.
+
+All the example code is located in the __[`todos`]__ file.
+
+<div align="center">
+ <a href="https://gfycat.com/littlesanehalicore">
+ <img src="https://thumbs.gfycat.com/LittleSaneHalicore-small.gif" height="400px">
+ </a>
+</div>
+
+You can run the native version with `cargo run`:
+```
+cargo run --example todos
+```
+We have not yet implemented a `LocalStorage` version of the auto-save feature. Therefore, it does not work on web _yet_!
+[`todos`]: todos.rs
+[TodoMVC]: http://todomvc.com/
## [Coffee]
Since [Iced was born in May], it has been powering the user interfaces in
[Coffee], an experimental 2D game engine.
-If you want to give Iced a try without having to write your own renderer,
-the __[`ui` module]__ in [Coffee] is probably your best choice as of now.
-[![Tour - Coffee][coffee_gui_gif]][coffee_gui_gfycat]
+<div align="center">
+ <a href="https://gfycat.com/gloomyweakhammerheadshark">
+ <img src="https://thumbs.gfycat.com/GloomyWeakHammerheadshark-small.gif">
+ </a>
+</div>
[Iced was born in May]: https://github.com/hecrj/coffee/pull/35
[`ui` module]: https://docs.rs/coffee/0.3.2/coffee/ui/index.html
[Coffee]: https://github.com/hecrj/coffee
-[coffee_gui_gif]: https://thumbs.gfycat.com/GloomyWeakHammerheadshark-small.gif
-[coffee_gui_gfycat]: https://gfycat.com/gloomyweakhammerheadshark
diff --git a/examples/scroll.rs b/examples/scroll.rs
deleted file mode 100644
index 61ad2a53..00000000
--- a/examples/scroll.rs
+++ /dev/null
@@ -1,84 +0,0 @@
-use iced::{
- button, scrollable, Align, Application, Button, Command, Container,
- Element, Image, Length, Scrollable, Text,
-};
-
-pub fn main() {
- env_logger::init();
-
- Example::run()
-}
-
-#[derive(Default)]
-struct Example {
- item_count: u16,
-
- scroll: scrollable::State,
- add_button: button::State,
-}
-
-#[derive(Debug, Clone, Copy)]
-pub enum Message {
- AddItem,
-}
-
-impl Application for Example {
- type Message = Message;
-
- fn new() -> (Example, Command<Message>) {
- (Example::default(), Command::none())
- }
-
- fn title(&self) -> String {
- String::from("Scroll - Iced")
- }
-
- fn update(&mut self, message: Message) -> Command<Message> {
- match message {
- Message::AddItem => {
- self.item_count += 1;
- }
- }
-
- Command::none()
- }
-
- fn view(&mut self) -> Element<Message> {
- let content = (0..self.item_count)
- .fold(
- Scrollable::new(&mut self.scroll)
- .spacing(20)
- .padding(20)
- .align_items(Align::Center),
- |scrollable, i| {
- if i % 2 == 0 {
- scrollable.push(lorem_ipsum().width(Length::Units(600)))
- } else {
- scrollable.push(
- Image::new(format!(
- "{}/examples/resources/ferris.png",
- env!("CARGO_MANIFEST_DIR")
- ))
- .width(Length::Units(400)),
- )
- }
- },
- )
- .push(
- Button::new(&mut self.add_button, Text::new("Add item"))
- .on_press(Message::AddItem)
- .padding(20)
- .border_radius(5),
- );
-
- Container::new(content)
- .width(Length::Fill)
- .height(Length::Fill)
- .center_y()
- .into()
- }
-}
-
-fn lorem_ipsum() -> Text {
- Text::new("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi in dui vel massa blandit interdum. Quisque placerat, odio ut vulputate sagittis, augue est facilisis ex, eget euismod felis magna in sapien. Nullam luctus consequat massa, ac interdum mauris blandit pellentesque. Nullam in est urna. Aliquam tristique lectus ac luctus feugiat. Aenean libero diam, euismod facilisis consequat quis, pellentesque luctus erat. Praesent vel tincidunt elit.")
-}
diff --git a/examples/tour.html b/examples/tour.html
deleted file mode 100644
index 35360e59..00000000
--- a/examples/tour.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
- <title>Tour - Iced</title>
- </head>
- <body>
- <script type="module">
- import init from "./tour/tour.js";
-
- init('./tour/tour_bg.wasm');
- </script>
- </body>
-</html>
diff --git a/examples/tour.rs b/examples/tour.rs
index 6d7a080f..f5bb84d1 100644
--- a/examples/tour.rs
+++ b/examples/tour.rs
@@ -29,7 +29,7 @@ impl Application for Tour {
scroll: scrollable::State::new(),
back_button: button::State::new(),
next_button: button::State::new(),
- debug: true,
+ debug: false,
},
Command::none(),
)