1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use gdk;
use gdk_x11_sys;
#[cfg(any(feature = "v3_16", feature = "dox"))]
use glib::object::IsA;
use glib::translate::*;
use glib::GString;
use std::fmt;
#[cfg(any(feature = "v3_16", feature = "dox"))]
use std::mem;

glib_wrapper! {
    pub struct X11Display(Object<gdk_x11_sys::GdkX11Display, gdk_x11_sys::GdkX11DisplayClass, X11DisplayClass>) @extends gdk::Display;

    match fn {
        get_type => || gdk_x11_sys::gdk_x11_display_get_type(),
    }
}

impl X11Display {
    //pub fn broadcast_startup_message(&self, message_type: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
    //    unsafe { TODO: call gdk_x11_sys:gdk_x11_display_broadcast_startup_message() }
    //}

    pub fn error_trap_pop(&self) -> i32 {
        unsafe { gdk_x11_sys::gdk_x11_display_error_trap_pop(self.to_glib_none().0) }
    }

    pub fn error_trap_pop_ignored(&self) {
        unsafe {
            gdk_x11_sys::gdk_x11_display_error_trap_pop_ignored(self.to_glib_none().0);
        }
    }

    pub fn error_trap_push(&self) {
        unsafe {
            gdk_x11_sys::gdk_x11_display_error_trap_push(self.to_glib_none().0);
        }
    }

    pub fn get_startup_notification_id(&self) -> Option<GString> {
        unsafe {
            from_glib_none(gdk_x11_sys::gdk_x11_display_get_startup_notification_id(
                self.to_glib_none().0,
            ))
        }
    }

    pub fn get_user_time(&self) -> u32 {
        unsafe { gdk_x11_sys::gdk_x11_display_get_user_time(self.to_glib_none().0) }
    }

    //pub fn get_xdisplay(&self) -> /*Ignored*/Option<xlib::Display> {
    //    unsafe { TODO: call gdk_x11_sys:gdk_x11_display_get_xdisplay() }
    //}

    pub fn grab(&self) {
        unsafe {
            gdk_x11_sys::gdk_x11_display_grab(self.to_glib_none().0);
        }
    }

    pub fn set_cursor_theme(&self, theme: Option<&str>, size: i32) {
        unsafe {
            gdk_x11_sys::gdk_x11_display_set_cursor_theme(
                self.to_glib_none().0,
                theme.to_glib_none().0,
                size,
            );
        }
    }

    pub fn set_startup_notification_id(&self, startup_id: &str) {
        unsafe {
            gdk_x11_sys::gdk_x11_display_set_startup_notification_id(
                self.to_glib_none().0,
                startup_id.to_glib_none().0,
            );
        }
    }

    pub fn set_window_scale(&self, scale: i32) {
        unsafe {
            gdk_x11_sys::gdk_x11_display_set_window_scale(self.to_glib_none().0, scale);
        }
    }

    //pub fn string_to_compound_text(&self, str: &str, encoding: /*Ignored*/gdk::Atom) -> (i32, i32, Vec<u8>) {
    //    unsafe { TODO: call gdk_x11_sys:gdk_x11_display_string_to_compound_text() }
    //}

    //pub fn text_property_to_text_list(&self, encoding: /*Ignored*/&gdk::Atom, format: i32, text: u8, length: i32, list: &str) -> i32 {
    //    unsafe { TODO: call gdk_x11_sys:gdk_x11_display_text_property_to_text_list() }
    //}

    pub fn ungrab(&self) {
        unsafe {
            gdk_x11_sys::gdk_x11_display_ungrab(self.to_glib_none().0);
        }
    }

    //pub fn utf8_to_compound_text(&self, str: &str, encoding: /*Ignored*/gdk::Atom) -> Option<(i32, Vec<u8>)> {
    //    unsafe { TODO: call gdk_x11_sys:gdk_x11_display_utf8_to_compound_text() }
    //}

    #[cfg(any(feature = "v3_16", feature = "dox"))]
    pub fn get_glx_version<P: IsA<gdk::Display>>(display: &P) -> Option<(i32, i32)> {
        assert_initialized_main_thread!();
        unsafe {
            let mut major = mem::MaybeUninit::uninit();
            let mut minor = mem::MaybeUninit::uninit();
            let ret = from_glib(gdk_x11_sys::gdk_x11_display_get_glx_version(
                display.as_ref().to_glib_none().0,
                major.as_mut_ptr(),
                minor.as_mut_ptr(),
            ));
            let major = major.assume_init();
            let minor = minor.assume_init();
            if ret {
                Some((major, minor))
            } else {
                None
            }
        }
    }
}

impl fmt::Display for X11Display {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "X11Display")
    }
}