jay-compositor 1.15.0

The Jay compositor
use crate::client::Client;
use crate::it::test_client::TestClient;
use crate::it::test_ifs::test_surface::TestSurface;
use crate::wire::WpAlphaModifierSurfaceV1Id;
use std::rc::Rc;

pub struct TestAlphaModifierSurface {
    pub id: WpAlphaModifierSurfaceV1Id,
    pub client: Rc<Client>,
}

impl TestAlphaModifierSurface {
    pub fn set_multiplier(&self, factor: f64) {
        self.client
            .send_wp_alpha_modifier_surface_v1_set_multiplier(
                self.id,
                (factor * u32::MAX as f64) as u32,
            );
    }
}

impl TestClient {
    pub fn get_alpha_modifier_surface(
        &self,
        surface: &TestSurface,
    ) -> Rc<TestAlphaModifierSurface> {
        let id = self
            .client
            .send_wp_alpha_modifier_v1_get_surface(surface.id);
        Rc::new(TestAlphaModifierSurface {
            id,
            client: self.client.clone(),
        })
    }
}