[gimp/wip/Jehan/classy-GIMP: 54/57] plug-ins: port screenshot to GimpImage/GimpDrawable.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/wip/Jehan/classy-GIMP: 54/57] plug-ins: port screenshot to GimpImage/GimpDrawable.
- Date: Sat, 17 Aug 2019 08:59:01 +0000 (UTC)
commit 90210d95e20e35ed1b7986d73e2a05b5a68b65a9
Author: Jehan <jehan girinstud io>
Date: Fri Aug 16 11:54:50 2019 +0200
plug-ins: port screenshot to GimpImage/GimpDrawable.
plug-ins/screenshot/Makefile.am | 1 -
plug-ins/screenshot/screenshot-freedesktop.c | 26 +++++++--------
plug-ins/screenshot/screenshot-freedesktop.h | 2 +-
plug-ins/screenshot/screenshot-gnome-shell.c | 8 ++---
plug-ins/screenshot/screenshot-gnome-shell.h | 2 +-
plug-ins/screenshot/screenshot-kwin.c | 8 ++---
plug-ins/screenshot/screenshot-kwin.h | 2 +-
plug-ins/screenshot/screenshot-osx.c | 8 ++---
plug-ins/screenshot/screenshot-osx.h | 2 +-
plug-ins/screenshot/screenshot-win32.h | 2 +-
plug-ins/screenshot/screenshot-x11.c | 44 ++++++++++++-------------
plug-ins/screenshot/screenshot-x11.h | 2 +-
plug-ins/screenshot/screenshot.c | 48 ++++++++++++++--------------
13 files changed, 77 insertions(+), 78 deletions(-)
---
diff --git a/plug-ins/screenshot/Makefile.am b/plug-ins/screenshot/Makefile.am
index 9ca66e391c..0d8d829f21 100644
--- a/plug-ins/screenshot/Makefile.am
+++ b/plug-ins/screenshot/Makefile.am
@@ -16,7 +16,6 @@ endif
AM_LDFLAGS = $(mwindows)
AM_CPPFLAGS = \
- -DGIMP_DEPRECATED_REPLACE_NEW_API \
-I$(top_srcdir) \
$(GTK_CFLAGS) \
$(GEGL_CFLAGS) \
diff --git a/plug-ins/screenshot/screenshot-freedesktop.c b/plug-ins/screenshot/screenshot-freedesktop.c
index 38906acc1c..35aa27d256 100644
--- a/plug-ins/screenshot/screenshot-freedesktop.c
+++ b/plug-ins/screenshot/screenshot-freedesktop.c
@@ -73,11 +73,11 @@ screenshot_freedesktop_get_capabilities (void)
}
static void
-screenshot_freedesktop_dbus_signal (GDBusProxy *proxy,
- gchar *sender_name,
- gchar *signal_name,
- GVariant *parameters,
- gint32 *image_ID)
+screenshot_freedesktop_dbus_signal (GDBusProxy *proxy,
+ gchar *sender_name,
+ gchar *signal_name,
+ GVariant *parameters,
+ GimpImage **image)
{
if (g_strcmp0 (signal_name, "Response") == 0)
{
@@ -103,9 +103,9 @@ screenshot_freedesktop_dbus_signal (GDBusProxy *proxy,
GFile *file = g_file_new_for_uri (uri);
gchar *path = g_file_get_path (file);
- *image_ID = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
- path, path);
- gimp_image_set_filename (*image_ID, "screenshot.png");
+ *image = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
+ path, path);
+ gimp_image_set_filename (*image, "screenshot.png");
/* Delete the actual file. */
g_file_delete (file, NULL, NULL);
@@ -125,7 +125,7 @@ screenshot_freedesktop_dbus_signal (GDBusProxy *proxy,
GimpPDBStatusType
screenshot_freedesktop_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error)
{
GVariant *retval;
@@ -163,17 +163,17 @@ screenshot_freedesktop_shoot (ScreenshotValues *shootvals,
opath,
"org.freedesktop.portal.Request",
NULL, NULL);
- *image_ID = 0;
+ *image = NULL;
g_signal_connect (proxy2, "g-signal",
G_CALLBACK (screenshot_freedesktop_dbus_signal),
- image_ID);
+ image);
gtk_main ();
g_object_unref (proxy2);
g_free (opath);
/* Signal got a response. */
- if (*image_ID)
+ if (*image)
{
GimpColorProfile *profile;
@@ -186,7 +186,7 @@ screenshot_freedesktop_shoot (ScreenshotValues *shootvals,
profile = gimp_monitor_get_color_profile (monitor);
if (profile)
{
- gimp_image_set_color_profile (*image_ID, profile);
+ gimp_image_set_color_profile (*image, profile);
g_object_unref (profile);
}
diff --git a/plug-ins/screenshot/screenshot-freedesktop.h b/plug-ins/screenshot/screenshot-freedesktop.h
index d4f9a0874b..30a4161c0f 100644
--- a/plug-ins/screenshot/screenshot-freedesktop.h
+++ b/plug-ins/screenshot/screenshot-freedesktop.h
@@ -25,7 +25,7 @@ ScreenshotCapabilities screenshot_freedesktop_get_capabilities (void);
GimpPDBStatusType screenshot_freedesktop_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error);
diff --git a/plug-ins/screenshot/screenshot-gnome-shell.c b/plug-ins/screenshot/screenshot-gnome-shell.c
index 5a350f5fab..e189e81e8e 100644
--- a/plug-ins/screenshot/screenshot-gnome-shell.c
+++ b/plug-ins/screenshot/screenshot-gnome-shell.c
@@ -78,7 +78,7 @@ screenshot_gnome_shell_get_capabilities (void)
GimpPDBStatusType
screenshot_gnome_shell_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error)
{
gchar *filename;
@@ -176,15 +176,15 @@ screenshot_gnome_shell_shoot (ScreenshotValues *shootvals,
{
GimpColorProfile *profile;
- *image_ID = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
+ *image = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
filename, filename);
- gimp_image_set_filename (*image_ID, "screenshot.png");
+ gimp_image_set_filename (*image, "screenshot.png");
profile = gimp_monitor_get_color_profile (monitor);
if (profile)
{
- gimp_image_set_color_profile (*image_ID, profile);
+ gimp_image_set_color_profile (*image, profile);
g_object_unref (profile);
}
diff --git a/plug-ins/screenshot/screenshot-gnome-shell.h b/plug-ins/screenshot/screenshot-gnome-shell.h
index bdc6c2082c..2d4e42634b 100644
--- a/plug-ins/screenshot/screenshot-gnome-shell.h
+++ b/plug-ins/screenshot/screenshot-gnome-shell.h
@@ -25,7 +25,7 @@ ScreenshotCapabilities screenshot_gnome_shell_get_capabilities (void);
GimpPDBStatusType screenshot_gnome_shell_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error);
diff --git a/plug-ins/screenshot/screenshot-kwin.c b/plug-ins/screenshot/screenshot-kwin.c
index 2509729337..0a53bce50f 100644
--- a/plug-ins/screenshot/screenshot-kwin.c
+++ b/plug-ins/screenshot/screenshot-kwin.c
@@ -83,7 +83,7 @@ screenshot_kwin_get_capabilities (void)
GimpPDBStatusType
screenshot_kwin_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error)
{
gchar *filename = NULL;
@@ -168,9 +168,9 @@ screenshot_kwin_shoot (ScreenshotValues *shootvals,
{
GimpColorProfile *profile;
- *image_ID = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
+ *image = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
filename, filename);
- gimp_image_set_filename (*image_ID, "screenshot.png");
+ gimp_image_set_filename (*image, "screenshot.png");
/* This is very wrong in multi-display setups since we have no
* idea which profile is to be used. Let's keep it anyway and
@@ -181,7 +181,7 @@ screenshot_kwin_shoot (ScreenshotValues *shootvals,
if (profile)
{
- gimp_image_set_color_profile (*image_ID, profile);
+ gimp_image_set_color_profile (*image, profile);
g_object_unref (profile);
}
diff --git a/plug-ins/screenshot/screenshot-kwin.h b/plug-ins/screenshot/screenshot-kwin.h
index 361b29ad22..b978ea6a5a 100644
--- a/plug-ins/screenshot/screenshot-kwin.h
+++ b/plug-ins/screenshot/screenshot-kwin.h
@@ -25,7 +25,7 @@ ScreenshotCapabilities screenshot_kwin_get_capabilities (void);
GimpPDBStatusType screenshot_kwin_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error);
diff --git a/plug-ins/screenshot/screenshot-osx.c b/plug-ins/screenshot/screenshot-osx.c
index dcd93728ac..1a2dd0d288 100644
--- a/plug-ins/screenshot/screenshot-osx.c
+++ b/plug-ins/screenshot/screenshot-osx.c
@@ -76,7 +76,7 @@ screenshot_osx_get_capabilities (void)
GimpPDBStatusType
screenshot_osx_shoot (ScreenshotValues *shootvals,
GdkScreen *screen,
- gint32 *image_ID,
+ GimpImage **image,
GError **error)
{
const gchar *mode = " ";
@@ -139,9 +139,9 @@ screenshot_osx_shoot (ScreenshotValues *shootvals,
/* don't attach a profile, screencapture attached one
*/
- *image_ID = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
- filename, filename);
- gimp_image_set_filename (*image_ID, "screenshot.png");
+ *image = gimp_file_load (GIMP_RUN_NONINTERACTIVE,
+ filename, filename);
+ gimp_image_set_filename (*image, "screenshot.png");
g_unlink (filename);
g_free (filename);
diff --git a/plug-ins/screenshot/screenshot-osx.h b/plug-ins/screenshot/screenshot-osx.h
index 40a987505c..16636d17bf 100644
--- a/plug-ins/screenshot/screenshot-osx.h
+++ b/plug-ins/screenshot/screenshot-osx.h
@@ -27,7 +27,7 @@ ScreenshotCapabilities screenshot_osx_get_capabilities (void);
GimpPDBStatusType screenshot_osx_shoot (ScreenshotValues *shootvals,
GdkScreen *screen,
- gint32 *image_ID,
+ GimpImage **image,
GError **error);
#endif /* PLATFORM_OSX */
diff --git a/plug-ins/screenshot/screenshot-win32.h b/plug-ins/screenshot/screenshot-win32.h
index 548393ac50..a30eb69b7c 100644
--- a/plug-ins/screenshot/screenshot-win32.h
+++ b/plug-ins/screenshot/screenshot-win32.h
@@ -35,7 +35,7 @@ ScreenshotCapabilities screenshot_win32_get_capabilities (void);
GimpPDBStatusType screenshot_win32_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error);
#endif /* G_OS_WIN32 */
diff --git a/plug-ins/screenshot/screenshot-x11.c b/plug-ins/screenshot/screenshot-x11.c
index 2f316d5037..b9495e2b8d 100644
--- a/plug-ins/screenshot/screenshot-x11.c
+++ b/plug-ins/screenshot/screenshot-x11.c
@@ -48,11 +48,11 @@
#include "libgimp/stdplugins-intl.h"
-static guint32 select_window (ScreenshotValues *shootvals,
- GdkMonitor *monitor);
-static gint32 create_image (cairo_surface_t *surface,
- cairo_region_t *shape,
- const gchar *name);
+static guint32 select_window (ScreenshotValues *shootvals,
+ GdkMonitor *monitor);
+static GimpImage * create_image (cairo_surface_t *surface,
+ cairo_region_t *shape,
+ const gchar *name);
/* Allow the user to select a window or a region with the mouse */
@@ -375,7 +375,7 @@ window_get_shape (GdkMonitor *monitor,
}
static void
-image_select_shape (gint32 image,
+image_select_shape (GimpImage *image,
cairo_region_t *shape)
{
gint num_rects;
@@ -402,13 +402,13 @@ image_select_shape (gint32 image,
/* Create a GimpImage from a GdkPixbuf */
-static gint32
+static GimpImage *
create_image (cairo_surface_t *surface,
cairo_region_t *shape,
const gchar *name)
{
- gint32 image;
- gint32 layer;
+ GimpImage *image;
+ GimpLayer *layer;
gdouble xres, yres;
gint width, height;
@@ -427,7 +427,7 @@ create_image (cairo_surface_t *surface,
name ? name : _("Screenshot"),
surface,
0.0, 1.0);
- gimp_image_insert_layer (image, layer, -1, 0);
+ gimp_image_insert_layer (image, layer, NULL, 0);
if (shape && ! cairo_region_is_empty (shape))
{
@@ -436,7 +436,7 @@ create_image (cairo_surface_t *surface,
if (! gimp_selection_is_empty (image))
{
gimp_layer_add_alpha (layer);
- gimp_drawable_edit_clear (layer);
+ gimp_drawable_edit_clear (GIMP_DRAWABLE (layer));
gimp_selection_none (image);
}
}
@@ -447,7 +447,7 @@ create_image (cairo_surface_t *surface,
}
static void
-add_cursor_image (gint32 image,
+add_cursor_image (GimpImage *image,
GdkDisplay *display)
{
#ifdef HAVE_XFIXES
@@ -455,8 +455,8 @@ add_cursor_image (gint32 image,
GeglBuffer *buffer;
GeglBufferIterator *iter;
GeglRectangle *roi;
- gint32 layer;
- gint32 active;
+ GimpLayer *layer;
+ GimpLayer *active;
cursor = XFixesGetCursorImage (GDK_DISPLAY_XDISPLAY (display));
@@ -471,12 +471,12 @@ add_cursor_image (gint32 image,
100.0,
gimp_image_get_default_new_layer_mode (image));
- buffer = gimp_drawable_get_buffer (layer);
+ buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (layer));
iter = gegl_buffer_iterator_new (buffer,
GEGL_RECTANGLE (0, 0,
- gimp_drawable_width (layer),
- gimp_drawable_height (layer)),
+ gimp_drawable_width (GIMP_DRAWABLE (layer)),
+ gimp_drawable_height (GIMP_DRAWABLE (layer))),
0, babl_format ("R'G'B'A u8"),
GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1);
roi = &iter->items[0].roi;
@@ -516,7 +516,7 @@ add_cursor_image (gint32 image,
g_object_unref (buffer);
- gimp_image_insert_layer (image, layer, -1, -1);
+ gimp_image_insert_layer (image, layer, NULL, -1);
gimp_layer_set_offsets (layer,
cursor->x - cursor->xhot, cursor->y - cursor->yhot);
@@ -557,7 +557,7 @@ screenshot_x11_get_capabilities (void)
GimpPDBStatusType
screenshot_x11_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error)
{
GdkDisplay *display;
@@ -667,7 +667,7 @@ screenshot_x11_shoot (ScreenshotValues *shootvals,
cairo_region_translate (shape, x - rect.x, y - rect.y);
}
- *image_ID = create_image (screenshot, shape, name);
+ *image = create_image (screenshot, shape, name);
cairo_surface_destroy (screenshot);
@@ -681,13 +681,13 @@ screenshot_x11_shoot (ScreenshotValues *shootvals,
*/
if ((shootvals->shoot_type == SHOOT_ROOT ||
shootvals->shoot_type == SHOOT_WINDOW) && shootvals->show_cursor)
- add_cursor_image (*image_ID, display);
+ add_cursor_image (*image, display);
profile = gimp_monitor_get_color_profile (monitor);
if (profile)
{
- gimp_image_set_color_profile (*image_ID, profile);
+ gimp_image_set_color_profile (*image, profile);
g_object_unref (profile);
}
diff --git a/plug-ins/screenshot/screenshot-x11.h b/plug-ins/screenshot/screenshot-x11.h
index 94ad693e51..e8471cf5ab 100644
--- a/plug-ins/screenshot/screenshot-x11.h
+++ b/plug-ins/screenshot/screenshot-x11.h
@@ -27,7 +27,7 @@ ScreenshotCapabilities screenshot_x11_get_capabilities (void);
GimpPDBStatusType screenshot_x11_shoot (ScreenshotValues *shootvals,
GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error);
#endif /* GDK_WINDOWING_X11 */
diff --git a/plug-ins/screenshot/screenshot.c b/plug-ins/screenshot/screenshot.c
index eeae115d70..2bb20d233c 100644
--- a/plug-ins/screenshot/screenshot.c
+++ b/plug-ins/screenshot/screenshot.c
@@ -80,7 +80,7 @@ static GimpValueArray * screenshot_run (GimpProcedure *proce
gpointer run_data);
static GimpPDBStatusType shoot (GdkMonitor *monitor,
- gint32 *image_ID,
+ GimpImage **image,
GError **error);
static gboolean shoot_dialog (GdkMonitor **monitor);
@@ -225,11 +225,11 @@ screenshot_create_procedure (GimpPlugIn *plug_in,
G_PARAM_READWRITE));
gimp_procedure_add_return_value (procedure,
- gimp_param_spec_image_id ("image",
- "Image",
- "Output image",
- FALSE,
- G_PARAM_READWRITE));
+ g_param_spec_object ("image",
+ "Image",
+ "Output image",
+ GIMP_TYPE_IMAGE,
+ G_PARAM_READWRITE));
}
return procedure;
@@ -244,8 +244,8 @@ screenshot_run (GimpProcedure *procedure,
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
GimpRunMode run_mode;
GdkMonitor *monitor = NULL;
- gint32 image_ID;
- GError *error = NULL;
+ GimpImage *image = NULL;
+ GError *error = NULL;
INIT_I18N ();
gegl_init (NULL, NULL);
@@ -353,7 +353,7 @@ screenshot_run (GimpProcedure *procedure,
if (status == GIMP_PDB_SUCCESS)
{
- status = shoot (monitor, &image_ID, &error);
+ status = shoot (monitor, &image, &error);
}
if (status == GIMP_PDB_SUCCESS)
@@ -364,7 +364,7 @@ screenshot_run (GimpProcedure *procedure,
{
GimpColorProfile *srgb_profile = gimp_color_profile_new_rgb_srgb ();
- gimp_image_convert_color_profile (image_ID,
+ gimp_image_convert_color_profile (image,
srgb_profile,
GIMP_COLOR_RENDERING_INTENT_RELATIVE_COLORIMETRIC,
TRUE);
@@ -379,20 +379,20 @@ screenshot_run (GimpProcedure *procedure,
GIMP_PARASITE_PERSISTENT,
strlen (comment) + 1, comment);
- gimp_image_attach_parasite (image_ID, parasite);
+ gimp_image_attach_parasite (image, parasite);
gimp_parasite_free (parasite);
g_free (comment);
}
- gimp_image_clean_all (image_ID);
+ gimp_image_clean_all (image);
if (run_mode == GIMP_RUN_INTERACTIVE)
{
/* Store variable states for next run */
gimp_set_data (PLUG_IN_PROC, &shootvals, sizeof (ScreenshotValues));
- gimp_display_new (image_ID);
+ gimp_display_new (image);
/* Give some sort of feedback that the shot is done */
if (shootvals.select_delay > 0)
@@ -407,8 +407,8 @@ screenshot_run (GimpProcedure *procedure,
return_vals = gimp_procedure_new_return_values (procedure, status, error);
if (status == GIMP_PDB_SUCCESS)
- gimp_value_set_image_id (gimp_value_array_index (return_vals, 1),
- image_ID);
+ g_value_set_object (gimp_value_array_index (return_vals, 1),
+ image);
return return_vals;
}
@@ -417,30 +417,30 @@ screenshot_run (GimpProcedure *procedure,
/* The main Screenshot function */
static GimpPDBStatusType
-shoot (GdkMonitor *monitor,
- gint32 *image_ID,
- GError **error)
+shoot (GdkMonitor *monitor,
+ GimpImage **image,
+ GError **error)
{
#ifdef PLATFORM_OSX
if (backend == SCREENSHOT_BACKEND_OSX)
- return screenshot_osx_shoot (&shootvals, monitor, image_ID, error);
+ return screenshot_osx_shoot (&shootvals, monitor, image, error);
#endif
#ifdef G_OS_WIN32
if (backend == SCREENSHOT_BACKEND_WIN32)
- return screenshot_win32_shoot (&shootvals, monitor, image_ID, error);
+ return screenshot_win32_shoot (&shootvals, monitor, image, error);
#endif
if (backend == SCREENSHOT_BACKEND_FREEDESKTOP)
- return screenshot_freedesktop_shoot (&shootvals, monitor, image_ID, error);
+ return screenshot_freedesktop_shoot (&shootvals, monitor, image, error);
else if (backend == SCREENSHOT_BACKEND_GNOME_SHELL)
- return screenshot_gnome_shell_shoot (&shootvals, monitor, image_ID, error);
+ return screenshot_gnome_shell_shoot (&shootvals, monitor, image, error);
else if (backend == SCREENSHOT_BACKEND_KWIN)
- return screenshot_kwin_shoot (&shootvals, monitor, image_ID, error);
+ return screenshot_kwin_shoot (&shootvals, monitor, image, error);
#ifdef GDK_WINDOWING_X11
if (backend == SCREENSHOT_BACKEND_X11)
- return screenshot_x11_shoot (&shootvals, monitor, image_ID, error);
+ return screenshot_x11_shoot (&shootvals, monitor, image, error);
#endif
return GIMP_PDB_CALLING_ERROR; /* silence compiler */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]