Remove `platform::WindowContext` trait

Antonio Scandurra and Nathan Sobo created

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Change summary

crates/gpui/src/platform.rs                 |  4 --
crates/gpui/src/platform/mac/status_item.rs |  1 
crates/gpui/src/platform/mac/window.rs      |  6 ---
crates/gpui/src/platform/test.rs            | 34 ++++++++++------------
4 files changed, 18 insertions(+), 27 deletions(-)

Detailed changes

crates/gpui/src/platform.rs 🔗

@@ -110,7 +110,7 @@ pub trait InputHandler {
     fn rect_for_range(&self, range_utf16: Range<usize>) -> Option<RectF>;
 }
 
-pub trait Window: WindowContext {
+pub trait Window {
     fn as_any_mut(&mut self) -> &mut dyn Any;
     fn on_event(&mut self, callback: Box<dyn FnMut(Event) -> bool>);
     fn on_active_status_change(&mut self, callback: Box<dyn FnMut(bool)>);
@@ -127,9 +127,7 @@ pub trait Window: WindowContext {
     fn minimize(&self);
     fn zoom(&self);
     fn toggle_full_screen(&self);
-}
 
-pub trait WindowContext {
     fn size(&self) -> Vector2F;
     fn scale_factor(&self) -> f32;
     fn titlebar_height(&self) -> f32;

crates/gpui/src/platform/mac/status_item.rs 🔗

@@ -1,7 +1,6 @@
 use cocoa::{
     appkit::{NSSquareStatusItemLength, NSStatusBar, NSStatusItem, NSView},
     base::{id, nil, NO, YES},
-    foundation::NSRect,
     quartzcore::AutoresizingMask,
 };
 use core_foundation::base::TCFType;

crates/gpui/src/platform/mac/window.rs 🔗

@@ -6,7 +6,7 @@ use crate::{
         vector::{vec2f, Vector2F},
     },
     keymap::Keystroke,
-    platform::{self, Event, WindowBounds, WindowContext},
+    platform::{self, Event, WindowBounds},
     InputHandler, KeyDownEvent, ModifiersChangedEvent, MouseButton, MouseButtonEvent,
     MouseMovedEvent, Scene,
 };
@@ -649,9 +649,7 @@ impl platform::Window for Window {
             })
             .detach();
     }
-}
 
-impl platform::WindowContext for Window {
     fn size(&self) -> Vector2F {
         self.0.as_ref().borrow().size()
     }
@@ -713,9 +711,7 @@ impl WindowState {
             }
         }
     }
-}
 
-impl platform::WindowContext for WindowState {
     fn size(&self) -> Vector2F {
         let NSSize { width, height, .. } =
             unsafe { NSView::frame(self.native_window.contentView()) }.size;

crates/gpui/src/platform/test.rs 🔗

@@ -228,24 +228,6 @@ impl super::Dispatcher for Dispatcher {
     }
 }
 
-impl super::WindowContext for Window {
-    fn size(&self) -> Vector2F {
-        self.size
-    }
-
-    fn scale_factor(&self) -> f32 {
-        self.scale_factor
-    }
-
-    fn titlebar_height(&self) -> f32 {
-        24.
-    }
-
-    fn present_scene(&mut self, scene: crate::Scene) {
-        self.current_scene = Some(scene);
-    }
-}
-
 impl super::Window for Window {
     fn as_any_mut(&mut self) -> &mut dyn Any {
         self
@@ -300,6 +282,22 @@ impl super::Window for Window {
     fn zoom(&self) {}
 
     fn toggle_full_screen(&self) {}
+
+    fn size(&self) -> Vector2F {
+        self.size
+    }
+
+    fn scale_factor(&self) -> f32 {
+        self.scale_factor
+    }
+
+    fn titlebar_height(&self) -> f32 {
+        24.
+    }
+
+    fn present_scene(&mut self, scene: crate::Scene) {
+        self.current_scene = Some(scene);
+    }
 }
 
 pub fn platform() -> Platform {