diff options
Diffstat (limited to 'web/src')
| -rw-r--r-- | web/src/element.rs | 8 | ||||
| -rw-r--r-- | web/src/widget/button.rs | 10 | 
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();  | 
