Skip to content

Commit 8f604c2

Browse files
authored
Update iced to new styling API (#180)
1 parent 86927c9 commit 8f604c2

File tree

28 files changed

+433
-510
lines changed

28 files changed

+433
-510
lines changed

Cargo.lock

+41-61
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+10-6
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,13 @@ piano-math = { path = "./piano-math" }
3131

3232
profiling = "1.0"
3333

34-
iced_style = "0.12"
35-
iced_graphics = "0.12"
36-
iced_core = "0.12"
37-
iced_runtime = "0.12"
38-
iced_wgpu = { version = "0.12", features = ["image"] }
39-
iced_widget = { version = "0.12", features = ["image"] }
34+
iced_graphics = { git = "https://github.com/iced-rs/iced.git", rev = "e2b00f98a0fab96da6502610b135a4c86fbd63b5" }
35+
iced_core = { git = "https://github.com/iced-rs/iced.git", rev = "e2b00f98a0fab96da6502610b135a4c86fbd63b5" }
36+
iced_runtime = { git = "https://github.com/iced-rs/iced.git", rev = "e2b00f98a0fab96da6502610b135a4c86fbd63b5" }
37+
iced_renderer = { git = "https://github.com/iced-rs/iced.git", rev = "e2b00f98a0fab96da6502610b135a4c86fbd63b5" }
38+
iced_wgpu = { git = "https://github.com/iced-rs/iced.git", rev = "e2b00f98a0fab96da6502610b135a4c86fbd63b5", features = [
39+
"image",
40+
] }
41+
iced_widget = { git = "https://github.com/iced-rs/iced.git", rev = "e2b00f98a0fab96da6502610b135a4c86fbd63b5", features = [
42+
"image",
43+
] }

neothesia-iced-widgets/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ version = "0.1.0"
44
edition = "2021"
55

66
[dependencies]
7-
iced_style.workspace = true
87
iced_graphics.workspace = true
98
iced_core.workspace = true
109
iced_wgpu.workspace = true

neothesia-iced-widgets/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ pub use track_card::TrackCard;
1717
pub use wrap::Wrap;
1818

1919
type Renderer = iced_wgpu::Renderer;
20-
pub type Element<'a, M> = iced_core::Element<'a, M, iced_style::Theme, iced_wgpu::Renderer>;
20+
pub type Element<'a, M> = iced_core::Element<'a, M, iced_core::Theme, iced_wgpu::Renderer>;

neothesia-iced-widgets/src/neo_btn.rs

+29-29
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@ use iced_core::{
66
renderer::Style,
77
widget::{tree, Tree},
88
Background, Border, Clipboard, Color, Element, Event, Layout, Length, Padding, Rectangle,
9-
Shell, Size, Widget,
9+
Shell, Size, Theme, Widget,
1010
};
11-
use iced_graphics::Primitive;
12-
use iced_style::Theme;
1311
use iced_widget::text;
1412

1513
pub struct NeoBtn<'a, Message> {
@@ -25,7 +23,7 @@ pub struct NeoBtn<'a, Message> {
2523
}
2624

2725
impl<'a, Message: Clone> NeoBtn<'a, Message> {
28-
pub fn new_with_label(label: &str) -> Self {
26+
pub fn new_with_label(label: &'a str) -> Self {
2927
Self::new(
3028
text(label)
3129
.size(30)
@@ -201,7 +199,7 @@ impl<'a, Message: Clone> Widget<Message, Theme, Renderer> for NeoBtn<'a, Message
201199
&self,
202200
tree: &Tree,
203201
renderer: &mut Renderer,
204-
theme: &iced_style::Theme,
202+
theme: &Theme,
205203
_style: &Style,
206204
layout: Layout<'_>,
207205
cursor: mouse::Cursor,
@@ -226,42 +224,44 @@ impl<'a, Message: Clone> Widget<Message, Theme, Renderer> for NeoBtn<'a, Message
226224
)
227225
};
228226

229-
let bg = Primitive::Quad {
230-
bounds: Rectangle {
231-
y: bounds.y,
232-
..bounds
233-
},
234-
background: Background::Color(colors.0),
235-
border: Border {
236-
radius: Radius::from(self.border_radius),
237-
width: 0.0,
238-
color: Color::TRANSPARENT,
227+
use iced_core::renderer::Renderer;
228+
renderer.fill_quad(
229+
iced_core::renderer::Quad {
230+
bounds: Rectangle {
231+
y: bounds.y,
232+
..bounds
233+
},
234+
border: Border {
235+
radius: Radius::from(self.border_radius),
236+
width: 0.0,
237+
color: Color::TRANSPARENT,
238+
},
239+
shadow: iced_core::Shadow::default(),
239240
},
240-
shadow: iced_core::Shadow::default(),
241-
};
242-
renderer.draw_primitive(bg);
241+
Background::Color(colors.0),
242+
);
243243

244-
let btn_bar = Primitive::Clip {
245-
bounds: Rectangle {
246-
y: bounds.y + bounds.height - self.border_radius,
247-
height: self.border_radius,
248-
..bounds
249-
},
250-
content: Box::new(Primitive::Quad {
244+
renderer.start_layer(Rectangle {
245+
y: bounds.y + bounds.height - self.border_radius,
246+
height: self.border_radius,
247+
..bounds
248+
});
249+
renderer.fill_quad(
250+
iced_core::renderer::Quad {
251251
bounds: Rectangle {
252252
y: bounds.y,
253253
..bounds
254254
},
255-
background: Background::Color(colors.1),
256255
border: Border {
257256
radius: Radius::from(self.border_radius),
258257
width: 0.0,
259258
color: Color::TRANSPARENT,
260259
},
261260
shadow: iced_core::Shadow::default(),
262-
}),
263-
};
264-
renderer.draw_primitive(btn_bar);
261+
},
262+
Background::Color(colors.1),
263+
);
264+
renderer.end_layer();
265265

266266
if is_mouse_over {
267267
mouse::Interaction::Pointer

neothesia-iced-widgets/src/piano_range.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
use iced_core::{
22
border::{Border, Radius},
33
renderer::Quad,
4-
Background, Color, Length, Rectangle, Size, Vector, Widget,
4+
Background, Color, Length, Rectangle, Size, Theme, Vector, Widget,
55
};
6-
use iced_style::Theme;
76

87
use super::Element;
98

0 commit comments

Comments
 (0)