summaryrefslogtreecommitdiffstats
path: root/virtual
diff options
context:
space:
mode:
Diffstat (limited to 'virtual')
-rw-r--r--virtual/src/lib.rs4
-rw-r--r--virtual/src/widget/button.rs4
-rw-r--r--virtual/src/widget/column.rs11
-rw-r--r--virtual/src/widget/text.rs9
4 files changed, 24 insertions, 4 deletions
diff --git a/virtual/src/lib.rs b/virtual/src/lib.rs
index bab0da15..8ba4c328 100644
--- a/virtual/src/lib.rs
+++ b/virtual/src/lib.rs
@@ -21,9 +21,9 @@ where
{
pub fn new(
state: &'a mut State<Message, Renderer>,
- content: Element<Message, Renderer>,
+ content: impl Into<Element<Message, Renderer>>,
) -> Self {
- let _ = state.diff(content);
+ let _ = state.diff(content.into());
Self { state }
}
diff --git a/virtual/src/widget/button.rs b/virtual/src/widget/button.rs
index 534dd13a..ece90811 100644
--- a/virtual/src/widget/button.rs
+++ b/virtual/src/widget/button.rs
@@ -23,9 +23,9 @@ pub struct Button<Message, Renderer> {
}
impl<Message, Renderer> Button<Message, Renderer> {
- pub fn new(content: impl Widget<Message, Renderer> + 'static) -> Self {
+ pub fn new(content: impl Into<Element<Message, Renderer>>) -> Self {
Button {
- content: Element::new(content),
+ content: content.into(),
on_press: None,
style_sheet: Default::default(),
width: Length::Shrink,
diff --git a/virtual/src/widget/column.rs b/virtual/src/widget/column.rs
index e7649bc1..2f70282a 100644
--- a/virtual/src/widget/column.rs
+++ b/virtual/src/widget/column.rs
@@ -207,3 +207,14 @@ where
}
}
}
+
+impl<Message, Renderer> Into<Element<Message, Renderer>>
+ for Column<Message, Renderer>
+where
+ Message: 'static,
+ Renderer: iced_native::Renderer + 'static,
+{
+ fn into(self) -> Element<Message, Renderer> {
+ Element::new(self)
+ }
+}
diff --git a/virtual/src/widget/text.rs b/virtual/src/widget/text.rs
index 91da7e99..e3a7d299 100644
--- a/virtual/src/widget/text.rs
+++ b/virtual/src/widget/text.rs
@@ -174,3 +174,12 @@ where
Element::new(self)
}
}
+
+impl<Message, Renderer> Into<Element<Message, Renderer>> for &'static str
+where
+ Renderer: text::Renderer + 'static,
+{
+ fn into(self) -> Element<Message, Renderer> {
+ Text::new(self).into()
+ }
+}