use crate::error::Result;
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Rect {
pub x: f64,
pub y: f64,
pub width: f64,
pub height: f64,
}
impl Rect {
pub fn contains(&self, x: f64, y: f64) -> bool {
x >= self.x && y >= self.y && x < self.x + self.width && y < self.y + self.height
}
}
#[derive(Debug, Clone, PartialEq)]
pub struct DisplayInfo {
pub id: u32,
pub bounds: Rect,
pub scale_factor: f64,
pub refresh_rate: Option<u32>,
pub is_primary: bool,
}
#[derive(Debug, Clone, PartialEq)]
pub struct SystemSettings {
pub keyboard_repeat_rate: Option<u32>,
pub keyboard_repeat_delay: Option<u32>,
pub mouse_sensitivity: Option<f64>,
pub mouse_acceleration: Option<f64>,
pub mouse_acceleration_threshold: Option<f64>,
pub double_click_time: Option<u32>,
pub keyboard_layout: Option<String>,
}
pub fn displays() -> Result<Vec<DisplayInfo>> {
crate::platform::displays()
}
pub fn primary_display() -> Result<DisplayInfo> {
crate::platform::primary_display()
}
pub fn display_at_point(x: f64, y: f64) -> Result<Option<DisplayInfo>> {
crate::platform::display_at_point(x, y)
}
pub fn system_settings() -> Result<SystemSettings> {
crate::platform::system_settings()
}