windjammer_ui/components/generated/
tooltip.rs

1#![allow(clippy::all)]
2#![allow(noop_method_call)]
3use super::traits::Renderable;
4
5#[derive(Clone, Debug, PartialEq, Copy)]
6pub enum TooltipPosition {
7    Top,
8    Bottom,
9    Left,
10    Right,
11}
12
13#[derive(Debug, Clone, PartialEq)]
14pub struct Tooltip {
15    pub text: String,
16    pub position: TooltipPosition,
17    pub child: String,
18}
19
20impl Tooltip {
21    #[inline]
22    pub fn new(text: String, child: String) -> Tooltip {
23        Tooltip {
24            text,
25            position: TooltipPosition::Top,
26            child,
27        }
28    }
29    #[inline]
30    pub fn position(mut self, position: TooltipPosition) -> Tooltip {
31        self.position = position;
32        self
33    }
34}
35
36impl Renderable for Tooltip {
37    #[inline]
38    fn render(self) -> String {
39        let position_class = match self.position {
40            TooltipPosition::Top => "wj-tooltip-top".to_string(),
41            TooltipPosition::Bottom => "wj-tooltip-bottom".to_string(),
42            TooltipPosition::Left => "wj-tooltip-left".to_string(),
43            TooltipPosition::Right => "wj-tooltip-right".to_string(),
44        };
45        format!(
46            "<div class='wj-tooltip-container {}'>{}<span class='wj-tooltip-text'>{}</span></div>",
47            position_class, self.child, self.text
48        )
49    }
50}