[go: up one dir, main page]

gtk4/auto/
snapshot.rs

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#![allow(deprecated)]
5
6use crate::{ffi, StyleContext};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10    #[doc(alias = "GtkSnapshot")]
11    pub struct Snapshot(Object<ffi::GtkSnapshot, ffi::GtkSnapshotClass>) @extends gdk::Snapshot;
12
13    match fn {
14        type_ => || ffi::gtk_snapshot_get_type(),
15    }
16}
17
18impl Snapshot {
19    pub const NONE: Option<&'static Snapshot> = None;
20
21    #[doc(alias = "gtk_snapshot_new")]
22    pub fn new() -> Snapshot {
23        assert_initialized_main_thread!();
24        unsafe { from_glib_full(ffi::gtk_snapshot_new()) }
25    }
26}
27
28impl Default for Snapshot {
29    fn default() -> Self {
30        Self::new()
31    }
32}
33
34pub trait SnapshotExt: IsA<Snapshot> + 'static {
35    #[doc(alias = "gtk_snapshot_append_cairo")]
36    fn append_cairo(&self, bounds: &graphene::Rect) -> cairo::Context {
37        unsafe {
38            from_glib_full(ffi::gtk_snapshot_append_cairo(
39                self.as_ref().to_glib_none().0,
40                bounds.to_glib_none().0,
41            ))
42        }
43    }
44
45    #[doc(alias = "gtk_snapshot_append_color")]
46    fn append_color(&self, color: &gdk::RGBA, bounds: &graphene::Rect) {
47        unsafe {
48            ffi::gtk_snapshot_append_color(
49                self.as_ref().to_glib_none().0,
50                color.to_glib_none().0,
51                bounds.to_glib_none().0,
52            );
53        }
54    }
55
56    #[doc(alias = "gtk_snapshot_append_conic_gradient")]
57    fn append_conic_gradient(
58        &self,
59        bounds: &graphene::Rect,
60        center: &graphene::Point,
61        rotation: f32,
62        stops: &[gsk::ColorStop],
63    ) {
64        let n_stops = stops.len() as _;
65        unsafe {
66            ffi::gtk_snapshot_append_conic_gradient(
67                self.as_ref().to_glib_none().0,
68                bounds.to_glib_none().0,
69                center.to_glib_none().0,
70                rotation,
71                stops.to_glib_none().0,
72                n_stops,
73            );
74        }
75    }
76
77    #[cfg(feature = "v4_14")]
78    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
79    #[doc(alias = "gtk_snapshot_append_fill")]
80    fn append_fill(&self, path: &gsk::Path, fill_rule: gsk::FillRule, color: &gdk::RGBA) {
81        unsafe {
82            ffi::gtk_snapshot_append_fill(
83                self.as_ref().to_glib_none().0,
84                path.to_glib_none().0,
85                fill_rule.into_glib(),
86                color.to_glib_none().0,
87            );
88        }
89    }
90
91    #[doc(alias = "gtk_snapshot_append_inset_shadow")]
92    fn append_inset_shadow(
93        &self,
94        outline: &gsk::RoundedRect,
95        color: &gdk::RGBA,
96        dx: f32,
97        dy: f32,
98        spread: f32,
99        blur_radius: f32,
100    ) {
101        unsafe {
102            ffi::gtk_snapshot_append_inset_shadow(
103                self.as_ref().to_glib_none().0,
104                outline.to_glib_none().0,
105                color.to_glib_none().0,
106                dx,
107                dy,
108                spread,
109                blur_radius,
110            );
111        }
112    }
113
114    #[doc(alias = "gtk_snapshot_append_layout")]
115    fn append_layout(&self, layout: &pango::Layout, color: &gdk::RGBA) {
116        unsafe {
117            ffi::gtk_snapshot_append_layout(
118                self.as_ref().to_glib_none().0,
119                layout.to_glib_none().0,
120                color.to_glib_none().0,
121            );
122        }
123    }
124
125    #[doc(alias = "gtk_snapshot_append_linear_gradient")]
126    fn append_linear_gradient(
127        &self,
128        bounds: &graphene::Rect,
129        start_point: &graphene::Point,
130        end_point: &graphene::Point,
131        stops: &[gsk::ColorStop],
132    ) {
133        let n_stops = stops.len() as _;
134        unsafe {
135            ffi::gtk_snapshot_append_linear_gradient(
136                self.as_ref().to_glib_none().0,
137                bounds.to_glib_none().0,
138                start_point.to_glib_none().0,
139                end_point.to_glib_none().0,
140                stops.to_glib_none().0,
141                n_stops,
142            );
143        }
144    }
145
146    #[doc(alias = "gtk_snapshot_append_node")]
147    fn append_node(&self, node: impl AsRef<gsk::RenderNode>) {
148        unsafe {
149            ffi::gtk_snapshot_append_node(
150                self.as_ref().to_glib_none().0,
151                node.as_ref().to_glib_none().0,
152            );
153        }
154    }
155
156    #[doc(alias = "gtk_snapshot_append_outset_shadow")]
157    fn append_outset_shadow(
158        &self,
159        outline: &gsk::RoundedRect,
160        color: &gdk::RGBA,
161        dx: f32,
162        dy: f32,
163        spread: f32,
164        blur_radius: f32,
165    ) {
166        unsafe {
167            ffi::gtk_snapshot_append_outset_shadow(
168                self.as_ref().to_glib_none().0,
169                outline.to_glib_none().0,
170                color.to_glib_none().0,
171                dx,
172                dy,
173                spread,
174                blur_radius,
175            );
176        }
177    }
178
179    #[doc(alias = "gtk_snapshot_append_radial_gradient")]
180    fn append_radial_gradient(
181        &self,
182        bounds: &graphene::Rect,
183        center: &graphene::Point,
184        hradius: f32,
185        vradius: f32,
186        start: f32,
187        end: f32,
188        stops: &[gsk::ColorStop],
189    ) {
190        let n_stops = stops.len() as _;
191        unsafe {
192            ffi::gtk_snapshot_append_radial_gradient(
193                self.as_ref().to_glib_none().0,
194                bounds.to_glib_none().0,
195                center.to_glib_none().0,
196                hradius,
197                vradius,
198                start,
199                end,
200                stops.to_glib_none().0,
201                n_stops,
202            );
203        }
204    }
205
206    #[doc(alias = "gtk_snapshot_append_repeating_linear_gradient")]
207    fn append_repeating_linear_gradient(
208        &self,
209        bounds: &graphene::Rect,
210        start_point: &graphene::Point,
211        end_point: &graphene::Point,
212        stops: &[gsk::ColorStop],
213    ) {
214        let n_stops = stops.len() as _;
215        unsafe {
216            ffi::gtk_snapshot_append_repeating_linear_gradient(
217                self.as_ref().to_glib_none().0,
218                bounds.to_glib_none().0,
219                start_point.to_glib_none().0,
220                end_point.to_glib_none().0,
221                stops.to_glib_none().0,
222                n_stops,
223            );
224        }
225    }
226
227    #[doc(alias = "gtk_snapshot_append_repeating_radial_gradient")]
228    fn append_repeating_radial_gradient(
229        &self,
230        bounds: &graphene::Rect,
231        center: &graphene::Point,
232        hradius: f32,
233        vradius: f32,
234        start: f32,
235        end: f32,
236        stops: &[gsk::ColorStop],
237    ) {
238        let n_stops = stops.len() as _;
239        unsafe {
240            ffi::gtk_snapshot_append_repeating_radial_gradient(
241                self.as_ref().to_glib_none().0,
242                bounds.to_glib_none().0,
243                center.to_glib_none().0,
244                hradius,
245                vradius,
246                start,
247                end,
248                stops.to_glib_none().0,
249                n_stops,
250            );
251        }
252    }
253
254    #[cfg(feature = "v4_10")]
255    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
256    #[doc(alias = "gtk_snapshot_append_scaled_texture")]
257    fn append_scaled_texture(
258        &self,
259        texture: &impl IsA<gdk::Texture>,
260        filter: gsk::ScalingFilter,
261        bounds: &graphene::Rect,
262    ) {
263        unsafe {
264            ffi::gtk_snapshot_append_scaled_texture(
265                self.as_ref().to_glib_none().0,
266                texture.as_ref().to_glib_none().0,
267                filter.into_glib(),
268                bounds.to_glib_none().0,
269            );
270        }
271    }
272
273    #[cfg(feature = "v4_14")]
274    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
275    #[doc(alias = "gtk_snapshot_append_stroke")]
276    fn append_stroke(&self, path: &gsk::Path, stroke: &gsk::Stroke, color: &gdk::RGBA) {
277        unsafe {
278            ffi::gtk_snapshot_append_stroke(
279                self.as_ref().to_glib_none().0,
280                path.to_glib_none().0,
281                stroke.to_glib_none().0,
282                color.to_glib_none().0,
283            );
284        }
285    }
286
287    #[doc(alias = "gtk_snapshot_append_texture")]
288    fn append_texture(&self, texture: &impl IsA<gdk::Texture>, bounds: &graphene::Rect) {
289        unsafe {
290            ffi::gtk_snapshot_append_texture(
291                self.as_ref().to_glib_none().0,
292                texture.as_ref().to_glib_none().0,
293                bounds.to_glib_none().0,
294            );
295        }
296    }
297
298    #[doc(alias = "gtk_snapshot_free_to_node")]
299    #[doc(alias = "free_to_node")]
300    fn to_node(self) -> Option<gsk::RenderNode> {
301        unsafe {
302            from_glib_full(ffi::gtk_snapshot_free_to_node(
303                self.upcast().into_glib_ptr(),
304            ))
305        }
306    }
307
308    #[doc(alias = "gtk_snapshot_free_to_paintable")]
309    #[doc(alias = "free_to_paintable")]
310    fn to_paintable(self, size: Option<&graphene::Size>) -> Option<gdk::Paintable> {
311        unsafe {
312            from_glib_full(ffi::gtk_snapshot_free_to_paintable(
313                self.upcast().into_glib_ptr(),
314                size.to_glib_none().0,
315            ))
316        }
317    }
318
319    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
320    #[allow(deprecated)]
321    #[doc(alias = "gtk_snapshot_gl_shader_pop_texture")]
322    fn gl_shader_pop_texture(&self) {
323        unsafe {
324            ffi::gtk_snapshot_gl_shader_pop_texture(self.as_ref().to_glib_none().0);
325        }
326    }
327
328    #[doc(alias = "gtk_snapshot_perspective")]
329    fn perspective(&self, depth: f32) {
330        unsafe {
331            ffi::gtk_snapshot_perspective(self.as_ref().to_glib_none().0, depth);
332        }
333    }
334
335    #[doc(alias = "gtk_snapshot_pop")]
336    fn pop(&self) {
337        unsafe {
338            ffi::gtk_snapshot_pop(self.as_ref().to_glib_none().0);
339        }
340    }
341
342    #[doc(alias = "gtk_snapshot_push_blend")]
343    fn push_blend(&self, blend_mode: gsk::BlendMode) {
344        unsafe {
345            ffi::gtk_snapshot_push_blend(self.as_ref().to_glib_none().0, blend_mode.into_glib());
346        }
347    }
348
349    #[doc(alias = "gtk_snapshot_push_blur")]
350    fn push_blur(&self, radius: f64) {
351        unsafe {
352            ffi::gtk_snapshot_push_blur(self.as_ref().to_glib_none().0, radius);
353        }
354    }
355
356    #[doc(alias = "gtk_snapshot_push_clip")]
357    fn push_clip(&self, bounds: &graphene::Rect) {
358        unsafe {
359            ffi::gtk_snapshot_push_clip(self.as_ref().to_glib_none().0, bounds.to_glib_none().0);
360        }
361    }
362
363    #[doc(alias = "gtk_snapshot_push_color_matrix")]
364    fn push_color_matrix(&self, color_matrix: &graphene::Matrix, color_offset: &graphene::Vec4) {
365        unsafe {
366            ffi::gtk_snapshot_push_color_matrix(
367                self.as_ref().to_glib_none().0,
368                color_matrix.to_glib_none().0,
369                color_offset.to_glib_none().0,
370            );
371        }
372    }
373
374    #[cfg(feature = "v4_20")]
375    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
376    #[doc(alias = "gtk_snapshot_push_component_transfer")]
377    fn push_component_transfer(
378        &self,
379        red: &gsk::ComponentTransfer,
380        green: &gsk::ComponentTransfer,
381        blue: &gsk::ComponentTransfer,
382        alpha: &gsk::ComponentTransfer,
383    ) {
384        unsafe {
385            ffi::gtk_snapshot_push_component_transfer(
386                self.as_ref().to_glib_none().0,
387                red.to_glib_none().0,
388                green.to_glib_none().0,
389                blue.to_glib_none().0,
390                alpha.to_glib_none().0,
391            );
392        }
393    }
394
395    #[doc(alias = "gtk_snapshot_push_cross_fade")]
396    fn push_cross_fade(&self, progress: f64) {
397        unsafe {
398            ffi::gtk_snapshot_push_cross_fade(self.as_ref().to_glib_none().0, progress);
399        }
400    }
401
402    #[cfg(feature = "v4_14")]
403    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
404    #[doc(alias = "gtk_snapshot_push_fill")]
405    fn push_fill(&self, path: &gsk::Path, fill_rule: gsk::FillRule) {
406        unsafe {
407            ffi::gtk_snapshot_push_fill(
408                self.as_ref().to_glib_none().0,
409                path.to_glib_none().0,
410                fill_rule.into_glib(),
411            );
412        }
413    }
414
415    #[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
416    #[allow(deprecated)]
417    #[doc(alias = "gtk_snapshot_push_gl_shader")]
418    fn push_gl_shader(
419        &self,
420        shader: &gsk::GLShader,
421        bounds: &graphene::Rect,
422        take_args: glib::Bytes,
423    ) {
424        unsafe {
425            ffi::gtk_snapshot_push_gl_shader(
426                self.as_ref().to_glib_none().0,
427                shader.to_glib_none().0,
428                bounds.to_glib_none().0,
429                take_args.into_glib_ptr(),
430            );
431        }
432    }
433
434    #[cfg(feature = "v4_10")]
435    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
436    #[doc(alias = "gtk_snapshot_push_mask")]
437    fn push_mask(&self, mask_mode: gsk::MaskMode) {
438        unsafe {
439            ffi::gtk_snapshot_push_mask(self.as_ref().to_glib_none().0, mask_mode.into_glib());
440        }
441    }
442
443    #[doc(alias = "gtk_snapshot_push_opacity")]
444    fn push_opacity(&self, opacity: f64) {
445        unsafe {
446            ffi::gtk_snapshot_push_opacity(self.as_ref().to_glib_none().0, opacity);
447        }
448    }
449
450    #[doc(alias = "gtk_snapshot_push_repeat")]
451    fn push_repeat(&self, bounds: &graphene::Rect, child_bounds: Option<&graphene::Rect>) {
452        unsafe {
453            ffi::gtk_snapshot_push_repeat(
454                self.as_ref().to_glib_none().0,
455                bounds.to_glib_none().0,
456                child_bounds.to_glib_none().0,
457            );
458        }
459    }
460
461    #[doc(alias = "gtk_snapshot_push_rounded_clip")]
462    fn push_rounded_clip(&self, bounds: &gsk::RoundedRect) {
463        unsafe {
464            ffi::gtk_snapshot_push_rounded_clip(
465                self.as_ref().to_glib_none().0,
466                bounds.to_glib_none().0,
467            );
468        }
469    }
470
471    #[doc(alias = "gtk_snapshot_push_shadow")]
472    fn push_shadow(&self, shadow: &[gsk::Shadow]) {
473        let n_shadows = shadow.len() as _;
474        unsafe {
475            ffi::gtk_snapshot_push_shadow(
476                self.as_ref().to_glib_none().0,
477                shadow.to_glib_none().0,
478                n_shadows,
479            );
480        }
481    }
482
483    #[cfg(feature = "v4_14")]
484    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
485    #[doc(alias = "gtk_snapshot_push_stroke")]
486    fn push_stroke(&self, path: &gsk::Path, stroke: &gsk::Stroke) {
487        unsafe {
488            ffi::gtk_snapshot_push_stroke(
489                self.as_ref().to_glib_none().0,
490                path.to_glib_none().0,
491                stroke.to_glib_none().0,
492            );
493        }
494    }
495
496    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
497    #[allow(deprecated)]
498    #[doc(alias = "gtk_snapshot_render_background")]
499    fn render_background(
500        &self,
501        context: &impl IsA<StyleContext>,
502        x: f64,
503        y: f64,
504        width: f64,
505        height: f64,
506    ) {
507        unsafe {
508            ffi::gtk_snapshot_render_background(
509                self.as_ref().to_glib_none().0,
510                context.as_ref().to_glib_none().0,
511                x,
512                y,
513                width,
514                height,
515            );
516        }
517    }
518
519    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
520    #[allow(deprecated)]
521    #[doc(alias = "gtk_snapshot_render_focus")]
522    fn render_focus(
523        &self,
524        context: &impl IsA<StyleContext>,
525        x: f64,
526        y: f64,
527        width: f64,
528        height: f64,
529    ) {
530        unsafe {
531            ffi::gtk_snapshot_render_focus(
532                self.as_ref().to_glib_none().0,
533                context.as_ref().to_glib_none().0,
534                x,
535                y,
536                width,
537                height,
538            );
539        }
540    }
541
542    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
543    #[allow(deprecated)]
544    #[doc(alias = "gtk_snapshot_render_frame")]
545    fn render_frame(
546        &self,
547        context: &impl IsA<StyleContext>,
548        x: f64,
549        y: f64,
550        width: f64,
551        height: f64,
552    ) {
553        unsafe {
554            ffi::gtk_snapshot_render_frame(
555                self.as_ref().to_glib_none().0,
556                context.as_ref().to_glib_none().0,
557                x,
558                y,
559                width,
560                height,
561            );
562        }
563    }
564
565    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
566    #[allow(deprecated)]
567    #[doc(alias = "gtk_snapshot_render_insertion_cursor")]
568    fn render_insertion_cursor(
569        &self,
570        context: &impl IsA<StyleContext>,
571        x: f64,
572        y: f64,
573        layout: &pango::Layout,
574        index: i32,
575        direction: pango::Direction,
576    ) {
577        unsafe {
578            ffi::gtk_snapshot_render_insertion_cursor(
579                self.as_ref().to_glib_none().0,
580                context.as_ref().to_glib_none().0,
581                x,
582                y,
583                layout.to_glib_none().0,
584                index,
585                direction.into_glib(),
586            );
587        }
588    }
589
590    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
591    #[allow(deprecated)]
592    #[doc(alias = "gtk_snapshot_render_layout")]
593    fn render_layout(
594        &self,
595        context: &impl IsA<StyleContext>,
596        x: f64,
597        y: f64,
598        layout: &pango::Layout,
599    ) {
600        unsafe {
601            ffi::gtk_snapshot_render_layout(
602                self.as_ref().to_glib_none().0,
603                context.as_ref().to_glib_none().0,
604                x,
605                y,
606                layout.to_glib_none().0,
607            );
608        }
609    }
610
611    #[doc(alias = "gtk_snapshot_restore")]
612    fn restore(&self) {
613        unsafe {
614            ffi::gtk_snapshot_restore(self.as_ref().to_glib_none().0);
615        }
616    }
617
618    #[doc(alias = "gtk_snapshot_rotate")]
619    fn rotate(&self, angle: f32) {
620        unsafe {
621            ffi::gtk_snapshot_rotate(self.as_ref().to_glib_none().0, angle);
622        }
623    }
624
625    #[doc(alias = "gtk_snapshot_rotate_3d")]
626    fn rotate_3d(&self, angle: f32, axis: &graphene::Vec3) {
627        unsafe {
628            ffi::gtk_snapshot_rotate_3d(
629                self.as_ref().to_glib_none().0,
630                angle,
631                axis.to_glib_none().0,
632            );
633        }
634    }
635
636    #[doc(alias = "gtk_snapshot_save")]
637    fn save(&self) {
638        unsafe {
639            ffi::gtk_snapshot_save(self.as_ref().to_glib_none().0);
640        }
641    }
642
643    #[doc(alias = "gtk_snapshot_scale")]
644    fn scale(&self, factor_x: f32, factor_y: f32) {
645        unsafe {
646            ffi::gtk_snapshot_scale(self.as_ref().to_glib_none().0, factor_x, factor_y);
647        }
648    }
649
650    #[doc(alias = "gtk_snapshot_scale_3d")]
651    fn scale_3d(&self, factor_x: f32, factor_y: f32, factor_z: f32) {
652        unsafe {
653            ffi::gtk_snapshot_scale_3d(
654                self.as_ref().to_glib_none().0,
655                factor_x,
656                factor_y,
657                factor_z,
658            );
659        }
660    }
661
662    #[doc(alias = "gtk_snapshot_transform")]
663    fn transform(&self, transform: Option<&gsk::Transform>) {
664        unsafe {
665            ffi::gtk_snapshot_transform(self.as_ref().to_glib_none().0, transform.to_glib_none().0);
666        }
667    }
668
669    #[doc(alias = "gtk_snapshot_transform_matrix")]
670    fn transform_matrix(&self, matrix: &graphene::Matrix) {
671        unsafe {
672            ffi::gtk_snapshot_transform_matrix(
673                self.as_ref().to_glib_none().0,
674                matrix.to_glib_none().0,
675            );
676        }
677    }
678
679    #[doc(alias = "gtk_snapshot_translate")]
680    fn translate(&self, point: &graphene::Point) {
681        unsafe {
682            ffi::gtk_snapshot_translate(self.as_ref().to_glib_none().0, point.to_glib_none().0);
683        }
684    }
685
686    #[doc(alias = "gtk_snapshot_translate_3d")]
687    fn translate_3d(&self, point: &graphene::Point3D) {
688        unsafe {
689            ffi::gtk_snapshot_translate_3d(self.as_ref().to_glib_none().0, point.to_glib_none().0);
690        }
691    }
692}
693
694impl<O: IsA<Snapshot>> SnapshotExt for O {}