Draft first-class Theme support

RFC: https://github.com/iced-rs/rfcs/pull/6
This commit is contained in:
Héctor Ramón Jiménez 2022-05-14 01:47:55 +02:00
parent 5de337f214
commit 664251f3f5
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
113 changed files with 767 additions and 878 deletions

View file

@ -206,13 +206,21 @@ where
fn draw(
&self,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
) {
self.with_element(|element| {
element.draw(renderer, style, layout, cursor_position, viewport);
element.draw(
renderer,
theme,
style,
layout,
cursor_position,
viewport,
);
});
}
@ -337,12 +345,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
self.with_overlay_maybe(|overlay| {
overlay.draw(renderer, style, layout, cursor_position);
overlay.draw(renderer, theme, style, layout, cursor_position);
});
}

View file

@ -233,6 +233,7 @@ where
&self,
tree: &Tree,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
@ -242,6 +243,7 @@ where
element.as_widget().draw(
&tree.children[0],
renderer,
theme,
style,
layout,
cursor_position,
@ -376,12 +378,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
self.with_overlay_maybe(|overlay| {
overlay.draw(renderer, style, layout, cursor_position);
overlay.draw(renderer, theme, style, layout, cursor_position);
});
}

View file

@ -53,7 +53,10 @@ struct Content<'a, Message, Renderer> {
element: Element<'a, Message, Renderer>,
}
impl<'a, Message, Renderer> Content<'a, Message, Renderer> {
impl<'a, Message, Renderer> Content<'a, Message, Renderer>
where
Renderer: iced_native::Renderer,
{
fn update(
&mut self,
tree: &mut Tree,
@ -174,6 +177,7 @@ where
&self,
tree: &Tree,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
@ -191,6 +195,7 @@ where
element.as_widget().draw(
tree,
renderer,
theme,
style,
layout,
cursor_position,
@ -331,12 +336,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
self.with_overlay_maybe(|overlay| {
overlay.draw(renderer, style, layout, cursor_position);
overlay.draw(renderer, theme, style, layout, cursor_position);
});
}

View file

@ -119,6 +119,7 @@ where
fn draw(
&self,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
@ -129,6 +130,7 @@ where
internal.resolve(renderer, |state, renderer, content| {
content.draw(
renderer,
theme,
style,
state.layout(layout),
cursor_position,
@ -356,12 +358,13 @@ where
fn draw(
&self,
renderer: &mut Renderer,
theme: &Renderer::Theme,
style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
) {
self.with_overlay_maybe(|overlay| {
overlay.draw(renderer, style, layout, cursor_position);
overlay.draw(renderer, theme, style, layout, cursor_position);
});
}