collab_ui.rs

 1pub mod channel_view;
 2pub mod collab_panel;
 3pub mod notification_panel;
 4pub mod notifications;
 5mod panel_settings;
 6
 7use std::{rc::Rc, sync::Arc};
 8
 9pub use collab_panel::CollabPanel;
10use gpui::{
11    App, Pixels, PlatformDisplay, Size, WindowBackgroundAppearance, WindowBounds,
12    WindowDecorations, WindowKind, WindowOptions, point,
13};
14use panel_settings::MessageEditorSettings;
15pub use panel_settings::{CollaborationPanelSettings, NotificationPanelSettings};
16use release_channel::ReleaseChannel;
17use settings::Settings;
18use ui::px;
19use workspace::AppState;
20
21pub fn init(app_state: &Arc<AppState>, cx: &mut App) {
22    CollaborationPanelSettings::register(cx);
23    NotificationPanelSettings::register(cx);
24    MessageEditorSettings::register(cx);
25
26    channel_view::init(cx);
27    collab_panel::init(cx);
28    notification_panel::init(cx);
29    notifications::init(app_state, cx);
30    title_bar::init(cx);
31}
32
33fn notification_window_options(
34    screen: Rc<dyn PlatformDisplay>,
35    size: Size<Pixels>,
36    cx: &App,
37) -> WindowOptions {
38    let notification_margin_width = px(16.);
39    let notification_margin_height = px(-48.);
40
41    let bounds = gpui::Bounds::<Pixels> {
42        origin: screen.bounds().top_right()
43            - point(
44                size.width + notification_margin_width,
45                notification_margin_height,
46            ),
47        size,
48    };
49
50    let app_id = ReleaseChannel::global(cx).app_id();
51
52    WindowOptions {
53        window_bounds: Some(WindowBounds::Windowed(bounds)),
54        titlebar: None,
55        focus: false,
56        show: true,
57        kind: WindowKind::PopUp,
58        is_movable: false,
59        display_id: Some(screen.id()),
60        window_background: WindowBackgroundAppearance::Transparent,
61        app_id: Some(app_id.to_owned()),
62        window_min_size: None,
63        window_decorations: Some(WindowDecorations::Client),
64        tabbing_identifier: None,
65        ..Default::default()
66    }
67}