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}