Remove platform::WindowContext trait

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
Antonio Scandurra 2022-09-09 15:24:28 +02:00
parent 1c810d7e8d
commit e803dd9f72
4 changed files with 18 additions and 27 deletions

View file

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

View file

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

View file

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

View file

@ -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 { impl super::Window for Window {
fn as_any_mut(&mut self) -> &mut dyn Any { fn as_any_mut(&mut self) -> &mut dyn Any {
self self
@ -300,6 +282,22 @@ impl super::Window for Window {
fn zoom(&self) {} fn zoom(&self) {}
fn toggle_full_screen(&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 { pub fn platform() -> Platform {