x11_dl/
xss.rs

1// x11-rs: Rust bindings for X11 libraries
2// The X11 libraries are available under the MIT license.
3// These bindings are public domain.
4
5use super::xlib::{
6    Atom, Bool, Display, Drawable, Status, Time, Visual, Window, XEvent, XSetWindowAttributes, XID,
7};
8use std::os::raw::{c_int, c_uint, c_ulong};
9
10//
11// functions
12//
13
14x11_link! { Xss, xscrnsaver, ["libXss.so.2", "libXss.so"], 11,
15  pub fn XScreenSaverQueryExtension (_1: *mut Display, _2: *mut c_int, _3: *mut c_int) -> Bool,
16  pub fn XScreenSaverQueryVersion (_1: *mut Display, _2: *mut c_int, _3: *mut c_int) -> Status,
17  pub fn XScreenSaverAllocInfo () -> *mut XScreenSaverInfo,
18  pub fn XScreenSaverQueryInfo (_1: *mut Display, _2: Drawable, _3: *mut XScreenSaverInfo) -> Status,
19  pub fn XScreenSaverSelectInput (_1: *mut Display, _2: Drawable, _3: c_ulong) -> (),
20  pub fn XScreenSaverSetAttributes (_1: *mut Display, _2: Drawable, _3: c_int, _4: c_int, _5: c_uint, _6: c_uint, _7: c_uint, _8: c_int, _9: c_uint, _10: *mut Visual, _11: c_ulong, _12: *mut XSetWindowAttributes) -> (),
21  pub fn XScreenSaverUnsetAttributes (_1: *mut Display, _2: Drawable) -> (),
22  pub fn XScreenSaverRegister (_1: *mut Display, _2: c_int, _3: XID, _4: Atom) -> Status,
23  pub fn XScreenSaverUnregister (_1: *mut Display, _2: c_int) -> Status,
24  pub fn XScreenSaverGetRegistered (_1: *mut Display, _2: c_int, _3: *mut XID, _4: *mut Atom) -> Status,
25  pub fn XScreenSaverSuspend (_1: *mut Display, _2: Bool) -> (),
26variadic:
27globals:
28}
29
30//
31// types
32//
33
34#[derive(Debug, Clone, Copy, PartialEq)]
35#[repr(C)]
36pub struct XScreenSaverInfo {
37    pub window: Window,
38    pub state: c_int,
39    pub kind: c_int,
40    pub til_or_since: c_ulong,
41    pub idle: c_ulong,
42    pub eventMask: c_ulong,
43}
44
45//
46// event structures
47//
48
49#[derive(Debug, Clone, Copy, PartialEq)]
50#[repr(C)]
51pub struct XScreenSaverNotifyEvent {
52    pub type_: c_int,
53    pub serial: c_ulong,
54    pub send_event: Bool,
55    pub display: *mut Display,
56    pub window: Window,
57    pub root: Window,
58    pub state: c_int,
59    pub kind: c_int,
60    pub forced: Bool,
61    pub time: Time,
62}
63
64event_conversions_and_tests! {
65  xss_notify: XScreenSaverNotifyEvent,
66}
67
68//
69// constants
70//
71
72pub const ScreenSaverName: &str = "MIT-SCREEN-SAVER";
73pub const ScreenSaverPropertyName: &str = "_MIT_SCREEN_SAVER_ID";
74
75pub const ScreenSaverNotifyMask: c_ulong = 0x00000001;
76pub const ScreenSaverCycleMask: c_ulong = 0x00000002;
77
78pub const ScreenSaverMajorVersion: c_int = 1;
79pub const ScreenSaverMinorVersion: c_int = 1;
80
81pub const ScreenSaverOff: c_int = 0;
82pub const ScreenSaverOn: c_int = 1;
83pub const ScreenSaverCycle: c_int = 2;
84pub const ScreenSaverDisabled: c_int = 3;
85
86pub const ScreenSaverBlanked: c_int = 0;
87pub const ScreenSaverInternal: c_int = 1;
88pub const ScreenSaverExternal: c_int = 2;
89
90pub const ScreenSaverNotify: c_int = 0;
91pub const ScreenSaverNumberEvents: c_int = 1;