windows_composition/
brush.rs1use super::*;
2
3#[derive(Clone)]
6pub struct CompositionBrush(pub(crate) bindings::CompositionBrush);
7
8pub trait Brush: Sealed {
14 fn as_brush(&self) -> CompositionBrush;
16}
17
18#[derive(Clone)]
20pub struct CompositionColorBrush(pub(crate) bindings::CompositionColorBrush);
21
22impl CompositionColorBrush {
23 pub fn set_color(&self, color: Color) {
25 self.0.SetColor(color.0).unwrap();
26 }
27
28 pub fn color(&self) -> Color {
30 Color(self.0.Color().unwrap())
31 }
32}
33
34impl Sealed for CompositionColorBrush {}
35
36impl Brush for CompositionColorBrush {
37 fn as_brush(&self) -> CompositionBrush {
38 CompositionBrush(self.0.cast().unwrap())
39 }
40}
41
42#[derive(Clone)]
46pub struct CompositionNineGridBrush(pub(crate) bindings::CompositionNineGridBrush);
47
48impl CompositionNineGridBrush {
49 pub fn set_insets(&self, left: f32, top: f32, right: f32, bottom: f32) {
51 self.0
52 .SetInsetsWithValues(left, top, right, bottom)
53 .unwrap();
54 }
55
56 pub fn set_center_hollow(&self, hollow: bool) {
58 self.0.SetIsCenterHollow(hollow).unwrap();
59 }
60
61 pub fn set_source(&self, brush: &impl Brush) {
63 self.0.SetSource(&brush.as_brush().0).unwrap();
64 }
65}
66
67impl Sealed for CompositionNineGridBrush {}
68
69impl Brush for CompositionNineGridBrush {
70 fn as_brush(&self) -> CompositionBrush {
71 CompositionBrush(self.0.cast().unwrap())
72 }
73}