1use {
2 crate::{
3 makepad_derive_widget::*,
4 makepad_draw::*,
5 widget::*
6 }
7};
8
9live_design!{
10 LabelBase = {{Label}} {}
11}
12
13#[derive(Live)]
14pub struct Label {
15 #[live] draw_text: DrawText,
16 #[walk] walk: Walk,
17 #[live] align: Align,
18 #[live] padding: Padding,
19 #[live] text: RcStringMut,
21}
22
23impl LiveHook for Label{
24 fn before_live_design(cx:&mut Cx){
25 register_widget!(cx,Label)
26 }
27}
28
29impl Widget for Label {
30 fn redraw(&mut self, cx:&mut Cx){
31 self.draw_text.redraw(cx)
32 }
33
34 fn walk(&mut self, _cx:&mut Cx)->Walk{
35 self.walk
36 }
37
38 fn draw_walk_widget(&mut self, cx: &mut Cx2d, walk:Walk)->WidgetDraw{
39 self.draw_text.draw_walk(cx, walk.with_add_padding(self.padding), self.align, self.text.as_ref());
40 WidgetDraw::done()
41 }
42
43 fn text(&self)->String{
44 self.text.as_ref().to_string()
45 }
46
47 fn set_text(&mut self, v:&str){
48 self.text.as_mut_empty().push_str(v);
49 }
50}
51
52
53#[derive(Clone, PartialEq, WidgetRef)]
54pub struct LabelRef(WidgetRef);
55
56impl LabelRef{
57
58}