summaryrefslogtreecommitdiffstats
path: root/wgpu/src/renderer/button.rs
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/renderer/button.rs')
-rw-r--r--wgpu/src/renderer/button.rs38
1 files changed, 30 insertions, 8 deletions
diff --git a/wgpu/src/renderer/button.rs b/wgpu/src/renderer/button.rs
index 24bc1de6..b9dfb9ac 100644
--- a/wgpu/src/renderer/button.rs
+++ b/wgpu/src/renderer/button.rs
@@ -1,18 +1,40 @@
-use crate::{Primitive, Renderer};
-use iced_native::{button, Button, Layout, Node, Point, Style};
+use crate::{Background, Primitive, Renderer};
+use iced_native::{button, Button, Color, Layout, Length, Node, Point, Style};
impl button::Renderer for Renderer {
- fn node<Message>(&self, _button: &Button<Message>) -> Node {
- Node::new(Style::default())
+ fn node<Message>(&self, button: &Button<Message>) -> Node {
+ let style = Style::default()
+ .width(button.width)
+ .min_height(Length::Units(30))
+ .min_width(Length::Units(100))
+ .align_self(button.align_self);
+
+ Node::new(style)
}
fn draw<Message>(
&mut self,
- _button: &Button<Message>,
- _layout: Layout<'_>,
+ button: &Button<Message>,
+ layout: Layout<'_>,
_cursor_position: Point,
) -> Self::Primitive {
- // TODO
- Primitive::None
+ Primitive::Group {
+ primitives: vec![
+ Primitive::Box {
+ bounds: layout.bounds(),
+ background: Background::Color(Color {
+ r: 0.0,
+ b: 1.0,
+ g: 0.0,
+ a: 1.0,
+ }),
+ },
+ Primitive::Text {
+ content: button.label.clone(),
+ size: 20.0,
+ bounds: layout.bounds(),
+ },
+ ],
+ }
}
}