diff options
Diffstat (limited to 'virtual')
-rw-r--r-- | virtual/src/lib.rs | 4 | ||||
-rw-r--r-- | virtual/src/widget/button.rs | 4 | ||||
-rw-r--r-- | virtual/src/widget/column.rs | 11 | ||||
-rw-r--r-- | virtual/src/widget/text.rs | 9 |
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() + } +} |