gnome-shell/src/shell-screenshot.h
Ivan Molodetskikh 941774b786 screenshot-ui: Add cursor capturing option
The cursor texture, scale and position is captured separately and
overlaid on top of the preview, and on top of the final screenshot
image. This allows toggling it on and off post-factum.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>
2022-01-27 22:25:42 +00:00

91 lines
5.7 KiB
C

/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
#ifndef __SHELL_SCREENSHOT_H__
#define __SHELL_SCREENSHOT_H__
/**
* SECTION:shell-screenshot
* @short_description: Grabs screenshots of areas and/or windows
*
* The #ShellScreenshot object is used to take screenshots of screen
* areas or windows and write them out as png files.
*
*/
#define SHELL_TYPE_SCREENSHOT (shell_screenshot_get_type ())
G_DECLARE_FINAL_TYPE (ShellScreenshot, shell_screenshot,
SHELL, SCREENSHOT, GObject)
ShellScreenshot *shell_screenshot_new (void);
void shell_screenshot_screenshot_area (ShellScreenshot *screenshot,
int x,
int y,
int width,
int height,
GOutputStream *stream,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean shell_screenshot_screenshot_area_finish (ShellScreenshot *screenshot,
GAsyncResult *result,
cairo_rectangle_int_t **area,
GError **error);
void shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
gboolean include_frame,
gboolean include_cursor,
GOutputStream *stream,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean shell_screenshot_screenshot_window_finish (ShellScreenshot *screenshot,
GAsyncResult *result,
cairo_rectangle_int_t **area,
GError **error);
void shell_screenshot_screenshot (ShellScreenshot *screenshot,
gboolean include_cursor,
GOutputStream *stream,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean shell_screenshot_screenshot_finish (ShellScreenshot *screenshot,
GAsyncResult *result,
cairo_rectangle_int_t **area,
GError **error);
void shell_screenshot_screenshot_stage_to_content (ShellScreenshot *screenshot,
GAsyncReadyCallback callback,
gpointer user_data);
ClutterContent *shell_screenshot_screenshot_stage_to_content_finish (ShellScreenshot *screenshot,
GAsyncResult *result,
float *scale,
ClutterContent **cursor_content,
graphene_point_t *cursor_point,
float *cursor_scale,
GError **error);
void shell_screenshot_pick_color (ShellScreenshot *screenshot,
int x,
int y,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean shell_screenshot_pick_color_finish (ShellScreenshot *screenshot,
GAsyncResult *result,
ClutterColor *color,
GError **error);
void shell_screenshot_composite_to_stream (CoglTexture *texture,
int x,
int y,
int width,
int height,
float scale,
CoglTexture *cursor,
int cursor_x,
int cursor_y,
float cursor_scale,
GOutputStream *stream,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean shell_screenshot_composite_to_stream_finish (GAsyncResult *result,
GError **error);
#endif /* ___SHELL_SCREENSHOT_H__ */