Skip to content

Commit 0351305

Browse files
committed
Generate Copy, Paste and Composite node bindings
1 parent 1a23e25 commit 0351305

File tree

5 files changed

+161
-0
lines changed

5 files changed

+161
-0
lines changed

gsk4/Gir.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ generate = [
2121
"Gsk.ColorMatrixNode",
2222
"Gsk.ColorNode",
2323
"Gsk.ComponentTransfer",
24+
"Gsk.CompositeNode",
2425
"Gsk.ConicGradientNode",
26+
"Gsk.CopyNode",
2527
"Gsk.Corner",
2628
"Gsk.CrossFadeNode",
2729
"Gsk.DebugNode",
@@ -37,6 +39,7 @@ generate = [
3739
"Gsk.MaskNode",
3840
"Gsk.OpacityNode",
3941
"Gsk.OutsetShadowNode",
42+
"Gsk.PasteNode",
4043
"Gsk.PathDirection",
4144
"Gsk.PathForeachFlags",
4245
"Gsk.PathIntersection",

gsk4/src/auto/composite_node.rs

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// This file was generated by gir (https://github.com/gtk-rs/gir)
2+
// from gir-files (https://github.com/gtk-rs/gir-files)
3+
// DO NOT EDIT
4+
5+
use crate::ffi;
6+
#[cfg(feature = "v4_22")]
7+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
8+
use crate::{PorterDuff, RenderNode};
9+
use glib::{prelude::*, translate::*};
10+
11+
glib::wrapper! {
12+
#[doc(alias = "GskCompositeNode")]
13+
pub struct CompositeNode(Shared<ffi::GskCompositeNode>);
14+
15+
match fn {
16+
ref => |ptr| ffi::gsk_render_node_ref(ptr as *mut ffi::GskRenderNode),
17+
unref => |ptr| ffi::gsk_render_node_unref(ptr as *mut ffi::GskRenderNode),
18+
}
19+
}
20+
21+
impl StaticType for CompositeNode {
22+
fn static_type() -> glib::Type {
23+
unsafe { from_glib(ffi::gsk_composite_node_get_type()) }
24+
}
25+
}
26+
27+
impl CompositeNode {
28+
#[cfg(feature = "v4_22")]
29+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
30+
#[doc(alias = "gsk_composite_node_new")]
31+
pub fn new(
32+
child: impl AsRef<RenderNode>,
33+
mask: impl AsRef<RenderNode>,
34+
op: PorterDuff,
35+
) -> CompositeNode {
36+
skip_assert_initialized!();
37+
unsafe {
38+
from_glib_full(ffi::gsk_composite_node_new(
39+
child.as_ref().to_glib_none().0,
40+
mask.as_ref().to_glib_none().0,
41+
op.into_glib(),
42+
))
43+
}
44+
}
45+
46+
#[cfg(feature = "v4_22")]
47+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
48+
#[doc(alias = "gsk_composite_node_get_child")]
49+
#[doc(alias = "get_child")]
50+
pub fn child(&self) -> RenderNode {
51+
unsafe { from_glib_none(ffi::gsk_composite_node_get_child(self.to_glib_none().0)) }
52+
}
53+
54+
#[cfg(feature = "v4_22")]
55+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
56+
#[doc(alias = "gsk_composite_node_get_mask")]
57+
#[doc(alias = "get_mask")]
58+
pub fn mask(&self) -> RenderNode {
59+
unsafe { from_glib_none(ffi::gsk_composite_node_get_mask(self.to_glib_none().0)) }
60+
}
61+
62+
#[cfg(feature = "v4_22")]
63+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
64+
#[doc(alias = "gsk_composite_node_get_operator")]
65+
#[doc(alias = "get_operator")]
66+
pub fn operator(&self) -> PorterDuff {
67+
unsafe { from_glib(ffi::gsk_composite_node_get_operator(self.to_glib_none().0)) }
68+
}
69+
}

gsk4/src/auto/copy_node.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// This file was generated by gir (https://github.com/gtk-rs/gir)
2+
// from gir-files (https://github.com/gtk-rs/gir-files)
3+
// DO NOT EDIT
4+
5+
use crate::{ffi, RenderNode};
6+
use glib::{prelude::*, translate::*};
7+
8+
glib::wrapper! {
9+
#[doc(alias = "GskCopyNode")]
10+
pub struct CopyNode(Shared<ffi::GskCopyNode>);
11+
12+
match fn {
13+
ref => |ptr| ffi::gsk_render_node_ref(ptr as *mut ffi::GskRenderNode),
14+
unref => |ptr| ffi::gsk_render_node_unref(ptr as *mut ffi::GskRenderNode),
15+
}
16+
}
17+
18+
impl StaticType for CopyNode {
19+
fn static_type() -> glib::Type {
20+
unsafe { from_glib(ffi::gsk_copy_node_get_type()) }
21+
}
22+
}
23+
24+
impl CopyNode {
25+
#[doc(alias = "gsk_copy_node_new")]
26+
pub fn new(child: impl AsRef<RenderNode>) -> CopyNode {
27+
skip_assert_initialized!();
28+
unsafe { from_glib_full(ffi::gsk_copy_node_new(child.as_ref().to_glib_none().0)) }
29+
}
30+
31+
#[doc(alias = "gsk_copy_node_get_child")]
32+
#[doc(alias = "get_child")]
33+
pub fn child(&self) -> RenderNode {
34+
unsafe { from_glib_none(ffi::gsk_copy_node_get_child(self.to_glib_none().0)) }
35+
}
36+
}

gsk4/src/auto/mod.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,22 @@ mod component_transfer_node;
4040
#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
4141
pub use self::component_transfer_node::ComponentTransferNode;
4242

43+
mod composite_node;
44+
pub use self::composite_node::CompositeNode;
45+
4346
mod conic_gradient_node;
4447
pub use self::conic_gradient_node::ConicGradientNode;
4548

4649
mod container_node;
4750
pub use self::container_node::ContainerNode;
4851

52+
#[cfg(feature = "v4_22")]
53+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
54+
mod copy_node;
55+
#[cfg(feature = "v4_22")]
56+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
57+
pub use self::copy_node::CopyNode;
58+
4959
mod cross_fade_node;
5060
pub use self::cross_fade_node::CrossFadeNode;
5161

@@ -93,6 +103,13 @@ pub use self::opacity_node::OpacityNode;
93103
mod outset_shadow_node;
94104
pub use self::outset_shadow_node::OutsetShadowNode;
95105

106+
#[cfg(feature = "v4_22")]
107+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
108+
mod paste_node;
109+
#[cfg(feature = "v4_22")]
110+
#[cfg_attr(docsrs, doc(cfg(feature = "v4_22")))]
111+
pub use self::paste_node::PasteNode;
112+
96113
mod radial_gradient_node;
97114
pub use self::radial_gradient_node::RadialGradientNode;
98115

gsk4/src/auto/paste_node.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// This file was generated by gir (https://github.com/gtk-rs/gir)
2+
// from gir-files (https://github.com/gtk-rs/gir-files)
3+
// DO NOT EDIT
4+
5+
use crate::ffi;
6+
use glib::{prelude::*, translate::*};
7+
8+
glib::wrapper! {
9+
#[doc(alias = "GskPasteNode")]
10+
pub struct PasteNode(Shared<ffi::GskPasteNode>);
11+
12+
match fn {
13+
ref => |ptr| ffi::gsk_render_node_ref(ptr as *mut ffi::GskRenderNode),
14+
unref => |ptr| ffi::gsk_render_node_unref(ptr as *mut ffi::GskRenderNode),
15+
}
16+
}
17+
18+
impl StaticType for PasteNode {
19+
fn static_type() -> glib::Type {
20+
unsafe { from_glib(ffi::gsk_paste_node_get_type()) }
21+
}
22+
}
23+
24+
impl PasteNode {
25+
#[doc(alias = "gsk_paste_node_new")]
26+
pub fn new(bounds: &graphene::Rect, depth: usize) -> PasteNode {
27+
assert_initialized_main_thread!();
28+
unsafe { from_glib_full(ffi::gsk_paste_node_new(bounds.to_glib_none().0, depth)) }
29+
}
30+
31+
#[doc(alias = "gsk_paste_node_get_depth")]
32+
#[doc(alias = "get_depth")]
33+
pub fn depth(&self) -> usize {
34+
unsafe { ffi::gsk_paste_node_get_depth(self.to_glib_none().0) }
35+
}
36+
}

0 commit comments

Comments
 (0)