wip: update to use latest iced

This commit is contained in:
Ashley Wulber 2024-01-30 22:14:00 -05:00 committed by Ashley Wulber
parent ca1469a6b2
commit f4ad098647
49 changed files with 956 additions and 854 deletions

View file

@ -15,7 +15,7 @@ pub fn resolve<Message>(
row_spacing: f32,
tree: &mut [Tree],
) -> Node {
let limits = limits.pad(padding);
let limits = limits.shrink(padding);
let mut nodes = Vec::with_capacity(items.len());
@ -51,7 +51,7 @@ pub fn resolve<Message>(
let pos_y = flex_height;
for mut child_node in row_buffer.drain(..) {
child_node.move_to(Point::new(pos_x, pos_y));
child_node = child_node.move_to(Point::new(pos_x, pos_y));
pos_x += row_spacing + child_node.size().width;
nodes.push(child_node);
}
@ -77,7 +77,7 @@ pub fn resolve<Message>(
let pos_y = flex_height;
for mut child_node in row_buffer.drain(..) {
child_node.move_to(Point::new(pos_x, pos_y));
child_node = child_node.move_to(Point::new(pos_x, pos_y));
pos_x += row_spacing + child_node.size().width;
nodes.push(child_node);
}
@ -86,6 +86,6 @@ pub fn resolve<Message>(
flex_width = flex_width.max(current_row_width);
}
let flex_size = limits.resolve(Size::new(flex_width, flex_height));
Node::with_children(flex_size.pad(padding), nodes)
let flex_size = limits.resolve(flex_width, flex_height, Size::new(flex_width, flex_height));
Node::with_children(flex_size.expand(padding), nodes)
}

View file

@ -41,7 +41,9 @@ impl<'a, Message> FlexRow<'a, Message> {
}
}
impl<'a, Message: 'static + Clone> Widget<Message, Renderer> for FlexRow<'a, Message> {
impl<'a, Message: 'static + Clone> Widget<Message, crate::Theme, Renderer>
for FlexRow<'a, Message>
{
fn children(&self) -> Vec<Tree> {
self.children.iter().map(Tree::new).collect()
}
@ -50,12 +52,8 @@ impl<'a, Message: 'static + Clone> Widget<Message, Renderer> for FlexRow<'a, Mes
tree.diff_children(self.children.as_mut_slice());
}
fn width(&self) -> Length {
self.width
}
fn height(&self) -> Length {
Length::Shrink
fn size(&self) -> iced_core::Size<Length> {
iced_core::Size::new(self.width, Length::Shrink)
}
fn layout(
@ -64,10 +62,11 @@ impl<'a, Message: 'static + Clone> Widget<Message, Renderer> for FlexRow<'a, Mes
renderer: &Renderer,
limits: &layout::Limits,
) -> layout::Node {
let size = self.size();
let limits = limits
.max_width(self.max_width)
.width(self.width())
.height(self.height());
.width(size.width)
.height(size.height);
super::layout::resolve(
renderer,
@ -178,7 +177,7 @@ impl<'a, Message: 'static + Clone> Widget<Message, Renderer> for FlexRow<'a, Mes
tree: &'b mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
) -> Option<overlay::Element<'b, Message, Renderer>> {
) -> Option<overlay::Element<'b, Message, crate::Theme, Renderer>> {
overlay::from_children(&mut self.children, tree, layout, renderer)
}