windjammer_ui/components/generated/
splitpanel.rs1#![allow(clippy::all)]
2#![allow(noop_method_call)]
3use super::traits::Renderable;
4
5pub enum SplitDirection {
6 Horizontal,
7 Vertical,
8}
9
10pub struct SplitPanel {
11 left: String,
12 right: String,
13 direction: SplitDirection,
14 initial_size: i32,
15}
16
17impl SplitPanel {
18 #[inline]
19 pub fn new(left: String, right: String) -> SplitPanel {
20 SplitPanel {
21 left,
22 right,
23 direction: SplitDirection::Vertical,
24 initial_size: 50,
25 }
26 }
27 #[inline]
28 pub fn direction(mut self, direction: SplitDirection) -> SplitPanel {
29 self.direction = direction;
30 self
31 }
32 #[inline]
33 pub fn initial_size(mut self, size: i32) -> SplitPanel {
34 self.initial_size = size;
35 self
36 }
37}
38
39impl Renderable for SplitPanel {
40 #[inline]
41 fn render(self) -> String {
42 let flex_direction = match self.direction {
43 SplitDirection::Horizontal => "column",
44 SplitDirection::Vertical => "row",
45 };
46 format!(
47 "<div class='wj-split-panel' style='display: flex; flex-direction: {}; height: 100%;'>
48 <div class='wj-split-pane' style='flex: {}%;'>
49 {}
50 </div>
51 <div class='wj-split-divider'></div>
52 <div class='wj-split-pane' style='flex: {}%;'>
53 {}
54 </div>
55</div>",
56 flex_direction,
57 self.initial_size,
58 self.left,
59 100 - self.initial_size,
60 self.right
61 )
62 }
63}