gsk4/auto/
component_transfer_node.rs1use crate::{ffi, ComponentTransfer, RenderNode};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GskComponentTransferNode")]
11 pub struct ComponentTransferNode(Shared<ffi::GskComponentTransferNode>);
12
13 match fn {
14 ref => |ptr| ffi::gsk_render_node_ref(ptr as *mut ffi::GskRenderNode),
15 unref => |ptr| ffi::gsk_render_node_unref(ptr as *mut ffi::GskRenderNode),
16 }
17}
18
19impl StaticType for ComponentTransferNode {
20 fn static_type() -> glib::Type {
21 unsafe { from_glib(ffi::gsk_component_transfer_node_get_type()) }
22 }
23}
24
25impl ComponentTransferNode {
26 #[doc(alias = "gsk_component_transfer_node_new")]
43 pub fn new(
44 child: impl AsRef<RenderNode>,
45 r: &ComponentTransfer,
46 g: &ComponentTransfer,
47 b: &ComponentTransfer,
48 a: &ComponentTransfer,
49 ) -> ComponentTransferNode {
50 skip_assert_initialized!();
51 unsafe {
52 from_glib_full(ffi::gsk_component_transfer_node_new(
53 child.as_ref().to_glib_none().0,
54 r.to_glib_none().0,
55 g.to_glib_none().0,
56 b.to_glib_none().0,
57 a.to_glib_none().0,
58 ))
59 }
60 }
61
62 #[doc(alias = "gsk_component_transfer_node_get_child")]
68 #[doc(alias = "get_child")]
69 pub fn child(&self) -> RenderNode {
70 unsafe {
71 from_glib_none(ffi::gsk_component_transfer_node_get_child(
72 self.to_glib_none().0,
73 ))
74 }
75 }
76
77 #[doc(alias = "gsk_component_transfer_node_get_transfer")]
86 #[doc(alias = "get_transfer")]
87 pub fn transfer(&self, component: u32) -> ComponentTransfer {
88 unsafe {
89 from_glib_none(ffi::gsk_component_transfer_node_get_transfer(
90 self.to_glib_none().0,
91 component,
92 ))
93 }
94 }
95}