gdk/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
5use crate::{Atom, Display, Event, EventType, ModifierType, Screen, Window, WindowState};
6use glib::translate::*;
7use std::{mem, ptr};
8
9#[doc(alias = "gdk_beep")]
10pub fn beep() {
11    assert_initialized_main_thread!();
12    unsafe {
13        ffi::gdk_beep();
14    }
15}
16
17#[doc(alias = "gdk_error_trap_pop")]
18pub fn error_trap_pop() -> i32 {
19    assert_initialized_main_thread!();
20    unsafe { ffi::gdk_error_trap_pop() }
21}
22
23#[doc(alias = "gdk_error_trap_pop_ignored")]
24pub fn error_trap_pop_ignored() {
25    assert_initialized_main_thread!();
26    unsafe {
27        ffi::gdk_error_trap_pop_ignored();
28    }
29}
30
31#[doc(alias = "gdk_error_trap_push")]
32pub fn error_trap_push() {
33    assert_initialized_main_thread!();
34    unsafe {
35        ffi::gdk_error_trap_push();
36    }
37}
38
39#[doc(alias = "gdk_events_get_angle")]
40pub fn events_get_angle(event1: &mut Event, event2: &mut Event) -> Option<f64> {
41    assert_initialized_main_thread!();
42    unsafe {
43        let mut angle = mem::MaybeUninit::uninit();
44        let ret = from_glib(ffi::gdk_events_get_angle(
45            event1.to_glib_none_mut().0,
46            event2.to_glib_none_mut().0,
47            angle.as_mut_ptr(),
48        ));
49        if ret {
50            Some(angle.assume_init())
51        } else {
52            None
53        }
54    }
55}
56
57#[doc(alias = "gdk_events_get_center")]
58pub fn events_get_center(event1: &mut Event, event2: &mut Event) -> Option<(f64, f64)> {
59    assert_initialized_main_thread!();
60    unsafe {
61        let mut x = mem::MaybeUninit::uninit();
62        let mut y = mem::MaybeUninit::uninit();
63        let ret = from_glib(ffi::gdk_events_get_center(
64            event1.to_glib_none_mut().0,
65            event2.to_glib_none_mut().0,
66            x.as_mut_ptr(),
67            y.as_mut_ptr(),
68        ));
69        if ret {
70            Some((x.assume_init(), y.assume_init()))
71        } else {
72            None
73        }
74    }
75}
76
77#[doc(alias = "gdk_events_get_distance")]
78pub fn events_get_distance(event1: &mut Event, event2: &mut Event) -> Option<f64> {
79    assert_initialized_main_thread!();
80    unsafe {
81        let mut distance = mem::MaybeUninit::uninit();
82        let ret = from_glib(ffi::gdk_events_get_distance(
83            event1.to_glib_none_mut().0,
84            event2.to_glib_none_mut().0,
85            distance.as_mut_ptr(),
86        ));
87        if ret {
88            Some(distance.assume_init())
89        } else {
90            None
91        }
92    }
93}
94
95#[doc(alias = "gdk_events_pending")]
96pub fn events_pending() -> bool {
97    assert_initialized_main_thread!();
98    unsafe { from_glib(ffi::gdk_events_pending()) }
99}
100
101#[doc(alias = "gdk_flush")]
102pub fn flush() {
103    assert_initialized_main_thread!();
104    unsafe {
105        ffi::gdk_flush();
106    }
107}
108
109#[doc(alias = "gdk_get_display_arg_name")]
110#[doc(alias = "get_display_arg_name")]
111pub fn display_arg_name() -> Option<glib::GString> {
112    assert_initialized_main_thread!();
113    unsafe { from_glib_none(ffi::gdk_get_display_arg_name()) }
114}
115
116#[doc(alias = "gdk_get_program_class")]
117#[doc(alias = "get_program_class")]
118pub fn program_class() -> Option<glib::GString> {
119    assert_initialized_main_thread!();
120    unsafe { from_glib_none(ffi::gdk_get_program_class()) }
121}
122
123#[doc(alias = "gdk_get_show_events")]
124#[doc(alias = "get_show_events")]
125pub fn shows_events() -> bool {
126    assert_initialized_main_thread!();
127    unsafe { from_glib(ffi::gdk_get_show_events()) }
128}
129
130#[doc(alias = "gdk_notify_startup_complete")]
131pub fn notify_startup_complete() {
132    assert_initialized_main_thread!();
133    unsafe {
134        ffi::gdk_notify_startup_complete();
135    }
136}
137
138#[doc(alias = "gdk_notify_startup_complete_with_id")]
139pub fn notify_startup_complete_with_id(startup_id: &str) {
140    assert_initialized_main_thread!();
141    unsafe {
142        ffi::gdk_notify_startup_complete_with_id(startup_id.to_glib_none().0);
143    }
144}
145
146#[doc(alias = "gdk_pango_context_get")]
147pub fn pango_context_get() -> Option<pango::Context> {
148    assert_initialized_main_thread!();
149    unsafe { from_glib_full(ffi::gdk_pango_context_get()) }
150}
151
152#[doc(alias = "gdk_pango_context_get_for_display")]
153pub fn pango_context_get_for_display(display: &Display) -> Option<pango::Context> {
154    skip_assert_initialized!();
155    unsafe {
156        from_glib_full(ffi::gdk_pango_context_get_for_display(
157            display.to_glib_none().0,
158        ))
159    }
160}
161
162#[doc(alias = "gdk_pango_context_get_for_screen")]
163pub fn pango_context_get_for_screen(screen: &Screen) -> Option<pango::Context> {
164    skip_assert_initialized!();
165    unsafe {
166        from_glib_full(ffi::gdk_pango_context_get_for_screen(
167            screen.to_glib_none().0,
168        ))
169    }
170}
171
172//#[doc(alias = "gdk_pango_layout_line_get_clip_region")]
173//pub fn pango_layout_line_get_clip_region(line: &pango::LayoutLine, x_origin: i32, y_origin: i32, index_ranges: &[i32], n_ranges: i32) -> Option<cairo::Region> {
174//    unsafe { TODO: call ffi:gdk_pango_layout_line_get_clip_region() }
175//}
176
177#[doc(alias = "gdk_pixbuf_get_from_surface")]
178pub fn pixbuf_get_from_surface(
179    surface: &cairo::Surface,
180    src_x: i32,
181    src_y: i32,
182    width: i32,
183    height: i32,
184) -> Option<gdk_pixbuf::Pixbuf> {
185    assert_initialized_main_thread!();
186    unsafe {
187        from_glib_full(ffi::gdk_pixbuf_get_from_surface(
188            mut_override(surface.to_glib_none().0),
189            src_x,
190            src_y,
191            width,
192            height,
193        ))
194    }
195}
196
197#[doc(alias = "gdk_property_delete")]
198pub fn property_delete(window: &Window, property: &Atom) {
199    skip_assert_initialized!();
200    unsafe {
201        ffi::gdk_property_delete(window.to_glib_none().0, property.to_glib_none().0);
202    }
203}
204
205#[doc(alias = "gdk_property_get")]
206pub fn property_get(
207    window: &Window,
208    property: &Atom,
209    type_: &Atom,
210    offset: libc::c_ulong,
211    length: libc::c_ulong,
212    pdelete: i32,
213) -> Option<(Atom, i32, Vec<u8>)> {
214    skip_assert_initialized!();
215    unsafe {
216        let mut actual_property_type = Atom::uninitialized();
217        let mut actual_format = mem::MaybeUninit::uninit();
218        let mut actual_length = mem::MaybeUninit::uninit();
219        let mut data = ptr::null_mut();
220        let ret = from_glib(ffi::gdk_property_get(
221            window.to_glib_none().0,
222            property.to_glib_none().0,
223            type_.to_glib_none().0,
224            offset,
225            length,
226            pdelete,
227            actual_property_type.to_glib_none_mut().0,
228            actual_format.as_mut_ptr(),
229            actual_length.as_mut_ptr(),
230            &mut data,
231        ));
232        if ret {
233            Some((
234                actual_property_type,
235                actual_format.assume_init(),
236                FromGlibContainer::from_glib_full_num(data, actual_length.assume_init() as _),
237            ))
238        } else {
239            None
240        }
241    }
242}
243
244#[doc(alias = "gdk_selection_convert")]
245pub fn selection_convert(requestor: &Window, selection: &Atom, target: &Atom, time_: u32) {
246    skip_assert_initialized!();
247    unsafe {
248        ffi::gdk_selection_convert(
249            requestor.to_glib_none().0,
250            selection.to_glib_none().0,
251            target.to_glib_none().0,
252            time_,
253        );
254    }
255}
256
257#[doc(alias = "gdk_selection_owner_get")]
258pub fn selection_owner_get(selection: &Atom) -> Option<Window> {
259    assert_initialized_main_thread!();
260    unsafe { from_glib_none(ffi::gdk_selection_owner_get(selection.to_glib_none().0)) }
261}
262
263#[doc(alias = "gdk_selection_owner_get_for_display")]
264pub fn selection_owner_get_for_display(display: &Display, selection: &Atom) -> Option<Window> {
265    skip_assert_initialized!();
266    unsafe {
267        from_glib_none(ffi::gdk_selection_owner_get_for_display(
268            display.to_glib_none().0,
269            selection.to_glib_none().0,
270        ))
271    }
272}
273
274#[doc(alias = "gdk_selection_owner_set")]
275pub fn selection_owner_set(
276    owner: Option<&Window>,
277    selection: &Atom,
278    time_: u32,
279    send_event: bool,
280) -> bool {
281    assert_initialized_main_thread!();
282    unsafe {
283        from_glib(ffi::gdk_selection_owner_set(
284            owner.to_glib_none().0,
285            selection.to_glib_none().0,
286            time_,
287            send_event.into_glib(),
288        ))
289    }
290}
291
292#[doc(alias = "gdk_selection_owner_set_for_display")]
293pub fn selection_owner_set_for_display(
294    display: &Display,
295    owner: Option<&Window>,
296    selection: &Atom,
297    time_: u32,
298    send_event: bool,
299) -> bool {
300    skip_assert_initialized!();
301    unsafe {
302        from_glib(ffi::gdk_selection_owner_set_for_display(
303            display.to_glib_none().0,
304            owner.to_glib_none().0,
305            selection.to_glib_none().0,
306            time_,
307            send_event.into_glib(),
308        ))
309    }
310}
311
312#[doc(alias = "gdk_selection_send_notify")]
313pub fn selection_send_notify(
314    requestor: &Window,
315    selection: &Atom,
316    target: &Atom,
317    property: &Atom,
318    time_: u32,
319) {
320    skip_assert_initialized!();
321    unsafe {
322        ffi::gdk_selection_send_notify(
323            requestor.to_glib_none().0,
324            selection.to_glib_none().0,
325            target.to_glib_none().0,
326            property.to_glib_none().0,
327            time_,
328        );
329    }
330}
331
332#[doc(alias = "gdk_selection_send_notify_for_display")]
333pub fn selection_send_notify_for_display(
334    display: &Display,
335    requestor: &Window,
336    selection: &Atom,
337    target: &Atom,
338    property: &Atom,
339    time_: u32,
340) {
341    skip_assert_initialized!();
342    unsafe {
343        ffi::gdk_selection_send_notify_for_display(
344            display.to_glib_none().0,
345            requestor.to_glib_none().0,
346            selection.to_glib_none().0,
347            target.to_glib_none().0,
348            property.to_glib_none().0,
349            time_,
350        );
351    }
352}
353
354#[doc(alias = "gdk_set_allowed_backends")]
355pub fn set_allowed_backends(backends: &str) {
356    skip_assert_initialized!();
357    unsafe {
358        ffi::gdk_set_allowed_backends(backends.to_glib_none().0);
359    }
360}
361
362#[doc(alias = "gdk_set_double_click_time")]
363pub fn set_double_click_time(msec: u32) {
364    assert_initialized_main_thread!();
365    unsafe {
366        ffi::gdk_set_double_click_time(msec);
367    }
368}
369
370#[doc(alias = "gdk_set_program_class")]
371pub fn set_program_class(program_class: &str) {
372    assert_initialized_main_thread!();
373    unsafe {
374        ffi::gdk_set_program_class(program_class.to_glib_none().0);
375    }
376}
377
378#[doc(alias = "gdk_set_show_events")]
379pub fn set_show_events(show_events: bool) {
380    assert_initialized_main_thread!();
381    unsafe {
382        ffi::gdk_set_show_events(show_events.into_glib());
383    }
384}
385
386#[doc(alias = "gdk_synthesize_window_state")]
387pub fn synthesize_window_state(window: &Window, unset_flags: WindowState, set_flags: WindowState) {
388    skip_assert_initialized!();
389    unsafe {
390        ffi::gdk_synthesize_window_state(
391            window.to_glib_none().0,
392            unset_flags.into_glib(),
393            set_flags.into_glib(),
394        );
395    }
396}
397
398#[doc(alias = "gdk_test_render_sync")]
399pub fn test_render_sync(window: &Window) {
400    skip_assert_initialized!();
401    unsafe {
402        ffi::gdk_test_render_sync(window.to_glib_none().0);
403    }
404}
405
406#[doc(alias = "gdk_test_simulate_button")]
407pub fn test_simulate_button(
408    window: &Window,
409    x: i32,
410    y: i32,
411    button: u32,
412    modifiers: ModifierType,
413    button_pressrelease: EventType,
414) -> bool {
415    skip_assert_initialized!();
416    unsafe {
417        from_glib(ffi::gdk_test_simulate_button(
418            window.to_glib_none().0,
419            x,
420            y,
421            button,
422            modifiers.into_glib(),
423            button_pressrelease.into_glib(),
424        ))
425    }
426}
427
428#[doc(alias = "gdk_test_simulate_key")]
429pub fn test_simulate_key(
430    window: &Window,
431    x: i32,
432    y: i32,
433    keyval: u32,
434    modifiers: ModifierType,
435    key_pressrelease: EventType,
436) -> bool {
437    skip_assert_initialized!();
438    unsafe {
439        from_glib(ffi::gdk_test_simulate_key(
440            window.to_glib_none().0,
441            x,
442            y,
443            keyval,
444            modifiers.into_glib(),
445            key_pressrelease.into_glib(),
446        ))
447    }
448}
449
450#[doc(alias = "gdk_text_property_to_utf8_list_for_display")]
451pub fn text_property_to_utf8_list_for_display(
452    display: &Display,
453    encoding: &Atom,
454    format: i32,
455    text: &[u8],
456) -> (i32, Vec<glib::GString>) {
457    skip_assert_initialized!();
458    let length = text.len() as _;
459    unsafe {
460        let mut list = ptr::null_mut();
461        let ret = ffi::gdk_text_property_to_utf8_list_for_display(
462            display.to_glib_none().0,
463            encoding.to_glib_none().0,
464            format,
465            text.to_glib_none().0,
466            length,
467            &mut list,
468        );
469        (ret, FromGlibPtrContainer::from_glib_full(list))
470    }
471}
472
473#[doc(alias = "gdk_utf8_to_string_target")]
474pub fn utf8_to_string_target(str: &str) -> Option<glib::GString> {
475    assert_initialized_main_thread!();
476    unsafe { from_glib_full(ffi::gdk_utf8_to_string_target(str.to_glib_none().0)) }
477}