livid/
input.rs

1use crate::prelude::{InputExt, WidgetBase, WidgetExt};
2use crate::{enums::*, widget::Widget};
3
4#[derive(Debug, Clone)]
5pub struct Input {
6    inner: Widget,
7}
8
9impl WidgetBase for Input {
10    fn default() -> Self {
11        let inner = Widget::new(WidgetType::Input);
12        Self { inner }
13    }
14
15    unsafe fn from_widget(widget: &Widget) -> Self {
16        Self {
17            inner: widget.clone(),
18        }
19    }
20    fn inner(&self) -> Widget {
21        self.inner.clone()
22    }
23}
24
25impl WidgetExt for Input {}
26
27impl InputExt for Input {}
28
29#[derive(Debug, Clone)]
30pub struct TextArea {
31    inner: Widget,
32}
33
34impl WidgetBase for TextArea {
35    fn default() -> Self {
36        let inner = Widget::new(WidgetType::Textarea);
37        inner.set_style(Style::Resize, "none");
38        Self { inner }
39    }
40
41    unsafe fn from_widget(widget: &Widget) -> Self {
42        Self {
43            inner: widget.clone(),
44        }
45    }
46    fn inner(&self) -> Widget {
47        self.inner.clone()
48    }
49}
50
51impl WidgetExt for TextArea {}
52
53impl InputExt for TextArea {}