iced_widget/pane_grid/
controls.rs
1use crate::container;
2use crate::core::{self, Element};
3
4#[allow(missing_debug_implementations)]
8pub struct Controls<
9 'a,
10 Message,
11 Theme = crate::Theme,
12 Renderer = crate::Renderer,
13> where
14 Theme: container::Catalog,
15 Renderer: core::Renderer,
16{
17 pub(super) full: Element<'a, Message, Theme, Renderer>,
18 pub(super) compact: Option<Element<'a, Message, Theme, Renderer>>,
19}
20
21impl<'a, Message, Theme, Renderer> Controls<'a, Message, Theme, Renderer>
22where
23 Theme: container::Catalog,
24 Renderer: core::Renderer,
25{
26 pub fn new(
28 content: impl Into<Element<'a, Message, Theme, Renderer>>,
29 ) -> Self {
30 Self {
31 full: content.into(),
32 compact: None,
33 }
34 }
35
36 pub fn dynamic(
40 full: impl Into<Element<'a, Message, Theme, Renderer>>,
41 compact: impl Into<Element<'a, Message, Theme, Renderer>>,
42 ) -> Self {
43 Self {
44 full: full.into(),
45 compact: Some(compact.into()),
46 }
47 }
48}
49
50impl<'a, Message, Theme, Renderer> From<Element<'a, Message, Theme, Renderer>>
51 for Controls<'a, Message, Theme, Renderer>
52where
53 Theme: container::Catalog,
54 Renderer: core::Renderer,
55{
56 fn from(value: Element<'a, Message, Theme, Renderer>) -> Self {
57 Self::new(value)
58 }
59}