2 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
14 #include "ecore_x_private.h"
16 #include "Ecore_X_Atoms.h"
18 static int _screensaver_available = -1;
21 ecore_x_screensaver_event_available_get(void)
23 if (_screensaver_available >= 0) return _screensaver_available;
25 int _screensaver_major, _screensaver_minor;
27 LOGFN(__FILE__, __LINE__, __FUNCTION__);
28 _screensaver_major = 1;
29 _screensaver_minor = 0;
31 if (XScreenSaverQueryVersion(_ecore_x_disp, &_screensaver_major, &_screensaver_minor))
32 _screensaver_available = 1;
34 _screensaver_available = 0;
36 _screensaver_available = 0;
38 return _screensaver_available;
42 ecore_x_screensaver_idle_time_get(void)
45 XScreenSaverInfo *xss;
48 LOGFN(__FILE__, __LINE__, __FUNCTION__);
49 xss = XScreenSaverAllocInfo();
50 XScreenSaverQueryInfo(_ecore_x_disp, RootWindow(_ecore_x_disp, DefaultScreen(_ecore_x_disp)), xss);
51 idle = xss->idle / 1000;
61 ecore_x_screensaver_set(int timeout, int interval, int prefer_blanking, int allow_exposures)
63 LOGFN(__FILE__, __LINE__, __FUNCTION__);
64 XSetScreenSaver(_ecore_x_disp, timeout, interval, prefer_blanking, allow_exposures);
68 ecore_x_screensaver_timeout_set(int timeout)
70 int pto, pint, pblank, pexpo;
72 LOGFN(__FILE__, __LINE__, __FUNCTION__);
73 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
74 XSetScreenSaver(_ecore_x_disp, timeout, pint, pblank, pexpo);
78 ecore_x_screensaver_timeout_get(void)
80 int pto, pint, pblank, pexpo;
82 LOGFN(__FILE__, __LINE__, __FUNCTION__);
83 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
88 ecore_x_screensaver_blank_set(int blank)
90 int pto, pint, pblank, pexpo;
92 LOGFN(__FILE__, __LINE__, __FUNCTION__);
93 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
94 XSetScreenSaver(_ecore_x_disp, pto, pint, blank, pexpo);
98 ecore_x_screensaver_blank_get(void)
100 int pto, pint, pblank, pexpo;
102 LOGFN(__FILE__, __LINE__, __FUNCTION__);
103 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
108 ecore_x_screensaver_expose_set(int expose)
110 int pto, pint, pblank, pexpo;
112 LOGFN(__FILE__, __LINE__, __FUNCTION__);
113 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
114 XSetScreenSaver(_ecore_x_disp, pto, pint, pblank, expose);
118 ecore_x_screensaver_expose_get(void)
120 int pto, pint, pblank, pexpo;
122 LOGFN(__FILE__, __LINE__, __FUNCTION__);
123 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
128 ecore_x_screensaver_interval_set(int interval)
130 int pto, pint, pblank, pexpo;
132 LOGFN(__FILE__, __LINE__, __FUNCTION__);
133 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
134 XSetScreenSaver(_ecore_x_disp, pto, interval, pblank, pexpo);
138 ecore_x_screensaver_interval_get(void)
140 int pto, pint, pblank, pexpo;
142 LOGFN(__FILE__, __LINE__, __FUNCTION__);
143 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
148 ecore_x_screensaver_event_listen_set(int on)
153 LOGFN(__FILE__, __LINE__, __FUNCTION__);
154 root = DefaultRootWindow(_ecore_x_disp);
156 XScreenSaverSelectInput(_ecore_x_disp, root, ScreenSaverNotifyMask);
158 XScreenSaverSelectInput(_ecore_x_disp, root, 0);