summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/color_palette/src/main.rs6
-rw-r--r--examples/combo_box/src/main.rs1
-rw-r--r--examples/custom_quad/src/main.rs1
-rw-r--r--examples/custom_widget/src/main.rs1
-rw-r--r--examples/game_of_life/src/main.rs2
-rw-r--r--examples/geometry/src/main.rs1
-rw-r--r--examples/integration/src/main.rs13
-rw-r--r--examples/loading_spinners/src/circular.rs1
-rw-r--r--examples/loading_spinners/src/linear.rs1
-rw-r--r--examples/modal/src/main.rs15
-rw-r--r--examples/toast/src/main.rs10
-rw-r--r--examples/todos/Cargo.toml5
-rw-r--r--examples/todos/src/main.rs25
-rw-r--r--examples/tour/src/main.rs4
14 files changed, 58 insertions, 28 deletions
diff --git a/examples/color_palette/src/main.rs b/examples/color_palette/src/main.rs
index 736a9d53..7dc981d9 100644
--- a/examples/color_palette/src/main.rs
+++ b/examples/color_palette/src/main.rs
@@ -3,8 +3,8 @@ use iced::mouse;
use iced::widget::canvas::{self, Canvas, Frame, Geometry, Path};
use iced::widget::{column, row, text, Slider};
use iced::{
- Color, Element, Length, Point, Rectangle, Renderer, Sandbox, Settings,
- Size, Vector,
+ Color, Element, Length, Pixels, Point, Rectangle, Renderer, Sandbox,
+ Settings, Size, Vector,
};
use palette::{
self, convert::FromColor, rgb::Rgb, Darken, Hsl, Lighten, ShiftHue,
@@ -168,7 +168,7 @@ impl Theme {
let mut text = canvas::Text {
horizontal_alignment: alignment::Horizontal::Center,
vertical_alignment: alignment::Vertical::Top,
- size: 15.0,
+ size: Pixels(15.0),
..canvas::Text::default()
};
diff --git a/examples/combo_box/src/main.rs b/examples/combo_box/src/main.rs
index 2e6f95d5..4f347667 100644
--- a/examples/combo_box/src/main.rs
+++ b/examples/combo_box/src/main.rs
@@ -40,7 +40,6 @@ impl Sandbox for Example {
Message::Selected(language) => {
self.selected_language = Some(language);
self.text = language.hello().to_string();
- self.languages.unfocus();
}
Message::OptionHovered(language) => {
self.text = language.hello().to_string();
diff --git a/examples/custom_quad/src/main.rs b/examples/custom_quad/src/main.rs
index 4b300116..13b08250 100644
--- a/examples/custom_quad/src/main.rs
+++ b/examples/custom_quad/src/main.rs
@@ -36,6 +36,7 @@ mod quad {
fn layout(
&self,
+ _tree: &mut widget::Tree,
_renderer: &Renderer,
_limits: &layout::Limits,
) -> layout::Node {
diff --git a/examples/custom_widget/src/main.rs b/examples/custom_widget/src/main.rs
index 713bc62d..32a14cbe 100644
--- a/examples/custom_widget/src/main.rs
+++ b/examples/custom_widget/src/main.rs
@@ -43,6 +43,7 @@ mod circle {
fn layout(
&self,
+ _tree: &mut widget::Tree,
_renderer: &Renderer,
_limits: &layout::Limits,
) -> layout::Node {
diff --git a/examples/game_of_life/src/main.rs b/examples/game_of_life/src/main.rs
index 39c1609d..e451cb06 100644
--- a/examples/game_of_life/src/main.rs
+++ b/examples/game_of_life/src/main.rs
@@ -591,7 +591,7 @@ mod grid {
let text = Text {
color: Color::WHITE,
- size: 14.0,
+ size: 14.0.into(),
position: Point::new(frame.width(), frame.height()),
horizontal_alignment: alignment::Horizontal::Right,
vertical_alignment: alignment::Vertical::Bottom,
diff --git a/examples/geometry/src/main.rs b/examples/geometry/src/main.rs
index 3bc7f46b..8ab3b493 100644
--- a/examples/geometry/src/main.rs
+++ b/examples/geometry/src/main.rs
@@ -26,6 +26,7 @@ mod rainbow {
fn layout(
&self,
+ _tree: &mut widget::Tree,
_renderer: &Renderer,
limits: &layout::Limits,
) -> layout::Node {
diff --git a/examples/integration/src/main.rs b/examples/integration/src/main.rs
index d0b2d891..7945bd20 100644
--- a/examples/integration/src/main.rs
+++ b/examples/integration/src/main.rs
@@ -8,7 +8,7 @@ use iced_wgpu::graphics::Viewport;
use iced_wgpu::{wgpu, Backend, Renderer, Settings};
use iced_winit::core::mouse;
use iced_winit::core::renderer;
-use iced_winit::core::{Color, Size};
+use iced_winit::core::{Color, Font, Pixels, Size};
use iced_winit::runtime::program;
use iced_winit::runtime::Debug;
use iced_winit::style::Theme;
@@ -142,12 +142,11 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize iced
let mut debug = Debug::new();
- let mut renderer = Renderer::new(Backend::new(
- &device,
- &queue,
- Settings::default(),
- format,
- ));
+ let mut renderer = Renderer::new(
+ Backend::new(&device, &queue, Settings::default(), format),
+ Font::default(),
+ Pixels(16.0),
+ );
let mut state = program::State::new(
controls,
diff --git a/examples/loading_spinners/src/circular.rs b/examples/loading_spinners/src/circular.rs
index 3898d76e..bf01c3b4 100644
--- a/examples/loading_spinners/src/circular.rs
+++ b/examples/loading_spinners/src/circular.rs
@@ -254,6 +254,7 @@ where
fn layout(
&self,
+ _tree: &mut Tree,
_renderer: &iced::Renderer<Theme>,
limits: &layout::Limits,
) -> layout::Node {
diff --git a/examples/loading_spinners/src/linear.rs b/examples/loading_spinners/src/linear.rs
index 20fbe9f3..c5bb4791 100644
--- a/examples/loading_spinners/src/linear.rs
+++ b/examples/loading_spinners/src/linear.rs
@@ -175,6 +175,7 @@ where
fn layout(
&self,
+ _tree: &mut Tree,
_renderer: &Renderer,
limits: &layout::Limits,
) -> layout::Node {
diff --git a/examples/modal/src/main.rs b/examples/modal/src/main.rs
index 4aa70886..c050d3cc 100644
--- a/examples/modal/src/main.rs
+++ b/examples/modal/src/main.rs
@@ -287,10 +287,15 @@ mod modal {
fn layout(
&self,
+ tree: &mut widget::Tree,
renderer: &Renderer,
limits: &layout::Limits,
) -> layout::Node {
- self.base.as_widget().layout(renderer, limits)
+ self.base.as_widget().layout(
+ &mut tree.children[0],
+ renderer,
+ limits,
+ )
}
fn on_event(
@@ -401,7 +406,7 @@ mod modal {
Message: Clone,
{
fn layout(
- &self,
+ &mut self,
renderer: &Renderer,
_bounds: Size,
position: Point,
@@ -410,7 +415,11 @@ mod modal {
.width(Length::Fill)
.height(Length::Fill);
- let mut child = self.content.as_widget().layout(renderer, &limits);
+ let mut child = self
+ .content
+ .as_widget()
+ .layout(self.tree, renderer, &limits);
+
child.align(Alignment::Center, Alignment::Center, limits.max());
let mut node = layout::Node::with_children(self.size, vec![child]);
diff --git a/examples/toast/src/main.rs b/examples/toast/src/main.rs
index 47b272a9..8570a38e 100644
--- a/examples/toast/src/main.rs
+++ b/examples/toast/src/main.rs
@@ -328,10 +328,15 @@ mod toast {
fn layout(
&self,
+ tree: &mut Tree,
renderer: &Renderer,
limits: &layout::Limits,
) -> layout::Node {
- self.content.as_widget().layout(renderer, limits)
+ self.content.as_widget().layout(
+ &mut tree.children[0],
+ renderer,
+ limits,
+ )
}
fn tag(&self) -> widget::tree::Tag {
@@ -502,7 +507,7 @@ mod toast {
for Overlay<'a, 'b, Message>
{
fn layout(
- &self,
+ &mut self,
renderer: &Renderer,
bounds: Size,
position: Point,
@@ -519,6 +524,7 @@ mod toast {
10.0,
Alignment::End,
self.toasts,
+ self.state,
)
.translate(Vector::new(position.x, position.y))
}
diff --git a/examples/todos/Cargo.toml b/examples/todos/Cargo.toml
index 3334d84f..3c62bfbc 100644
--- a/examples/todos/Cargo.toml
+++ b/examples/todos/Cargo.toml
@@ -9,18 +9,21 @@ publish = false
iced.workspace = true
iced.features = ["async-std", "debug"]
+once_cell.workspace = true
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
-once_cell.workspace = true
+uuid = { version = "1.0", features = ["v4", "fast-rng", "serde"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
async-std.workspace = true
directories-next = "2.0"
+tracing-subscriber = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies]
iced.workspace = true
iced.features = ["debug", "webgl"]
+uuid = { version = "1.0", features = ["js"] }
web-sys = { workspace = true, features = ["Window", "Storage"] }
wasm-timer.workspace = true
diff --git a/examples/todos/src/main.rs b/examples/todos/src/main.rs
index 62c17926..501bf67e 100644
--- a/examples/todos/src/main.rs
+++ b/examples/todos/src/main.rs
@@ -3,8 +3,8 @@ use iced::font::{self, Font};
use iced::keyboard;
use iced::theme::{self, Theme};
use iced::widget::{
- self, button, checkbox, column, container, row, scrollable, text,
- text_input, Text,
+ self, button, checkbox, column, container, keyed_column, row, scrollable,
+ text, text_input, Text,
};
use iced::window;
use iced::{Application, Element};
@@ -12,10 +12,14 @@ use iced::{Color, Command, Length, Settings, Subscription};
use once_cell::sync::Lazy;
use serde::{Deserialize, Serialize};
+use uuid::Uuid;
static INPUT_ID: Lazy<text_input::Id> = Lazy::new(text_input::Id::unique);
pub fn main() -> iced::Result {
+ #[cfg(not(target_arch = "wasm32"))]
+ tracing_subscriber::fmt::init();
+
Todos::run(Settings {
window: window::Settings {
size: (500, 800),
@@ -220,17 +224,19 @@ impl Application for Todos {
tasks.iter().filter(|task| filter.matches(task));
let tasks: Element<_> = if filtered_tasks.count() > 0 {
- column(
+ keyed_column(
tasks
.iter()
.enumerate()
.filter(|(_, task)| filter.matches(task))
.map(|(i, task)| {
- task.view(i).map(move |message| {
- Message::TaskMessage(i, message)
- })
- })
- .collect(),
+ (
+ task.id,
+ task.view(i).map(move |message| {
+ Message::TaskMessage(i, message)
+ }),
+ )
+ }),
)
.spacing(10)
.into()
@@ -279,6 +285,8 @@ impl Application for Todos {
#[derive(Debug, Clone, Serialize, Deserialize)]
struct Task {
+ #[serde(default = "Uuid::new_v4")]
+ id: Uuid,
description: String,
completed: bool,
@@ -314,6 +322,7 @@ impl Task {
fn new(description: String) -> Self {
Task {
+ id: Uuid::new_v4(),
description,
completed: false,
state: TaskState::Idle,
diff --git a/examples/tour/src/main.rs b/examples/tour/src/main.rs
index 3387b481..3e3a8ad7 100644
--- a/examples/tour/src/main.rs
+++ b/examples/tour/src/main.rs
@@ -5,7 +5,7 @@ use iced::widget::{
scrollable, slider, text, text_input, toggler, vertical_space,
};
use iced::widget::{Button, Column, Container, Slider};
-use iced::{Color, Element, Font, Length, Renderer, Sandbox, Settings};
+use iced::{Color, Element, Font, Length, Pixels, Renderer, Sandbox, Settings};
pub fn main() -> iced::Result {
#[cfg(target_arch = "wasm32")]
@@ -578,7 +578,7 @@ impl<'a> Step {
text_input = text_input.icon(text_input::Icon {
font: Font::default(),
code_point: '🚀',
- size: Some(28.0),
+ size: Some(Pixels(28.0)),
spacing: 10.0,
side: text_input::Side::Right,
});