From 3c1ec2e9ca70312584528c54731db2bc669260bf Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 13 Oct 2023 17:36:27 -0400 Subject: [PATCH] Add rudimentary UI for `BufferSearch` --- crates/ui2/src/components/buffer_search.rs | 13 +++++++++++-- crates/ui2/src/elements/button.rs | 2 +- crates/ui2/src/elements/icon.rs | 4 ++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/crates/ui2/src/components/buffer_search.rs b/crates/ui2/src/components/buffer_search.rs index 95e328091c..642942e537 100644 --- a/crates/ui2/src/components/buffer_search.rs +++ b/crates/ui2/src/components/buffer_search.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -use crate::EditorPane; +use crate::{h_stack, EditorPane, Icon, IconButton, Input}; #[derive(Element)] #[element(view_state = "EditorPane")] @@ -15,6 +15,15 @@ impl BufferSearch { _view: &mut EditorPane, cx: &mut ViewContext, ) -> impl Element { - div().child("This is where Buffer Search goes.") + let theme = theme(cx); + + h_stack() + .fill(theme.highest.base.default.background) + .p_2() + .child( + h_stack() + .child(Input::new("Search (↑/↓ for previous/next query)")) + .child(IconButton::new(Icon::Replace)), + ) } } diff --git a/crates/ui2/src/elements/button.rs b/crates/ui2/src/elements/button.rs index fc26f489f9..e1dac4466f 100644 --- a/crates/ui2/src/elements/button.rs +++ b/crates/ui2/src/elements/button.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use gpui3::{DefiniteLength, Hsla, Interactive, MouseButton, WindowContext}; use crate::prelude::*; -use crate::{h_stack, theme, Icon, IconColor, IconElement, Label, LabelColor, LabelSize}; +use crate::{h_stack, Icon, IconColor, IconElement, Label, LabelColor, LabelSize}; #[derive(Default, PartialEq, Clone, Copy)] pub enum IconPosition { diff --git a/crates/ui2/src/elements/icon.rs b/crates/ui2/src/elements/icon.rs index 74ee43b067..f38c8c339a 100644 --- a/crates/ui2/src/elements/icon.rs +++ b/crates/ui2/src/elements/icon.rs @@ -82,6 +82,8 @@ pub enum Icon { MicMute, Plus, Quote, + Replace, + ReplaceAll, Screen, SelectAll, Split, @@ -130,6 +132,8 @@ impl Icon { Icon::MicMute => "icons/mic-mute.svg", Icon::Plus => "icons/plus.svg", Icon::Quote => "icons/quote.svg", + Icon::Replace => "icons/replace.svg", + Icon::ReplaceAll => "icons/replace_all.svg", Icon::Screen => "icons/desktop.svg", Icon::SelectAll => "icons/select-all.svg", Icon::Split => "icons/split.svg",