1use gpui::Pixels;
2use settings::{RegisterSetting, Settings};
3use ui::px;
4use workspace::dock::DockPosition;
5
6#[derive(Debug, RegisterSetting)]
7pub struct CollaborationPanelSettings {
8 pub button: bool,
9 pub dock: DockPosition,
10 pub default_width: Pixels,
11}
12
13#[derive(Debug, RegisterSetting)]
14pub struct NotificationPanelSettings {
15 pub button: bool,
16 pub dock: DockPosition,
17 pub default_width: Pixels,
18 pub show_count_badge: bool,
19}
20
21impl Settings for CollaborationPanelSettings {
22 fn from_settings(content: &settings::SettingsContent) -> Self {
23 let panel = content.collaboration_panel.as_ref().unwrap();
24
25 Self {
26 button: panel.button.unwrap(),
27 dock: panel.dock.unwrap().into(),
28 default_width: panel.default_width.map(px).unwrap(),
29 }
30 }
31}
32
33impl Settings for NotificationPanelSettings {
34 fn from_settings(content: &settings::SettingsContent) -> Self {
35 let panel = content.notification_panel.as_ref().unwrap();
36 return Self {
37 button: panel.button.unwrap(),
38 dock: panel.dock.unwrap().into(),
39 default_width: panel.default_width.map(px).unwrap(),
40 show_count_badge: panel.show_count_badge.unwrap(),
41 };
42 }
43}