Start work on read-only project access for channel guests
Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Mikayla <mikayla@zed.dev>
This commit is contained in:
parent
1bc2e0ee5c
commit
28c39aae17
12 changed files with 160 additions and 57 deletions
|
@ -44,8 +44,9 @@ pub trait IntoElement: Sized {
|
|||
}
|
||||
|
||||
/// Convert into an element, then draw in the current window at the given origin.
|
||||
/// The provided available space is provided to the layout engine to determine the size of the root element.
|
||||
/// Once the element is drawn, its associated element staet is yielded to the given callback.
|
||||
/// The available space argument is provided to the layout engine to determine the size of the
|
||||
// root element. Once the element is drawn, its associated element state is yielded to the
|
||||
// given callback.
|
||||
fn draw_and_update_state<T, R>(
|
||||
self,
|
||||
origin: Point<Pixels>,
|
||||
|
|
|
@ -19,7 +19,7 @@ pub struct TestPlatform {
|
|||
background_executor: BackgroundExecutor,
|
||||
foreground_executor: ForegroundExecutor,
|
||||
|
||||
active_window: Arc<Mutex<Option<AnyWindowHandle>>>,
|
||||
pub(crate) active_window: Arc<Mutex<Option<AnyWindowHandle>>>,
|
||||
active_display: Rc<dyn PlatformDisplay>,
|
||||
active_cursor: Mutex<CursorStyle>,
|
||||
current_clipboard_item: Mutex<Option<ClipboardItem>>,
|
||||
|
@ -106,7 +106,7 @@ impl Platform for TestPlatform {
|
|||
}
|
||||
|
||||
fn activate(&self, _ignoring_other_apps: bool) {
|
||||
unimplemented!()
|
||||
//
|
||||
}
|
||||
|
||||
fn hide(&self) {
|
||||
|
@ -142,6 +142,7 @@ impl Platform for TestPlatform {
|
|||
*self.active_window.lock() = Some(handle);
|
||||
Box::new(TestWindow::new(
|
||||
options,
|
||||
handle,
|
||||
self.weak.clone(),
|
||||
self.active_display.clone(),
|
||||
))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::{
|
||||
px, AtlasKey, AtlasTextureId, AtlasTile, Pixels, PlatformAtlas, PlatformDisplay,
|
||||
PlatformInputHandler, PlatformWindow, Point, Size, TestPlatform, TileId, WindowAppearance,
|
||||
WindowBounds, WindowOptions,
|
||||
px, AnyWindowHandle, AtlasKey, AtlasTextureId, AtlasTile, Pixels, PlatformAtlas,
|
||||
PlatformDisplay, PlatformInputHandler, PlatformWindow, Point, Size, TestPlatform, TileId,
|
||||
WindowAppearance, WindowBounds, WindowOptions,
|
||||
};
|
||||
use collections::HashMap;
|
||||
use parking_lot::Mutex;
|
||||
|
@ -20,6 +20,7 @@ pub(crate) struct TestWindowHandlers {
|
|||
|
||||
pub struct TestWindow {
|
||||
pub(crate) bounds: WindowBounds,
|
||||
pub(crate) handle: AnyWindowHandle,
|
||||
display: Rc<dyn PlatformDisplay>,
|
||||
pub(crate) title: Option<String>,
|
||||
pub(crate) edited: bool,
|
||||
|
@ -32,6 +33,7 @@ pub struct TestWindow {
|
|||
impl TestWindow {
|
||||
pub fn new(
|
||||
options: WindowOptions,
|
||||
handle: AnyWindowHandle,
|
||||
platform: Weak<TestPlatform>,
|
||||
display: Rc<dyn PlatformDisplay>,
|
||||
) -> Self {
|
||||
|
@ -39,6 +41,7 @@ impl TestWindow {
|
|||
bounds: options.bounds,
|
||||
display,
|
||||
platform,
|
||||
handle,
|
||||
input_handler: None,
|
||||
sprite_atlas: Arc::new(TestAtlas::new()),
|
||||
handlers: Default::default(),
|
||||
|
@ -107,7 +110,12 @@ impl PlatformWindow for TestWindow {
|
|||
}
|
||||
|
||||
fn activate(&self) {
|
||||
unimplemented!()
|
||||
*self
|
||||
.platform
|
||||
.upgrade()
|
||||
.expect("platform dropped")
|
||||
.active_window
|
||||
.lock() = Some(self.handle);
|
||||
}
|
||||
|
||||
fn set_title(&mut self, title: &str) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue