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 {}