Add prefix, suffix to TabBar. (#98)
This commit is contained in:
parent
68e6464bea
commit
22a1157378
2 changed files with 25 additions and 0 deletions
|
|
@ -106,6 +106,12 @@ pub struct Button {
|
|||
loading: bool,
|
||||
}
|
||||
|
||||
impl From<Button> for AnyElement {
|
||||
fn from(button: Button) -> Self {
|
||||
button.into_any_element()
|
||||
}
|
||||
}
|
||||
|
||||
impl Button {
|
||||
pub fn new(id: impl Into<ElementId>, cx: &mut WindowContext) -> Self {
|
||||
Self {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use crate::stack::h_flex;
|
||||
use crate::theme::ActiveTheme;
|
||||
use gpui::prelude::FluentBuilder as _;
|
||||
use gpui::{
|
||||
div, AnyElement, Div, IntoElement, ParentElement, RenderOnce, ScrollHandle, SharedString,
|
||||
StatefulInteractiveElement as _, Styled, WindowContext,
|
||||
|
|
@ -12,6 +13,8 @@ pub struct TabBar {
|
|||
base: Div,
|
||||
id: SharedString,
|
||||
scroll_handle: ScrollHandle,
|
||||
prefix: Option<AnyElement>,
|
||||
suffix: Option<AnyElement>,
|
||||
children: SmallVec<[AnyElement; 2]>,
|
||||
}
|
||||
|
||||
|
|
@ -22,6 +25,8 @@ impl TabBar {
|
|||
id: id.into(),
|
||||
children: SmallVec::new(),
|
||||
scroll_handle: ScrollHandle::new(),
|
||||
prefix: None,
|
||||
suffix: None,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -30,6 +35,18 @@ impl TabBar {
|
|||
self.scroll_handle = scroll_handle;
|
||||
self
|
||||
}
|
||||
|
||||
/// Set the prefix element of the TabBar
|
||||
pub fn prefix(mut self, prefix: impl Into<AnyElement>) -> Self {
|
||||
self.prefix = Some(prefix.into());
|
||||
self
|
||||
}
|
||||
|
||||
/// Set the suffix element of the TabBar
|
||||
pub fn suffix(mut self, suffix: impl Into<AnyElement>) -> Self {
|
||||
self.suffix = Some(suffix.into());
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl ParentElement for TabBar {
|
||||
|
|
@ -58,6 +75,7 @@ impl RenderOnce for TabBar {
|
|||
.border_b_1()
|
||||
.border_color(cx.theme().border)
|
||||
.text_color(theme.tab_foreground)
|
||||
.when_some(self.prefix, |this, prefix| this.child(prefix))
|
||||
// The child will append to this level
|
||||
.child(
|
||||
h_flex()
|
||||
|
|
@ -68,5 +86,6 @@ impl RenderOnce for TabBar {
|
|||
// The children will append to this level
|
||||
.children(self.children),
|
||||
)
|
||||
.when_some(self.suffix, |this, suffix| this.child(suffix))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue