1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::prelude::*;

widget!(
    /// The `ImageWidget` widget is used to draw an image. It is not interactive.
    ///
    /// **CSS element:** `image-widget`
    ImageWidget {
        /// Sets or shares the image property.
        image: Image,

        /// Sets or shares the css selector property.
        selector: Selector
    }
);

impl Template for ImageWidget {
    fn template(self, _: Entity, _: &mut BuildContext) -> Self {
        self.name("ImageWidget").selector("image-widget").image("")
    }

    fn render_object(&self) -> Box<dyn RenderObject> {
        Box::new(ImageRenderObject)
    }

    fn layout(&self) -> Box<dyn Layout> {
        Box::new(FixedSizeLayout::new())
    }
}