gsk4/auto/
component_transfer.rs1use crate::ffi;
6use glib::translate::*;
7
8glib::wrapper! {
9 #[derive(Debug, PartialOrd, Ord, Hash)]
10 pub struct ComponentTransfer(Boxed<ffi::GskComponentTransfer>);
11
12 match fn {
13 copy => |ptr| ffi::gsk_component_transfer_copy(ptr),
14 free => |ptr| ffi::gsk_component_transfer_free(ptr),
15 type_ => || ffi::gsk_component_transfer_get_type(),
16 }
17}
18
19impl ComponentTransfer {
20 #[doc(alias = "gsk_component_transfer_new_discrete")]
21 pub fn new_discrete(values: &[f32]) -> ComponentTransfer {
22 assert_initialized_main_thread!();
23 let n = values.len() as _;
24 unsafe {
25 from_glib_full(ffi::gsk_component_transfer_new_discrete(
26 n,
27 values.to_glib_none().0,
28 ))
29 }
30 }
31
32 #[doc(alias = "gsk_component_transfer_new_gamma")]
33 pub fn new_gamma(amp: f32, exp: f32, ofs: f32) -> ComponentTransfer {
34 assert_initialized_main_thread!();
35 unsafe { from_glib_full(ffi::gsk_component_transfer_new_gamma(amp, exp, ofs)) }
36 }
37
38 #[doc(alias = "gsk_component_transfer_new_identity")]
39 pub fn new_identity() -> ComponentTransfer {
40 assert_initialized_main_thread!();
41 unsafe { from_glib_full(ffi::gsk_component_transfer_new_identity()) }
42 }
43
44 #[doc(alias = "gsk_component_transfer_new_levels")]
45 pub fn new_levels(n: f32) -> ComponentTransfer {
46 assert_initialized_main_thread!();
47 unsafe { from_glib_full(ffi::gsk_component_transfer_new_levels(n)) }
48 }
49
50 #[doc(alias = "gsk_component_transfer_new_linear")]
51 pub fn new_linear(m: f32, b: f32) -> ComponentTransfer {
52 assert_initialized_main_thread!();
53 unsafe { from_glib_full(ffi::gsk_component_transfer_new_linear(m, b)) }
54 }
55
56 #[doc(alias = "gsk_component_transfer_new_table")]
57 pub fn new_table(values: &[f32]) -> ComponentTransfer {
58 assert_initialized_main_thread!();
59 let n = values.len() as _;
60 unsafe {
61 from_glib_full(ffi::gsk_component_transfer_new_table(
62 n,
63 values.to_glib_none().0,
64 ))
65 }
66 }
67
68 #[doc(alias = "gsk_component_transfer_equal")]
69 fn equal(&self, other: &ComponentTransfer) -> bool {
70 assert_initialized_main_thread!();
71 unsafe {
72 from_glib(ffi::gsk_component_transfer_equal(
73 ToGlibPtr::<*const ffi::GskComponentTransfer>::to_glib_none(self).0
74 as glib::ffi::gconstpointer,
75 ToGlibPtr::<*const ffi::GskComponentTransfer>::to_glib_none(other).0
76 as glib::ffi::gconstpointer,
77 ))
78 }
79 }
80}
81
82impl PartialEq for ComponentTransfer {
83 #[inline]
84 fn eq(&self, other: &Self) -> bool {
85 self.equal(other)
86 }
87}
88
89impl Eq for ComponentTransfer {}