Remove unused terminal_button module

Nathan Sobo created

Change summary

crates/terminal_view/src/terminal_button.rs | 173 -----------------------
crates/terminal_view/src/terminal_view.rs   |   1 
2 files changed, 174 deletions(-)

Detailed changes

crates/terminal_view/src/terminal_button.rs 🔗

@@ -1,173 +0,0 @@
-use crate::TerminalView;
-use context_menu::{ContextMenu, ContextMenuItem};
-use gpui::{
-    elements::*,
-    platform::{CursorStyle, MouseButton},
-    AnyElement, Element, Entity, View, ViewContext, ViewHandle, WeakViewHandle,
-};
-use settings::Settings;
-use std::any::TypeId;
-use workspace::{
-    item::ItemHandle,
-    NewTerminal, StatusItemView, Workspace,
-};
-
-pub struct TerminalButton {
-    workspace: WeakViewHandle<Workspace>,
-    popup_menu: ViewHandle<ContextMenu>,
-}
-
-impl Entity for TerminalButton {
-    type Event = ();
-}
-
-impl View for TerminalButton {
-    fn ui_name() -> &'static str {
-        "TerminalButton"
-    }
-
-    fn render(&mut self, cx: &mut ViewContext<Self>) -> AnyElement<Self> {
-        let workspace = self.workspace.upgrade(cx);
-        let project = match workspace {
-            Some(workspace) => workspace.read(cx).project().read(cx),
-            None => return Empty::new().into_any(),
-        };
-
-        let focused_view = cx.focused_view_id();
-        let active = focused_view
-            .map(|view_id| {
-                cx.view_type_id(cx.window_id(), view_id) == Some(TypeId::of::<TerminalView>())
-            })
-            .unwrap_or(false);
-
-        let has_terminals = !project.local_terminal_handles().is_empty();
-        let terminal_count = project.local_terminal_handles().len() as i32;
-        let theme = cx.global::<Settings>().theme.clone();
-
-        Stack::new()
-            .with_child(
-                MouseEventHandler::<Self, _>::new(0, cx, {
-                    let theme = theme.clone();
-                    move |state, _cx| {
-                        let style = theme
-                            .workspace
-                            .status_bar
-                            .panel_buttons
-                            .button
-                            .style_for(state, active);
-
-                        Flex::row()
-                            .with_child(
-                                Svg::new("icons/terminal_12.svg")
-                                    .with_color(style.icon_color)
-                                    .constrained()
-                                    .with_width(style.icon_size)
-                                    .aligned()
-                                    .into_any_named("terminals-icon"),
-                            )
-                            .with_children(has_terminals.then(|| {
-                                Label::new(terminal_count.to_string(), style.label.text.clone())
-                                    .contained()
-                                    .with_style(style.label.container)
-                                    .aligned()
-                            }))
-                            .constrained()
-                            .with_height(style.icon_size)
-                            .contained()
-                            .with_style(style.container)
-                    }
-                })
-                .with_cursor_style(CursorStyle::PointingHand)
-                .on_click(MouseButton::Left, move |_, this, cx| {
-                    if has_terminals {
-                        this.deploy_terminal_menu(cx);
-                    } else {
-                        if !active {
-                            if let Some(workspace) = this.workspace.upgrade(cx) {
-                                workspace.update(cx, |_workspace, _cx| {
-                                    todo!()
-                                })
-                            }
-                        }
-                    };
-                })
-                .with_tooltip::<Self>(
-                    0,
-                    "Show Terminal".into(),
-                    None, // TODO! We need a new action here.
-                    theme.tooltip.clone(),
-                    cx,
-                ),
-            )
-            .with_child(ChildView::new(&self.popup_menu, cx).aligned().top().right())
-            .into_any_named("terminal button")
-    }
-}
-
-impl TerminalButton {
-    pub fn new(workspace: ViewHandle<Workspace>, cx: &mut ViewContext<Self>) -> Self {
-        let button_view_id = cx.view_id();
-        cx.observe(&workspace, |_, _, cx| cx.notify()).detach();
-        Self {
-            workspace: workspace.downgrade(),
-            popup_menu: cx.add_view(|cx| {
-                let mut menu = ContextMenu::new(button_view_id, cx);
-                menu.set_position_mode(OverlayPositionMode::Local);
-                menu
-            }),
-        }
-    }
-
-    pub fn deploy_terminal_menu(&mut self, cx: &mut ViewContext<Self>) {
-        let mut menu_options = vec![ContextMenuItem::action("New Terminal", NewTerminal)];
-
-        if let Some(workspace) = self.workspace.upgrade(cx) {
-            let project = workspace.read(cx).project().read(cx);
-            let local_terminal_handles = project.local_terminal_handles();
-
-            if !local_terminal_handles.is_empty() {
-                menu_options.push(ContextMenuItem::Separator)
-            }
-
-            for local_terminal_handle in local_terminal_handles {
-                if let Some(terminal) = local_terminal_handle.upgrade(cx) {
-                    let workspace = self.workspace.clone();
-                    let local_terminal_handle = local_terminal_handle.clone();
-                    menu_options.push(ContextMenuItem::handler(
-                        terminal.read(cx).title(),
-                        move |cx| {
-                            if let Some(workspace) = workspace.upgrade(cx) {
-                                workspace.update(cx, |workspace, cx| {
-                                    let terminal = workspace
-                                        .items_of_type::<TerminalView>(cx)
-                                        .find(|terminal| {
-                                            terminal.read(cx).model().downgrade()
-                                                == local_terminal_handle
-                                        });
-                                    if let Some(terminal) = terminal {
-                                        workspace.activate_item(&terminal, cx);
-                                    }
-                                });
-                            }
-                        },
-                    ))
-                }
-            }
-        }
-
-        self.popup_menu.update(cx, |menu, cx| {
-            menu.show(
-                Default::default(),
-                AnchorCorner::BottomRight,
-                menu_options,
-                cx,
-            );
-        });
-    }
-}
-
-impl StatusItemView for TerminalButton {
-    fn set_active_pane_item(&mut self, _: Option<&dyn ItemHandle>, cx: &mut ViewContext<Self>) {
-        cx.notify();
-    }
-}