gtk4/auto/
functions.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
5#[cfg(target_os = "linux")]
6#[cfg_attr(docsrs, doc(cfg(target_os = "linux")))]
7use crate::Printer;
8use crate::{
9    ffi, Accessible, AccessibleProperty, AccessibleRelation, AccessibleRole, AccessibleState,
10    DebugFlags, PageSetup, PrintSettings, StyleContext, TextDirection, TreeModel, TreePath, Widget,
11    Window,
12};
13use glib::{prelude::*, translate::*};
14use std::boxed::Box as Box_;
15
16#[doc(alias = "gtk_accelerator_get_default_mod_mask")]
17pub fn accelerator_get_default_mod_mask() -> gdk::ModifierType {
18    assert_initialized_main_thread!();
19    unsafe { from_glib(ffi::gtk_accelerator_get_default_mod_mask()) }
20}
21
22#[doc(alias = "gtk_check_version")]
23pub fn check_version(
24    required_major: u32,
25    required_minor: u32,
26    required_micro: u32,
27) -> Option<glib::GString> {
28    skip_assert_initialized!();
29    unsafe {
30        from_glib_none(ffi::gtk_check_version(
31            required_major,
32            required_minor,
33            required_micro,
34        ))
35    }
36}
37
38#[cfg(feature = "v4_18")]
39#[cfg_attr(docsrs, doc(cfg(feature = "v4_18")))]
40#[doc(alias = "gtk_disable_portals")]
41pub fn disable_portals() {
42    assert_not_initialized!();
43    unsafe {
44        ffi::gtk_disable_portals();
45    }
46}
47
48#[doc(alias = "gtk_disable_setlocale")]
49pub fn disable_setlocale() {
50    assert_not_initialized!();
51    unsafe {
52        ffi::gtk_disable_setlocale();
53    }
54}
55
56//#[doc(alias = "gtk_distribute_natural_allocation")]
57//pub fn distribute_natural_allocation(extra_space: i32, sizes: /*Ignored*/&[RequestedSize]) -> i32 {
58//    unsafe { TODO: call ffi:gtk_distribute_natural_allocation() }
59//}
60
61#[cfg(target_os = "linux")]
62#[cfg_attr(docsrs, doc(cfg(target_os = "linux")))]
63#[doc(alias = "gtk_enumerate_printers")]
64pub fn enumerate_printers<P: Fn(&Printer) -> bool + Send + Sync + 'static>(func: P, wait: bool) {
65    assert_initialized_main_thread!();
66    let func_data: Box_<P> = Box_::new(func);
67    unsafe extern "C" fn func_func<P: Fn(&Printer) -> bool + Send + Sync + 'static>(
68        printer: *mut ffi::GtkPrinter,
69        data: glib::ffi::gpointer,
70    ) -> glib::ffi::gboolean {
71        let printer = from_glib_borrow(printer);
72        let callback = &*(data as *mut P);
73        (*callback)(&printer).into_glib()
74    }
75    let func = Some(func_func::<P> as _);
76    unsafe extern "C" fn destroy_func<P: Fn(&Printer) -> bool + Send + Sync + 'static>(
77        data: glib::ffi::gpointer,
78    ) {
79        let _callback = Box_::from_raw(data as *mut P);
80    }
81    let destroy_call2 = Some(destroy_func::<P> as _);
82    let super_callback0: Box_<P> = func_data;
83    unsafe {
84        ffi::gtk_enumerate_printers(
85            func,
86            Box_::into_raw(super_callback0) as *mut _,
87            destroy_call2,
88            wait.into_glib(),
89        );
90    }
91}
92
93#[doc(alias = "gtk_get_binary_age")]
94#[doc(alias = "get_binary_age")]
95pub fn binary_age() -> u32 {
96    skip_assert_initialized!();
97    unsafe { ffi::gtk_get_binary_age() }
98}
99
100#[doc(alias = "gtk_get_debug_flags")]
101#[doc(alias = "get_debug_flags")]
102pub fn debug_flags() -> DebugFlags {
103    assert_initialized_main_thread!();
104    unsafe { from_glib(ffi::gtk_get_debug_flags()) }
105}
106
107#[doc(alias = "gtk_get_default_language")]
108#[doc(alias = "get_default_language")]
109pub fn default_language() -> pango::Language {
110    assert_initialized_main_thread!();
111    unsafe { from_glib_none(ffi::gtk_get_default_language()) }
112}
113
114#[doc(alias = "gtk_get_interface_age")]
115#[doc(alias = "get_interface_age")]
116pub fn interface_age() -> u32 {
117    skip_assert_initialized!();
118    unsafe { ffi::gtk_get_interface_age() }
119}
120
121#[doc(alias = "gtk_get_locale_direction")]
122#[doc(alias = "get_locale_direction")]
123pub fn locale_direction() -> TextDirection {
124    assert_initialized_main_thread!();
125    unsafe { from_glib(ffi::gtk_get_locale_direction()) }
126}
127
128#[doc(alias = "gtk_get_major_version")]
129#[doc(alias = "get_major_version")]
130pub fn major_version() -> u32 {
131    skip_assert_initialized!();
132    unsafe { ffi::gtk_get_major_version() }
133}
134
135#[doc(alias = "gtk_get_micro_version")]
136#[doc(alias = "get_micro_version")]
137pub fn micro_version() -> u32 {
138    skip_assert_initialized!();
139    unsafe { ffi::gtk_get_micro_version() }
140}
141
142#[doc(alias = "gtk_get_minor_version")]
143#[doc(alias = "get_minor_version")]
144pub fn minor_version() -> u32 {
145    skip_assert_initialized!();
146    unsafe { ffi::gtk_get_minor_version() }
147}
148
149#[doc(alias = "gtk_hsv_to_rgb")]
150pub fn hsv_to_rgb(h: f32, s: f32, v: f32) -> (f32, f32, f32) {
151    assert_initialized_main_thread!();
152    unsafe {
153        let mut r = std::mem::MaybeUninit::uninit();
154        let mut g = std::mem::MaybeUninit::uninit();
155        let mut b = std::mem::MaybeUninit::uninit();
156        ffi::gtk_hsv_to_rgb(h, s, v, r.as_mut_ptr(), g.as_mut_ptr(), b.as_mut_ptr());
157        (r.assume_init(), g.assume_init(), b.assume_init())
158    }
159}
160
161#[doc(alias = "gtk_print_run_page_setup_dialog")]
162pub fn print_run_page_setup_dialog(
163    parent: Option<&impl IsA<Window>>,
164    page_setup: Option<&PageSetup>,
165    settings: &PrintSettings,
166) -> PageSetup {
167    skip_assert_initialized!();
168    unsafe {
169        from_glib_full(ffi::gtk_print_run_page_setup_dialog(
170            parent.map(|p| p.as_ref()).to_glib_none().0,
171            page_setup.to_glib_none().0,
172            settings.to_glib_none().0,
173        ))
174    }
175}
176
177#[doc(alias = "gtk_print_run_page_setup_dialog_async")]
178pub fn print_run_page_setup_dialog_async<P: FnOnce(&PageSetup) + Send + Sync + 'static>(
179    parent: Option<&impl IsA<Window>>,
180    page_setup: Option<&PageSetup>,
181    settings: &PrintSettings,
182    done_cb: P,
183) {
184    skip_assert_initialized!();
185    let done_cb_data: Box_<P> = Box_::new(done_cb);
186    unsafe extern "C" fn done_cb_func<P: FnOnce(&PageSetup) + Send + Sync + 'static>(
187        page_setup: *mut ffi::GtkPageSetup,
188        data: glib::ffi::gpointer,
189    ) {
190        let page_setup = from_glib_borrow(page_setup);
191        let callback = Box_::from_raw(data as *mut P);
192        (*callback)(&page_setup)
193    }
194    let done_cb = Some(done_cb_func::<P> as _);
195    let super_callback0: Box_<P> = done_cb_data;
196    unsafe {
197        ffi::gtk_print_run_page_setup_dialog_async(
198            parent.map(|p| p.as_ref()).to_glib_none().0,
199            page_setup.to_glib_none().0,
200            settings.to_glib_none().0,
201            done_cb,
202            Box_::into_raw(super_callback0) as *mut _,
203        );
204    }
205}
206
207#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
208#[allow(deprecated)]
209#[doc(alias = "gtk_render_activity")]
210pub fn render_activity(
211    context: &impl IsA<StyleContext>,
212    cr: &cairo::Context,
213    x: f64,
214    y: f64,
215    width: f64,
216    height: f64,
217) {
218    skip_assert_initialized!();
219    unsafe {
220        ffi::gtk_render_activity(
221            context.as_ref().to_glib_none().0,
222            mut_override(cr.to_glib_none().0),
223            x,
224            y,
225            width,
226            height,
227        );
228    }
229}
230
231#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
232#[allow(deprecated)]
233#[doc(alias = "gtk_render_arrow")]
234pub fn render_arrow(
235    context: &impl IsA<StyleContext>,
236    cr: &cairo::Context,
237    angle: f64,
238    x: f64,
239    y: f64,
240    size: f64,
241) {
242    skip_assert_initialized!();
243    unsafe {
244        ffi::gtk_render_arrow(
245            context.as_ref().to_glib_none().0,
246            mut_override(cr.to_glib_none().0),
247            angle,
248            x,
249            y,
250            size,
251        );
252    }
253}
254
255#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
256#[allow(deprecated)]
257#[doc(alias = "gtk_render_background")]
258pub fn render_background(
259    context: &impl IsA<StyleContext>,
260    cr: &cairo::Context,
261    x: f64,
262    y: f64,
263    width: f64,
264    height: f64,
265) {
266    skip_assert_initialized!();
267    unsafe {
268        ffi::gtk_render_background(
269            context.as_ref().to_glib_none().0,
270            mut_override(cr.to_glib_none().0),
271            x,
272            y,
273            width,
274            height,
275        );
276    }
277}
278
279#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
280#[allow(deprecated)]
281#[doc(alias = "gtk_render_check")]
282pub fn render_check(
283    context: &impl IsA<StyleContext>,
284    cr: &cairo::Context,
285    x: f64,
286    y: f64,
287    width: f64,
288    height: f64,
289) {
290    skip_assert_initialized!();
291    unsafe {
292        ffi::gtk_render_check(
293            context.as_ref().to_glib_none().0,
294            mut_override(cr.to_glib_none().0),
295            x,
296            y,
297            width,
298            height,
299        );
300    }
301}
302
303#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
304#[allow(deprecated)]
305#[doc(alias = "gtk_render_expander")]
306pub fn render_expander(
307    context: &impl IsA<StyleContext>,
308    cr: &cairo::Context,
309    x: f64,
310    y: f64,
311    width: f64,
312    height: f64,
313) {
314    skip_assert_initialized!();
315    unsafe {
316        ffi::gtk_render_expander(
317            context.as_ref().to_glib_none().0,
318            mut_override(cr.to_glib_none().0),
319            x,
320            y,
321            width,
322            height,
323        );
324    }
325}
326
327#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
328#[allow(deprecated)]
329#[doc(alias = "gtk_render_focus")]
330pub fn render_focus(
331    context: &impl IsA<StyleContext>,
332    cr: &cairo::Context,
333    x: f64,
334    y: f64,
335    width: f64,
336    height: f64,
337) {
338    skip_assert_initialized!();
339    unsafe {
340        ffi::gtk_render_focus(
341            context.as_ref().to_glib_none().0,
342            mut_override(cr.to_glib_none().0),
343            x,
344            y,
345            width,
346            height,
347        );
348    }
349}
350
351#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
352#[allow(deprecated)]
353#[doc(alias = "gtk_render_frame")]
354pub fn render_frame(
355    context: &impl IsA<StyleContext>,
356    cr: &cairo::Context,
357    x: f64,
358    y: f64,
359    width: f64,
360    height: f64,
361) {
362    skip_assert_initialized!();
363    unsafe {
364        ffi::gtk_render_frame(
365            context.as_ref().to_glib_none().0,
366            mut_override(cr.to_glib_none().0),
367            x,
368            y,
369            width,
370            height,
371        );
372    }
373}
374
375#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
376#[allow(deprecated)]
377#[doc(alias = "gtk_render_handle")]
378pub fn render_handle(
379    context: &impl IsA<StyleContext>,
380    cr: &cairo::Context,
381    x: f64,
382    y: f64,
383    width: f64,
384    height: f64,
385) {
386    skip_assert_initialized!();
387    unsafe {
388        ffi::gtk_render_handle(
389            context.as_ref().to_glib_none().0,
390            mut_override(cr.to_glib_none().0),
391            x,
392            y,
393            width,
394            height,
395        );
396    }
397}
398
399#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
400#[allow(deprecated)]
401#[doc(alias = "gtk_render_icon")]
402pub fn render_icon(
403    context: &impl IsA<StyleContext>,
404    cr: &cairo::Context,
405    texture: &impl IsA<gdk::Texture>,
406    x: f64,
407    y: f64,
408) {
409    skip_assert_initialized!();
410    unsafe {
411        ffi::gtk_render_icon(
412            context.as_ref().to_glib_none().0,
413            mut_override(cr.to_glib_none().0),
414            texture.as_ref().to_glib_none().0,
415            x,
416            y,
417        );
418    }
419}
420
421#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
422#[allow(deprecated)]
423#[doc(alias = "gtk_render_layout")]
424pub fn render_layout(
425    context: &impl IsA<StyleContext>,
426    cr: &cairo::Context,
427    x: f64,
428    y: f64,
429    layout: &pango::Layout,
430) {
431    skip_assert_initialized!();
432    unsafe {
433        ffi::gtk_render_layout(
434            context.as_ref().to_glib_none().0,
435            mut_override(cr.to_glib_none().0),
436            x,
437            y,
438            layout.to_glib_none().0,
439        );
440    }
441}
442
443#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
444#[allow(deprecated)]
445#[doc(alias = "gtk_render_line")]
446pub fn render_line(
447    context: &impl IsA<StyleContext>,
448    cr: &cairo::Context,
449    x0: f64,
450    y0: f64,
451    x1: f64,
452    y1: f64,
453) {
454    skip_assert_initialized!();
455    unsafe {
456        ffi::gtk_render_line(
457            context.as_ref().to_glib_none().0,
458            mut_override(cr.to_glib_none().0),
459            x0,
460            y0,
461            x1,
462            y1,
463        );
464    }
465}
466
467#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
468#[allow(deprecated)]
469#[doc(alias = "gtk_render_option")]
470pub fn render_option(
471    context: &impl IsA<StyleContext>,
472    cr: &cairo::Context,
473    x: f64,
474    y: f64,
475    width: f64,
476    height: f64,
477) {
478    skip_assert_initialized!();
479    unsafe {
480        ffi::gtk_render_option(
481            context.as_ref().to_glib_none().0,
482            mut_override(cr.to_glib_none().0),
483            x,
484            y,
485            width,
486            height,
487        );
488    }
489}
490
491#[doc(alias = "gtk_rgb_to_hsv")]
492pub fn rgb_to_hsv(r: f32, g: f32, b: f32) -> (f32, f32, f32) {
493    assert_initialized_main_thread!();
494    unsafe {
495        let mut h = std::mem::MaybeUninit::uninit();
496        let mut s = std::mem::MaybeUninit::uninit();
497        let mut v = std::mem::MaybeUninit::uninit();
498        ffi::gtk_rgb_to_hsv(r, g, b, h.as_mut_ptr(), s.as_mut_ptr(), v.as_mut_ptr());
499        (h.assume_init(), s.assume_init(), v.assume_init())
500    }
501}
502
503#[doc(alias = "gtk_set_debug_flags")]
504pub fn set_debug_flags(flags: DebugFlags) {
505    assert_initialized_main_thread!();
506    unsafe {
507        ffi::gtk_set_debug_flags(flags.into_glib());
508    }
509}
510
511#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
512#[allow(deprecated)]
513#[doc(alias = "gtk_show_uri")]
514pub fn show_uri(parent: Option<&impl IsA<Window>>, uri: &str, timestamp: u32) {
515    assert_initialized_main_thread!();
516    unsafe {
517        ffi::gtk_show_uri(
518            parent.map(|p| p.as_ref()).to_glib_none().0,
519            uri.to_glib_none().0,
520            timestamp,
521        );
522    }
523}
524
525#[doc(alias = "gtk_test_accessible_assertion_message_role")]
526pub fn test_accessible_assertion_message_role(
527    domain: &str,
528    file: &str,
529    line: i32,
530    func: &str,
531    expr: &str,
532    accessible: &impl IsA<Accessible>,
533    expected_role: AccessibleRole,
534    actual_role: AccessibleRole,
535) {
536    skip_assert_initialized!();
537    unsafe {
538        ffi::gtk_test_accessible_assertion_message_role(
539            domain.to_glib_none().0,
540            file.to_glib_none().0,
541            line,
542            func.to_glib_none().0,
543            expr.to_glib_none().0,
544            accessible.as_ref().to_glib_none().0,
545            expected_role.into_glib(),
546            actual_role.into_glib(),
547        );
548    }
549}
550
551#[doc(alias = "gtk_test_accessible_has_property")]
552pub fn test_accessible_has_property(
553    accessible: &impl IsA<Accessible>,
554    property: AccessibleProperty,
555) -> bool {
556    skip_assert_initialized!();
557    unsafe {
558        from_glib(ffi::gtk_test_accessible_has_property(
559            accessible.as_ref().to_glib_none().0,
560            property.into_glib(),
561        ))
562    }
563}
564
565#[doc(alias = "gtk_test_accessible_has_relation")]
566pub fn test_accessible_has_relation(
567    accessible: &impl IsA<Accessible>,
568    relation: AccessibleRelation,
569) -> bool {
570    skip_assert_initialized!();
571    unsafe {
572        from_glib(ffi::gtk_test_accessible_has_relation(
573            accessible.as_ref().to_glib_none().0,
574            relation.into_glib(),
575        ))
576    }
577}
578
579#[doc(alias = "gtk_test_accessible_has_role")]
580pub fn test_accessible_has_role(accessible: &impl IsA<Accessible>, role: AccessibleRole) -> bool {
581    skip_assert_initialized!();
582    unsafe {
583        from_glib(ffi::gtk_test_accessible_has_role(
584            accessible.as_ref().to_glib_none().0,
585            role.into_glib(),
586        ))
587    }
588}
589
590#[doc(alias = "gtk_test_accessible_has_state")]
591pub fn test_accessible_has_state(
592    accessible: &impl IsA<Accessible>,
593    state: AccessibleState,
594) -> bool {
595    skip_assert_initialized!();
596    unsafe {
597        from_glib(ffi::gtk_test_accessible_has_state(
598            accessible.as_ref().to_glib_none().0,
599            state.into_glib(),
600        ))
601    }
602}
603
604//#[doc(alias = "gtk_test_init")]
605//pub fn test_init(argvp: /*Unimplemented*/Vec<glib::GString>, : /*Unknown conversion*//*Unimplemented*/Basic: VarArgs) {
606//    unsafe { TODO: call ffi:gtk_test_init() }
607//}
608
609#[doc(alias = "gtk_test_register_all_types")]
610pub fn test_register_all_types() {
611    assert_initialized_main_thread!();
612    unsafe {
613        ffi::gtk_test_register_all_types();
614    }
615}
616
617#[doc(alias = "gtk_test_widget_wait_for_draw")]
618pub fn test_widget_wait_for_draw(widget: &impl IsA<Widget>) {
619    skip_assert_initialized!();
620    unsafe {
621        ffi::gtk_test_widget_wait_for_draw(widget.as_ref().to_glib_none().0);
622    }
623}
624
625#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
626#[allow(deprecated)]
627#[doc(alias = "gtk_tree_create_row_drag_content")]
628pub fn tree_create_row_drag_content(
629    tree_model: &impl IsA<TreeModel>,
630    path: &TreePath,
631) -> gdk::ContentProvider {
632    skip_assert_initialized!();
633    unsafe {
634        from_glib_full(ffi::gtk_tree_create_row_drag_content(
635            tree_model.as_ref().to_glib_none().0,
636            mut_override(path.to_glib_none().0),
637        ))
638    }
639}
640
641#[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
642#[allow(deprecated)]
643#[doc(alias = "gtk_tree_get_row_drag_data")]
644pub fn tree_get_row_drag_data(
645    value: &glib::Value,
646) -> Option<(Option<TreeModel>, Option<TreePath>)> {
647    assert_initialized_main_thread!();
648    unsafe {
649        let mut tree_model = std::ptr::null_mut();
650        let mut path = std::ptr::null_mut();
651        let ret = from_glib(ffi::gtk_tree_get_row_drag_data(
652            value.to_glib_none().0,
653            &mut tree_model,
654            &mut path,
655        ));
656        if ret {
657            Some((from_glib_none(tree_model), from_glib_full(path)))
658        } else {
659            None
660        }
661    }
662}