-/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 2001, 2003
+/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 2001, 2003, 2004
* Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
desktop, or from the system's video input, depending on user
preferences.
+ If it is from a file, then it will be returned in `filename_return'.
+ filename_return may be NULL; also, NULL may be returned (e.g., if
+ it's a screenshot or video capture.)
+
Many colors may be allocated from the window's colormap.
*/
extern void load_random_image (Screen *screen,
Window top_level_window,
- Drawable target_window_or_pixmap);
-
+ Drawable target_window_or_pixmap,
+ char **filename_return);
-/* Uh, don't call this. */
-extern void grab_screen_image (Screen *, Window);
+/* Like the above, but loads the image in the background and runs the
+ given callback once it has been loaded.
+ */
+extern void fork_load_random_image (Screen *screen, Window window,
+ Drawable drawable,
+ void (*callback) (Screen *, Window,
+ Drawable,
+ const char *name,
+ void *closure),
+ void *closure);
/* Whether one should use GCSubwindowMode when drawing on this window
*/
extern Bool top_level_window_p(Screen *screen, Window window);
+
+/* Don't call this: this is for the "xscreensaver-getimage" program only. */
+extern void grab_screen_image_internal (Screen *, Window);
+
+/* Don't use this: this is how "xscreensaver-getimage" and "grabclient.c"
+ pass the file name around. */
+#define XA_XSCREENSAVER_IMAGE_FILENAME "_SCREENSAVER_IMAGE_FILENAME"
+
#endif /* __GRABSCREEN_H__ */