par_term_config/config/config_struct/
pane_config.rs1use crate::types::{DividerStyle, PaneTitlePosition};
8use serde::{Deserialize, Serialize};
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct PaneConfig {
13 #[serde(default = "crate::defaults::pane_divider_width")]
15 pub pane_divider_width: Option<f32>,
16
17 #[serde(default = "crate::defaults::pane_divider_hit_width")]
20 pub pane_divider_hit_width: f32,
21
22 #[serde(default = "crate::defaults::pane_padding")]
24 pub pane_padding: f32,
25
26 #[serde(default = "crate::defaults::pane_min_size")]
29 pub pane_min_size: usize,
30
31 #[serde(default = "crate::defaults::pane_background_opacity")]
34 pub pane_background_opacity: f32,
35
36 #[serde(default = "crate::defaults::pane_divider_color")]
38 pub pane_divider_color: [u8; 3],
39
40 #[serde(default = "crate::defaults::pane_divider_hover_color")]
42 pub pane_divider_hover_color: [u8; 3],
43
44 #[serde(default = "crate::defaults::bool_false")]
46 pub dim_inactive_panes: bool,
47
48 #[serde(default = "crate::defaults::inactive_pane_opacity")]
50 pub inactive_pane_opacity: f32,
51
52 #[serde(default = "crate::defaults::bool_false")]
54 pub show_pane_titles: bool,
55
56 #[serde(default = "crate::defaults::pane_title_height")]
58 pub pane_title_height: f32,
59
60 #[serde(default)]
62 pub pane_title_position: PaneTitlePosition,
63
64 #[serde(default = "crate::defaults::pane_title_color")]
66 pub pane_title_color: [u8; 3],
67
68 #[serde(default = "crate::defaults::pane_title_bg_color")]
70 pub pane_title_bg_color: [u8; 3],
71
72 #[serde(default)]
74 pub pane_title_font: String,
75
76 #[serde(default)]
78 pub pane_divider_style: DividerStyle,
79
80 #[serde(default = "crate::defaults::max_panes")]
82 pub max_panes: usize,
83
84 #[serde(default = "crate::defaults::bool_true")]
86 pub pane_focus_indicator: bool,
87
88 #[serde(default = "crate::defaults::pane_focus_color")]
90 pub pane_focus_color: [u8; 3],
91
92 #[serde(default = "crate::defaults::pane_focus_width")]
94 pub pane_focus_width: f32,
95}
96
97impl Default for PaneConfig {
98 fn default() -> Self {
99 Self {
100 pane_divider_width: crate::defaults::pane_divider_width(),
101 pane_divider_hit_width: crate::defaults::pane_divider_hit_width(),
102 pane_padding: crate::defaults::pane_padding(),
103 pane_min_size: crate::defaults::pane_min_size(),
104 pane_background_opacity: crate::defaults::pane_background_opacity(),
105 pane_divider_color: crate::defaults::pane_divider_color(),
106 pane_divider_hover_color: crate::defaults::pane_divider_hover_color(),
107 dim_inactive_panes: crate::defaults::bool_false(),
108 inactive_pane_opacity: crate::defaults::inactive_pane_opacity(),
109 show_pane_titles: crate::defaults::bool_false(),
110 pane_title_height: crate::defaults::pane_title_height(),
111 pane_title_position: PaneTitlePosition::default(),
112 pane_title_color: crate::defaults::pane_title_color(),
113 pane_title_bg_color: crate::defaults::pane_title_bg_color(),
114 pane_title_font: String::new(),
115 pane_divider_style: DividerStyle::default(),
116 max_panes: crate::defaults::max_panes(),
117 pane_focus_indicator: crate::defaults::bool_true(),
118 pane_focus_color: crate::defaults::pane_focus_color(),
119 pane_focus_width: crate::defaults::pane_focus_width(),
120 }
121 }
122}