x11-overlay 0.1.0

A library for creating overlay interfaces on X11 systems using Cairo for rendering
Documentation
pub mod easing;
pub mod timing;

use anyhow::Result;

#[derive(Debug, Clone)]
#[allow(dead_code)]
pub enum AnimationProperty {
    Position { x: i16, y: i16 },
    Alpha(f32),
    Scale(f32),
    Color { r: u8, g: u8, b: u8 },
}

#[allow(dead_code)]
pub trait AnimationTarget {
    fn set_property(&mut self, property: AnimationProperty) -> Result<()>;
}

#[allow(dead_code)]
pub trait Animation {
    fn update(&mut self, delta_time: f64) -> bool;
    fn get_current_property(&self) -> AnimationProperty;
    fn is_complete(&self) -> bool;
}

#[allow(dead_code)]
pub trait Animatable {
    fn update_animations(&mut self, delta_time: f64);
    fn cleanup_animations(&mut self);
    fn has_active_animations(&self) -> bool;
}