2 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
8 #include "ecore_x_private.h"
10 #include "Ecore_X_Atoms.h"
12 static int _screensaver_available = -1;
15 ecore_x_screensaver_event_available_get(void)
17 if (_screensaver_available >= 0) return _screensaver_available;
19 int _screensaver_major, _screensaver_minor;
21 _screensaver_major = 1;
22 _screensaver_minor = 0;
24 if (XScreenSaverQueryVersion(_ecore_x_disp, &_screensaver_major, &_screensaver_minor))
25 _screensaver_available = 1;
27 _screensaver_available = 0;
29 _screensaver_available = 0;
31 return _screensaver_available;
35 ecore_x_screensaver_idle_time_get(void)
38 XScreenSaverInfo *xss;
41 xss = XScreenSaverAllocInfo();
42 XScreenSaverQueryInfo(_ecore_x_disp, RootWindow(_ecore_x_disp, DefaultScreen(_ecore_x_disp)), xss);
43 idle = xss->idle / 1000;
53 ecore_x_screensaver_set(int timeout, int interval, int prefer_blanking, int allow_exposures)
55 XSetScreenSaver(_ecore_x_disp, timeout, interval, prefer_blanking, allow_exposures);
59 ecore_x_screensaver_timeout_set(int timeout)
61 int pto, pint, pblank, pexpo;
63 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
64 XSetScreenSaver(_ecore_x_disp, timeout, pint, pblank, pexpo);
68 ecore_x_screensaver_timeout_get(void)
70 int pto, pint, pblank, pexpo;
72 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
77 ecore_x_screensaver_blank_set(int blank)
79 int pto, pint, pblank, pexpo;
81 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
82 XSetScreenSaver(_ecore_x_disp, pto, pint, blank, pexpo);
86 ecore_x_screensaver_blank_get(void)
88 int pto, pint, pblank, pexpo;
90 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
95 ecore_x_screensaver_expose_set(int expose)
97 int pto, pint, pblank, pexpo;
99 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
100 XSetScreenSaver(_ecore_x_disp, pto, pint, pblank, expose);
104 ecore_x_screensaver_expose_get(void)
106 int pto, pint, pblank, pexpo;
108 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
113 ecore_x_screensaver_interval_set(int interval)
115 int pto, pint, pblank, pexpo;
117 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
118 XSetScreenSaver(_ecore_x_disp, pto, interval, pblank, pexpo);
122 ecore_x_screensaver_interval_get(void)
124 int pto, pint, pblank, pexpo;
126 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
131 ecore_x_screensaver_event_listen_set(int on)
136 root = DefaultRootWindow(_ecore_x_disp);
138 XScreenSaverSelectInput(_ecore_x_disp, root, ScreenSaverNotifyMask);
140 XScreenSaverSelectInput(_ecore_x_disp, root, 0);