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
29
30
31
32
33
34
use crate::{api::prelude::*, proc_macros::*};

// --- KEYS --

pub static STYLE_SCROLL_BAR: &str = "scroll_bar";

// --- KEYS --

widget!(
    /// The `ScrollBar` widget represents a position inside of a scroll container.
    ///
    /// **style:** `scroll_bar`
    ScrollBar {
        /// Sets or shares the background property.
        background: Brush,

        /// Sets or shares the border radius property.
        border_radius: f64
    }
);

impl Template for ScrollBar {
    fn template(self, _: Entity, _: &mut BuildContext) -> Self {
        self.name("ScrollBar")
            .style(STYLE_SCROLL_BAR)
            .width(4.0)
            .border_radius(2.0)
            .background("#647b91")
    }

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