XScreenSaver(3) | Library Functions Manual | XScreenSaver(3) |
typedef struct {
Window window; /∗ screen saver window */
int state; /∗ ScreenSaver{Off,On,Disabled} */
int kind; /∗ ScreenSaver{Blanked,Internal,External} */
unsigned long til_or_since; /∗ milliseconds */
unsigned long idle; /∗ milliseconds */
unsigned long eventMask; /∗ events */
typedef struct {
int type; /∗ of event */
unsigned long serial; /∗ # of last request processed by server */
Bool send_event; /∗ true if this came frome a SendEvent request */
Display *display; /∗ Display the event was read from */
Window window; /∗ screen saver window */
Window root; /∗ root window of event screen */
int state; /∗ ScreenSaver{Off,On,Cycle} */
int kind; /∗ ScreenSaver{Blanked,Internal,External} */
Bool forced; /∗ extents of new region */
Time time; /∗ event timestamp */
Bool XScreenSaverQueryExtension(Display *dpy, int * event_base_return, int *error_base_return);
Status XScreenSaverQueryVersion(Display *dpy, int * major_version_return, int *minor_version_return);
XScreenSaverInfo *XScreenSaverAllocInfo(void);
Status XScreenSaverQueryInfo(Display *dpy, Drawable drawable, XScreenSaverInfo * saver_info);
void XScreenSaverSelectInput(Display *dpy, Drawable drawable, unsigned long mask);
void XScreenSaverSetAttributes(Display *dpy, Drawable drawable, int x, int y, unsigned int width, unsigned int height, unsigned int border_width, int depth, unsigned int class, Visual * visual, unsigned long valuemask, XSetWindowAttributes * attributes);
void XScreenSaverUnsetAttributes(Display *dpy, Drawable drawable);
void XScreenSaverSaverRegister(Display *dpy, int screen, XID xid, Atom type);
Status XScreenSaverUnregister(Display *dpy, int screen);
Status XScreenSaverGetRegistered(Display *dpy, int screen, XID * xid, Atom *type);
void XScreenSaverSuspend(Display *dpy, Bool suspend);
Current X server implementations typically provide at least one form of ``screen saver'' image. Historically, this has been a copy of the X logo drawn against the root background pattern. However, many users have asked for the mechanism to allow them to write screen saver programs that provide capabilities similar to those provided by other window systems. In particular, such users often wish to be able to display corporate logos, instructions on how to reactivate the screen, and automatic screen-locking utilities. This extension provides a means for writing such clients.
XScreenSaverQueryExtension returns True if the XScreenSaver extension is available on the given display. A client must call XScreenSaverQueryExtension before calling any other XScreenSaver function in order to negotiate a compatible protocol version; otherwise the client will get undefined behavior (XScreenSaver may or may not work).
If the extension is supported, the event number for ScreenSaverNotify events is returned in the value pointed to by event_base. Since no additional errors are defined by this extension, the results of error_base are not defined.
XScreenSaverQueryVersion returns True if the request succeeded; the values of the major and minor protocol versions supported by the server are returned in major_version_return and minor_version_return .
XScreenSaverAllocInfo allocates and returns an XScreenSaverInfo structure for use in calls to XScreenSaverQueryInfo. All fields in the structure are initialized to zero. If insufficient memory is available, NULL is returned. The results of this routine can be released using XFree.
XScreenSaverQueryInfo returns information about the current state of the screen server in saver_info and a non-zero value is returned. If the extension is not supported, saver_info is not changed and 0 is returned.
The state field specifies whether or not the screen saver is currently active and how the til-or-since value should be interpreted:
The kind field specifies the mechanism that either is currently being used or would have been were the screen being saved:
The idle field specifies the number of milliseconds since the last input was received from the user on any of the input devices.
XScreenSaverSelectInput asks that events related to the screen saver be generated for this client. If no bits are set in event-mask, then no events will be generated. Otherwise, any combination of the following bits may be set:
XScreenSaverSetAttributes sets the attributes to be used the next time the external screen saver is activated. If another client currently has the attributes set, a BadAccess error is generated and the request is ignored.
XScreenSaverUnsetAttributes instructs the server to discard any previous screen saver window attributes set by this client.
XScreenSaverRegister stores the given XID in the _SCREEN_SAVER_ID property (of the given type) on the root window of the specified screen. It returns zero if an error is encountered and the property is not changed, otherwise it returns non-zero.
XScreenSaverUnregister removes any _SCREEN_SAVER_ID from the root window of the specified screen. It returns zero if an error is encountered and the property is changed, otherwise it returns non-zero.
XScreenSaverGetRegistered returns the XID and type stored in the _SCREEN_SAVER_ID property on the root window of the specified screen. It returns zero if an error is encountered or if the property does not exist or is not of the correct format; otherwise it returns non-zero.
XScreenSaverSuspend temporarily suspends the screensaver and DPMS timer if suspend is 'True', and restarts the timer if suspend is 'False'.
X Version 11 |