Make iced_core::Button customizable
Now it supports: - Any kind of content - Custom border radius - Custom background
This commit is contained in:
parent
a0234d5bce
commit
10e10e5e06
35 changed files with 288 additions and 160 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue