[gimp] libgimp: start getting rid of using GimpDrawable in the drawable previews



commit 8ace6bf45d00b0cee04e75e8413e51cff6ead5a8
Author: Michael Natterer <mitch gimp org>
Date:   Mon Sep 14 19:47:18 2015 +0200

    libgimp: start getting rid of using GimpDrawable in the drawable previews
    
    Start with the internal APIs that need no deprecations.

 libgimp/gimpdrawablepreview.c |   44 +++++++++++++++++++++-------------------
 libgimp/gimpdrawablepreview.h |    4 +-
 libgimp/gimpzoompreview.c     |    6 +++-
 3 files changed, 29 insertions(+), 25 deletions(-)
---
diff --git a/libgimp/gimpdrawablepreview.c b/libgimp/gimpdrawablepreview.c
index 26b1504..e7f1948 100644
--- a/libgimp/gimpdrawablepreview.c
+++ b/libgimp/gimpdrawablepreview.c
@@ -285,12 +285,13 @@ gimp_drawable_preview_draw_thumb (GimpPreview     *preview,
   GimpDrawable        *drawable         = drawable_preview->drawable;
 
   if (drawable)
-    _gimp_drawable_preview_area_draw_thumb (area, drawable, width, height);
+    _gimp_drawable_preview_area_draw_thumb (area, drawable->drawable_id,
+                                            width, height);
 }
 
 void
 _gimp_drawable_preview_area_draw_thumb (GimpPreviewArea *area,
-                                        GimpDrawable    *drawable,
+                                        gint32           drawable_ID,
                                         gint             width,
                                         gint             height)
 {
@@ -301,17 +302,18 @@ _gimp_drawable_preview_area_draw_thumb (GimpPreviewArea *area,
   gint    nav_width, nav_height;
 
   g_return_if_fail (GIMP_IS_PREVIEW_AREA (area));
-  g_return_if_fail (drawable != NULL);
+  g_return_if_fail (gimp_item_is_valid (drawable_ID));
+  g_return_if_fail (gimp_item_is_drawable (drawable_ID));
 
-  if (_gimp_drawable_preview_get_bounds (drawable, &x1, &y1, &x2, &y2))
+  if (_gimp_drawable_preview_get_bounds (drawable_ID, &x1, &y1, &x2, &y2))
     {
       width  = x2 - x1;
       height = y2 - y1;
     }
   else
     {
-      width  = gimp_drawable_width  (drawable->drawable_id);
-      height = gimp_drawable_height (drawable->drawable_id);
+      width  = gimp_drawable_width  (drawable_ID);
+      height = gimp_drawable_height (drawable_ID);
     }
 
   if (width > height)
@@ -325,16 +327,16 @@ _gimp_drawable_preview_area_draw_thumb (GimpPreviewArea *area,
       nav_width  = (width * nav_height) / height;
     }
 
-  if (_gimp_drawable_preview_get_bounds (drawable, &x1, &y1, &x2, &y2))
+  if (_gimp_drawable_preview_get_bounds (drawable_ID, &x1, &y1, &x2, &y2))
     {
-      buffer = gimp_drawable_get_sub_thumbnail_data (drawable->drawable_id,
+      buffer = gimp_drawable_get_sub_thumbnail_data (drawable_ID,
                                                      x1, y1, x2 - x1, y2 - y1,
                                                      &nav_width, &nav_height,
                                                      &bpp);
     }
   else
     {
-      buffer = gimp_drawable_get_thumbnail_data (drawable->drawable_id,
+      buffer = gimp_drawable_get_thumbnail_data (drawable_ID,
                                                  &nav_width, &nav_height,
                                                  &bpp);
     }
@@ -479,7 +481,7 @@ gimp_drawable_preview_set_drawable (GimpDrawablePreview *drawable_preview,
 
   drawable_preview->drawable = drawable;
 
-  _gimp_drawable_preview_get_bounds (drawable, &x1, &y1, &x2, &y2);
+  _gimp_drawable_preview_get_bounds (drawable->drawable_id, &x1, &y1, &x2, &y2);
 
   gimp_preview_set_bounds (preview, x1, y1, x2, y2);
 
@@ -501,11 +503,11 @@ gimp_drawable_preview_set_drawable (GimpDrawablePreview *drawable_preview,
 #define MIN3(a, b, c)  (MIN (MIN ((a), (b)), (c)))
 
 gboolean
-_gimp_drawable_preview_get_bounds (GimpDrawable *drawable,
-                                   gint         *xmin,
-                                   gint         *ymin,
-                                   gint         *xmax,
-                                   gint         *ymax)
+_gimp_drawable_preview_get_bounds (gint32  drawable_ID,
+                                   gint   *xmin,
+                                   gint   *ymin,
+                                   gint   *xmax,
+                                   gint   *ymax)
 {
   gint     width;
   gint     height;
@@ -515,15 +517,15 @@ _gimp_drawable_preview_get_bounds (GimpDrawable *drawable,
   gint     x2, y2;
   gboolean retval;
 
-  g_return_val_if_fail (drawable != NULL, FALSE);
+  g_return_val_if_fail (gimp_item_is_valid (drawable_ID), FALSE);
+  g_return_val_if_fail (gimp_item_is_drawable (drawable_ID), FALSE);
 
-  width  = gimp_drawable_width (drawable->drawable_id);
-  height = gimp_drawable_height (drawable->drawable_id);
+  width  = gimp_drawable_width (drawable_ID);
+  height = gimp_drawable_height (drawable_ID);
 
-  retval = gimp_drawable_mask_bounds (drawable->drawable_id,
-                                      &x1, &y1, &x2, &y2);
+  retval = gimp_drawable_mask_bounds (drawable_ID, &x1, &y1, &x2, &y2);
 
-  gimp_drawable_offsets (drawable->drawable_id, &offset_x, &offset_y);
+  gimp_drawable_offsets (drawable_ID, &offset_x, &offset_y);
 
   *xmin = MAX3 (x1 - SELECTION_BORDER, 0, - offset_x);
   *ymin = MAX3 (y1 - SELECTION_BORDER, 0, - offset_y);
diff --git a/libgimp/gimpdrawablepreview.h b/libgimp/gimpdrawablepreview.h
index 9767a21..bddd34b 100644
--- a/libgimp/gimpdrawablepreview.h
+++ b/libgimp/gimpdrawablepreview.h
@@ -71,10 +71,10 @@ void           gimp_drawable_preview_draw_region  (GimpDrawablePreview *preview,
 
 /*  for internal use only  */
 G_GNUC_INTERNAL void      _gimp_drawable_preview_area_draw_thumb (GimpPreviewArea *area,
-                                                                  GimpDrawable    *drawable,
+                                                                  gint32           drawable_ID,
                                                                   gint             width,
                                                                   gint             height);
-G_GNUC_INTERNAL gboolean  _gimp_drawable_preview_get_bounds      (GimpDrawable    *drawable,
+G_GNUC_INTERNAL gboolean  _gimp_drawable_preview_get_bounds      (gint32           drawable_ID,
                                                                   gint            *xmin,
                                                                   gint            *ymin,
                                                                   gint            *xmax,
diff --git a/libgimp/gimpzoompreview.c b/libgimp/gimpzoompreview.c
index e0c734f..b40e516 100644
--- a/libgimp/gimpzoompreview.c
+++ b/libgimp/gimpzoompreview.c
@@ -394,7 +394,8 @@ gimp_zoom_preview_style_set (GtkWidget *widget,
 
   gtk_widget_style_get (widget, "size", &size, NULL);
 
-  if (_gimp_drawable_preview_get_bounds (drawable, &x1, &y1, &x2, &y2))
+  if (_gimp_drawable_preview_get_bounds (drawable->drawable_id,
+                                         &x1, &y1, &x2, &y2))
     {
       width  = x2 - x1;
       height = y2 - y1;
@@ -557,7 +558,8 @@ gimp_zoom_preview_draw_thumb (GimpPreview     *preview,
   GimpDrawable           *drawable = priv->drawable;
 
   if (drawable)
-    _gimp_drawable_preview_area_draw_thumb (area, drawable, width, height);
+    _gimp_drawable_preview_area_draw_thumb (area, drawable->drawable_id,
+                                            width, height);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]