use super::*;
#[derive(Clone)]
pub struct CompositionBrush(pub(crate) bindings::CompositionBrush);
pub trait Brush: Sealed {
fn as_brush(&self) -> CompositionBrush;
}
#[derive(Clone)]
pub struct CompositionColorBrush(pub(crate) bindings::CompositionColorBrush);
impl CompositionColorBrush {
pub fn set_color(&self, color: Color) {
self.0.SetColor(color.0).unwrap();
}
pub fn color(&self) -> Color {
Color(self.0.Color().unwrap())
}
}
impl Sealed for CompositionColorBrush {}
impl Brush for CompositionColorBrush {
fn as_brush(&self) -> CompositionBrush {
CompositionBrush(self.0.cast().unwrap())
}
}
#[derive(Clone)]
pub struct CompositionNineGridBrush(pub(crate) bindings::CompositionNineGridBrush);
impl CompositionNineGridBrush {
pub fn set_insets(&self, left: f32, top: f32, right: f32, bottom: f32) {
self.0
.SetInsetsWithValues(left, top, right, bottom)
.unwrap();
}
pub fn set_center_hollow(&self, hollow: bool) {
self.0.SetIsCenterHollow(hollow).unwrap();
}
pub fn set_source(&self, brush: &impl Brush) {
self.0.SetSource(&brush.as_brush().0).unwrap();
}
}
impl Sealed for CompositionNineGridBrush {}
impl Brush for CompositionNineGridBrush {
fn as_brush(&self) -> CompositionBrush {
CompositionBrush(self.0.cast().unwrap())
}
}