diff options
author | 2019-11-14 06:46:50 +0100 | |
---|---|---|
committer | 2019-11-14 06:46:50 +0100 | |
commit | bc8d347736ec997ec0e0c401289e2bc09e212b8a (patch) | |
tree | b98798c09a3aa914b7d0869fba0cfd3efff7754f /wgpu/src/renderer/widget/button.rs | |
parent | 839e039dbf2fb89dcb8c141503740777d2af2eb3 (diff) | |
parent | 73f3c900071f950ea914652ca3f0002c1e173f61 (diff) | |
download | iced-bc8d347736ec997ec0e0c401289e2bc09e212b8a.tar.gz iced-bc8d347736ec997ec0e0c401289e2bc09e212b8a.tar.bz2 iced-bc8d347736ec997ec0e0c401289e2bc09e212b8a.zip |
Merge pull request #52 from hecrj/custom-layout-engine
Custom layout engine
Diffstat (limited to 'wgpu/src/renderer/widget/button.rs')
-rw-r--r-- | wgpu/src/renderer/widget/button.rs | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/wgpu/src/renderer/widget/button.rs b/wgpu/src/renderer/widget/button.rs index 0ac1c0a6..3d5e42ba 100644 --- a/wgpu/src/renderer/widget/button.rs +++ b/wgpu/src/renderer/widget/button.rs @@ -1,19 +1,30 @@ use crate::{Primitive, Renderer}; use iced_native::{ - button, Align, Background, Button, Layout, Length, MouseCursor, - Node, Point, Rectangle, Style, + button, layout, Background, Button, Layout, Length, MouseCursor, Point, + Rectangle, }; impl button::Renderer for Renderer { - fn node<Message>(&self, button: &Button<Message, Self>) -> Node { - let style = Style::default() + fn layout<Message>( + &self, + button: &Button<Message, Self>, + limits: &layout::Limits, + ) -> layout::Node { + let padding = f32::from(button.padding); + let limits = limits + .min_width(100) .width(button.width) - .padding(button.padding) - .min_width(Length::Units(100)) - .align_self(button.align_self) - .align_items(Align::Stretch); + .height(Length::Shrink) + .pad(padding); + + let mut content = button.content.layout(self, &limits); + + content.bounds.x = padding; + content.bounds.y = padding; + + let size = limits.resolve(content.size()).pad(padding); - Node::with_children(style, vec![button.content.node(self)]) + layout::Node::with_children(size, vec![content]) } fn draw<Message>( |