1use crate::common::*;
2
3pub struct Label {
4 text: String,
5}
6
7impl Label {
8 pub fn new(text: &str) -> Self {
9 Label {
10 text: text.to_string(),
11 }
12 }
13}
14
15impl Widget for Label {
16 type Ret = Entity;
17 type Data = String;
18
19 fn widget_name(&self) -> String {
20 "label".to_string()
21 }
22
23 fn on_build(&mut self, state: &mut State, entity: Entity) -> Self::Ret {
24 entity
25 .set_text(state, &self.text.to_string())
26 .set_element(state, "label")
27 }
29
30 fn on_update(&mut self, state: &mut State, entity: Entity, data: &Self::Data) {
31 self.text = data.to_owned();
32 entity.set_text(state, &self.text);
33 }
35}
36