Detailed changes
@@ -238,6 +238,24 @@ pub fn blue() -> Hsla {
}
}
+pub fn green() -> Hsla {
+ Hsla {
+ h: 0.33,
+ s: 1.,
+ l: 0.5,
+ a: 1.,
+ }
+}
+
+pub fn yellow() -> Hsla {
+ Hsla {
+ h: 0.16,
+ s: 1.,
+ l: 0.5,
+ a: 1.,
+ }
+}
+
impl Hsla {
/// Returns true if the HSLA color is fully transparent, false otherwise.
pub fn is_transparent(&self) -> bool {
@@ -31,7 +31,7 @@ use std::{
sync::Arc,
};
use theme::ActiveTheme as _;
-use ui::{h_stack, v_stack};
+use ui::{h_stack, v_stack, Label};
use unicase::UniCase;
use util::TryFutureExt;
use workspace::{
@@ -1382,7 +1382,7 @@ impl ProjectPanel {
if let (Some(editor), true) = (editor, show_editor) {
div().child(editor.clone())
} else {
- div().child(details.filename.clone())
+ div().child(Label::new(details.filename.clone()))
}
.ml_1(),
)
@@ -1449,6 +1449,7 @@ impl Render for ProjectPanel {
if has_worktree {
div()
+ .size_full()
.id("project-panel")
.track_focus(&self.focus_handle)
.child(
@@ -1472,6 +1473,7 @@ impl Render for ProjectPanel {
items
},
)
+ .size_full()
.track_scroll(self.list.clone()),
)
} else {
@@ -1,7 +1,7 @@
use crate::{status_bar::StatusItemView, Axis, Workspace};
use gpui::{
div, Action, AnyView, AppContext, Div, Entity, EntityId, EventEmitter, FocusHandle,
- ParentElement, Render, Subscription, View, ViewContext, WeakView, WindowContext,
+ ParentElement, Render, Styled, Subscription, View, ViewContext, WeakView, WindowContext,
};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
@@ -428,7 +428,11 @@ impl Render for Dock {
type Element = Div<Self>;
fn render(&mut self, cx: &mut ViewContext<Self>) -> Self::Element {
- todo!()
+ if let Some(entry) = self.visible_entry() {
+ div().size_full().child(entry.panel.to_any())
+ } else {
+ div()
+ }
}
}
@@ -3642,45 +3642,30 @@ impl Render for Workspace {
.border_t()
.border_b()
.border_color(cx.theme().colors().border)
- // .children(
- // Some(
- // Panel::new("project-panel-outer", cx)
- // .side(PanelSide::Left)
- // .child(ProjectPanel::new("project-panel-inner")),
- // )
- // .filter(|_| self.is_project_panel_open()),
- // )
- // .children(
- // Some(
- // Panel::new("collab-panel-outer", cx)
- // .child(CollabPanel::new("collab-panel-inner"))
- // .side(PanelSide::Left),
- // )
- // .filter(|_| self.is_collab_panel_open()),
- // )
- // .child(NotificationToast::new(
- // "maxbrunsfeld has requested to add you as a contact.".into(),
- // ))
.child(
- div().flex().flex_col().flex_1().h_full().child(
- div().flex().flex_1().child(self.center.render(
- &self.project,
- &self.follower_states,
- self.active_call(),
- &self.active_pane,
- self.zoomed.as_ref(),
- &self.app_state,
- cx,
- )),
- ), // .children(
- // Some(
- // Panel::new("terminal-panel", cx)
- // .child(Terminal::new())
- // .allowed_sides(PanelAllowedSides::BottomOnly)
- // .side(PanelSide::Bottom),
- // )
- // .filter(|_| self.is_terminal_open()),
- // ),
+ div()
+ .flex()
+ .flex_row()
+ .flex_1()
+ .h_full()
+ .child(div().flex().flex_1().child(self.left_dock.clone()))
+ .child(
+ div()
+ .flex()
+ .flex_col()
+ .flex_1()
+ .child(self.center.render(
+ &self.project,
+ &self.follower_states,
+ self.active_call(),
+ &self.active_pane,
+ self.zoomed.as_ref(),
+ &self.app_state,
+ cx,
+ ))
+ .child(div().flex().flex_1().child(self.bottom_dock.clone())),
+ )
+ .child(div().flex().flex_1().child(self.right_dock.clone())),
), // .children(
// Some(
// Panel::new("chat-panel-outer", cx)