Skip to content

Commit f25fca3

Browse files
RealKCbilelmoussaoui
authored andcommitted
gdk: Seal GdkCairoContextExt and move method impls within trait definition
1 parent c7faeb4 commit f25fca3

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

gdk4/src/cairo_interaction.rs

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -24,41 +24,14 @@ impl GdkCairoSurfaceExt for cairo::Surface {
2424

2525
// rustdoc-stripper-ignore-next
2626
/// Trait containing integration methods with [`cairo::Context`].
27-
pub trait GdkCairoContextExt {
27+
pub trait GdkCairoContextExt: sealed::Sealed {
2828
// rustdoc-stripper-ignore-next
2929
/// # Safety
3030
///
3131
/// It's the responsibility of the caller to ensure that source
3232
/// is a valid GL resource.
3333
#[doc(alias = "gdk_cairo_draw_from_gl")]
3434
#[allow(clippy::too_many_arguments)]
35-
unsafe fn draw_from_gl(
36-
&self,
37-
surface: &Surface,
38-
source: i32,
39-
source_type: i32,
40-
buffer_scale: i32,
41-
x: i32,
42-
y: i32,
43-
width: i32,
44-
height: i32,
45-
);
46-
47-
#[doc(alias = "gdk_cairo_set_source_rgba")]
48-
#[doc(alias = "set_source_rgba")]
49-
fn set_source_color(&self, rgba: &RGBA);
50-
51-
#[doc(alias = "gdk_cairo_set_source_pixbuf")]
52-
fn set_source_pixbuf(&self, pixbuf: &Pixbuf, x: f64, y: f64);
53-
54-
#[doc(alias = "gdk_cairo_rectangle")]
55-
fn add_rectangle(&self, rectangle: &Rectangle);
56-
57-
#[doc(alias = "gdk_cairo_region")]
58-
fn add_region(&self, region: &Region);
59-
}
60-
61-
impl GdkCairoContextExt for Context {
6235
unsafe fn draw_from_gl(
6336
&self,
6437
surface: &Surface,
@@ -72,7 +45,7 @@ impl GdkCairoContextExt for Context {
7245
) {
7346
skip_assert_initialized!();
7447
ffi::gdk_cairo_draw_from_gl(
75-
mut_override(self.to_glib_none().0),
48+
self.to_raw(),
7649
surface.to_glib_none().0,
7750
source,
7851
source_type,
@@ -84,27 +57,48 @@ impl GdkCairoContextExt for Context {
8457
);
8558
}
8659

60+
#[doc(alias = "gdk_cairo_set_source_rgba")]
61+
#[doc(alias = "set_source_rgba")]
8762
fn set_source_color(&self, rgba: &RGBA) {
8863
unsafe {
89-
ffi::gdk_cairo_set_source_rgba(self.to_glib_none().0, rgba.to_glib_none().0);
64+
ffi::gdk_cairo_set_source_rgba(self.to_raw(), rgba.to_glib_none().0);
9065
}
9166
}
9267

68+
#[doc(alias = "gdk_cairo_set_source_pixbuf")]
9369
fn set_source_pixbuf(&self, pixbuf: &Pixbuf, x: f64, y: f64) {
9470
unsafe {
95-
ffi::gdk_cairo_set_source_pixbuf(self.to_glib_none().0, pixbuf.to_glib_none().0, x, y);
71+
ffi::gdk_cairo_set_source_pixbuf(self.to_raw(), pixbuf.to_glib_none().0, x, y);
9672
}
9773
}
9874

75+
#[doc(alias = "gdk_cairo_rectangle")]
9976
fn add_rectangle(&self, rectangle: &Rectangle) {
10077
unsafe {
101-
ffi::gdk_cairo_rectangle(self.to_glib_none().0, rectangle.to_glib_none().0);
78+
ffi::gdk_cairo_rectangle(self.to_raw(), rectangle.to_glib_none().0);
10279
}
10380
}
10481

82+
#[doc(alias = "gdk_cairo_region")]
10583
fn add_region(&self, region: &Region) {
10684
unsafe {
107-
ffi::gdk_cairo_region(self.to_glib_none().0, region.to_glib_none().0);
85+
ffi::gdk_cairo_region(self.to_raw(), region.to_glib_none().0);
86+
}
87+
}
88+
}
89+
90+
impl GdkCairoContextExt for Context {}
91+
92+
mod sealed {
93+
use cairo::{ffi::cairo_t, Context};
94+
95+
pub trait Sealed {
96+
fn to_raw(&self) -> *mut cairo_t;
97+
}
98+
99+
impl Sealed for Context {
100+
fn to_raw(&self) -> *mut cairo_t {
101+
self.to_raw_none()
108102
}
109103
}
110104
}

0 commit comments

Comments
 (0)