1 /* GIMP - The GNU Image Manipulation Program 2 * Copyright (C) 1995 Spencer Kimball and Peter Mattis 3 * 4 * This program is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 3 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <https://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef __SCREENSHOT_H__ 19 #define __SCREENSHOT_H__ 20 21 22 typedef enum 23 { 24 SCREENSHOT_BACKEND_NONE, 25 SCREENSHOT_BACKEND_OSX, 26 SCREENSHOT_BACKEND_WIN32, 27 SCREENSHOT_BACKEND_FREEDESKTOP, 28 SCREENSHOT_BACKEND_GNOME_SHELL, 29 SCREENSHOT_BACKEND_KWIN, 30 SCREENSHOT_BACKEND_X11 31 } ScreenshotBackend; 32 33 typedef enum 34 { 35 SCREENSHOT_CAN_SHOOT_DECORATIONS = 0x1 << 0, 36 SCREENSHOT_CAN_SHOOT_POINTER = 0x1 << 1, 37 SCREENSHOT_CAN_PICK_NONINTERACTIVELY = 0x1 << 2, 38 SCREENSHOT_CAN_SHOOT_REGION = 0x1 << 3, 39 /* SHOOT_WINDOW mode only: it window selection requires active click. */ 40 SCREENSHOT_CAN_PICK_WINDOW = 0x1 << 4, 41 /* SHOOT_WINDOW + SCREENSHOT_CAN_PICK_WINDOW only: if a delay can be 42 * inserted in-between selection click and actual snapshot. */ 43 SCREENSHOT_CAN_DELAY_WINDOW_SHOT = 0x1 << 5, 44 SCREENSHOT_CAN_SHOOT_WINDOW = 0x1 << 6 45 } ScreenshotCapabilities; 46 47 typedef enum 48 { 49 SCREENSHOT_PROFILE_POLICY_MONITOR, 50 SCREENSHOT_PROFILE_POLICY_SRGB 51 } ScreenshotProfilePolicy; 52 53 typedef enum 54 { 55 SHOOT_WINDOW, 56 SHOOT_ROOT, 57 SHOOT_REGION 58 } ShootType; 59 60 typedef struct 61 { 62 ShootType shoot_type; 63 gboolean decorate; 64 guint window_id; 65 gint monitor; 66 guint select_delay; 67 guint screenshot_delay; 68 gint x1; 69 gint y1; 70 gint x2; 71 gint y2; 72 gboolean show_cursor; 73 ScreenshotProfilePolicy profile_policy; 74 } ScreenshotValues; 75 76 77 void screenshot_delay (gint seconds); 78 79 80 #endif /* __SCREENSHOT_H__ */ 81