summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-08 03:13:41 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-08 03:13:41 +0200
commit10e10e5e06841574425d2633f1c2916733f7b4ff (patch)
tree0407a0136973a201fe44bfc1a94268544a2f8eb5 /web
parenta0234d5bcea5b25f575af01d3a8e0296b2d0395c (diff)
downloadiced-10e10e5e06841574425d2633f1c2916733f7b4ff.tar.gz
iced-10e10e5e06841574425d2633f1c2916733f7b4ff.tar.bz2
iced-10e10e5e06841574425d2633f1c2916733f7b4ff.zip
Make `iced_core::Button` customizable
Now it supports: - Any kind of content - Custom border radius - Custom background
Diffstat (limited to 'web')
-rw-r--r--web/src/element.rs8
-rw-r--r--web/src/widget/button.rs10
2 files changed, 14 insertions, 4 deletions
diff --git a/web/src/element.rs b/web/src/element.rs
index 8270d8db..a2b78c69 100644
--- a/web/src/element.rs
+++ b/web/src/element.rs
@@ -14,6 +14,14 @@ impl<'a, Message> Element<'a, Message> {
}
}
+ pub fn node<'b>(
+ &self,
+ bump: &'b bumpalo::Bump,
+ bus: &Bus<Message>,
+ ) -> dodrio::Node<'b> {
+ self.widget.node(bump, bus)
+ }
+
pub fn explain(self, _color: Color) -> Element<'a, Message> {
self
}
diff --git a/web/src/widget/button.rs b/web/src/widget/button.rs
index 23a4165a..257034a7 100644
--- a/web/src/widget/button.rs
+++ b/web/src/widget/button.rs
@@ -2,7 +2,10 @@ use crate::{Bus, Element, Widget};
use dodrio::bumpalo;
-pub use iced_core::button::*;
+pub use iced_core::button::State;
+
+pub type Button<'a, Message> =
+ iced_core::Button<'a, Message, Element<'a, Message>>;
impl<'a, Message> Widget<Message> for Button<'a, Message>
where
@@ -15,9 +18,8 @@ where
) -> dodrio::Node<'b> {
use dodrio::builder::*;
- let label = bumpalo::format!(in bump, "{}", self.label);
-
- let mut node = button(bump).children(vec![text(label.into_bump_str())]);
+ let mut node =
+ button(bump).children(vec![self.content.node(bump, bus)]);
if let Some(on_press) = self.on_press {
let event_bus = bus.clone();