client.rs

 1use std::cell::RefCell;
 2use std::rc::Rc;
 3
 4use copypasta::ClipboardProvider;
 5
 6use crate::platform::PlatformWindow;
 7use crate::{AnyWindowHandle, CursorStyle, DisplayId, PlatformDisplay, WindowOptions};
 8
 9pub trait Client {
10    fn displays(&self) -> Vec<Rc<dyn PlatformDisplay>>;
11    fn display(&self, id: DisplayId) -> Option<Rc<dyn PlatformDisplay>>;
12    fn open_window(
13        &self,
14        handle: AnyWindowHandle,
15        options: WindowOptions,
16    ) -> Box<dyn PlatformWindow>;
17    fn set_cursor_style(&self, style: CursorStyle);
18    fn get_clipboard(&self) -> Rc<RefCell<dyn ClipboardProvider>>;
19    fn get_primary(&self) -> Rc<RefCell<dyn ClipboardProvider>>;
20}