[gimp] Move the active layer, channel and vectors to GimpImagePrivate



commit 3720938517e8ef4b348002e50b23b181a755e4f5
Author: Michael Natterer <mitch gimp org>
Date:   Wed Feb 3 23:12:22 2010 +0100

    Move the active layer, channel and vectors to GimpImagePrivate

 app/core/gimpimage-private.h |    4 +++
 app/core/gimpimage.c         |   58 +++++++++++++++++++++++++----------------
 app/core/gimpimage.h         |    4 ---
 3 files changed, 39 insertions(+), 27 deletions(-)
---
diff --git a/app/core/gimpimage-private.h b/app/core/gimpimage-private.h
index 4132273..4f5c0ae 100644
--- a/app/core/gimpimage-private.h
+++ b/app/core/gimpimage-private.h
@@ -66,6 +66,10 @@ struct _GimpImagePrivate
   GQuark             layer_alpha_handler;
   GQuark             channel_name_changed_handler;
   GQuark             channel_color_changed_handler;
+
+  GimpLayer         *active_layer;          /*  the active layer             */
+  GimpChannel       *active_channel;        /*  the active channel           */
+  GimpVectors       *active_vectors;        /*  the active vectors           */
 };
 
 #define GIMP_IMAGE_GET_PRIVATE(image) \
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index 005b6be..e752adb 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -652,9 +652,9 @@ gimp_image_init (GimpImage *image)
                     G_CALLBACK (gimp_image_channel_remove),
                     image);
 
-  image->active_layer          = NULL;
-  image->active_channel        = NULL;
-  image->active_vectors        = NULL;
+  private->active_layer        = NULL;
+  private->active_channel      = NULL;
+  private->active_vectors      = NULL;
 
   image->floating_sel          = NULL;
   image->selection_mask        = NULL;
@@ -2894,18 +2894,22 @@ gimp_image_get_vectors_list (const GimpImage *image)
 GimpDrawable *
 gimp_image_get_active_drawable (const GimpImage *image)
 {
+  GimpImagePrivate *private;
+
   g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
 
+  private = GIMP_IMAGE_GET_PRIVATE (image);
+
   /*  If there is an active channel (a saved selection, etc.),
    *  we ignore the active layer
    */
-  if (image->active_channel)
+  if (private->active_channel)
     {
-      return GIMP_DRAWABLE (image->active_channel);
+      return GIMP_DRAWABLE (private->active_channel);
     }
-  else if (image->active_layer)
+  else if (private->active_layer)
     {
-      GimpLayer     *layer = image->active_layer;
+      GimpLayer     *layer = private->active_layer;
       GimpLayerMask *mask  = gimp_layer_get_mask (layer);
 
       if (mask && gimp_layer_mask_get_edit (mask))
@@ -2922,7 +2926,7 @@ gimp_image_get_active_layer (const GimpImage *image)
 {
   g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
 
-  return image->active_layer;
+  return GIMP_IMAGE_GET_PRIVATE (image)->active_layer;
 }
 
 GimpChannel *
@@ -2930,7 +2934,7 @@ gimp_image_get_active_channel (const GimpImage *image)
 {
   g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
 
-  return image->active_channel;
+  return GIMP_IMAGE_GET_PRIVATE (image)->active_channel;
 }
 
 GimpVectors *
@@ -2938,7 +2942,7 @@ gimp_image_get_active_vectors (const GimpImage *image)
 {
   g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
 
-  return image->active_vectors;
+  return GIMP_IMAGE_GET_PRIVATE (image)->active_vectors;
 }
 
 GimpLayer *
@@ -2963,7 +2967,7 @@ gimp_image_set_active_layer (GimpImage *image,
   if (floating_sel && layer != floating_sel)
     return floating_sel;
 
-  if (layer != image->active_layer)
+  if (layer != private->active_layer)
     {
       if (layer)
         {
@@ -2973,24 +2977,26 @@ gimp_image_set_active_layer (GimpImage *image,
         }
 
       /*  Don't cache selection info for the previous active layer  */
-      if (image->active_layer)
-        gimp_drawable_invalidate_boundary (GIMP_DRAWABLE (image->active_layer));
+      if (private->active_layer)
+        gimp_drawable_invalidate_boundary (GIMP_DRAWABLE (private->active_layer));
 
-      image->active_layer = layer;
+      private->active_layer = layer;
 
       g_signal_emit (image, gimp_image_signals[ACTIVE_LAYER_CHANGED], 0);
 
-      if (layer && image->active_channel)
+      if (layer && private->active_channel)
         gimp_image_set_active_channel (image, NULL);
     }
 
-  return image->active_layer;
+  return private->active_layer;
 }
 
 GimpChannel *
 gimp_image_set_active_channel (GimpImage   *image,
                                GimpChannel *channel)
 {
+  GimpImagePrivate *private;
+
   g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
   g_return_val_if_fail (channel == NULL || GIMP_IS_CHANNEL (channel), NULL);
   g_return_val_if_fail (channel == NULL ||
@@ -2998,21 +3004,23 @@ gimp_image_set_active_channel (GimpImage   *image,
                          gimp_item_get_image (GIMP_ITEM (channel)) == image),
                         NULL);
 
+  private = GIMP_IMAGE_GET_PRIVATE (image);
+
   /*  Not if there is a floating selection  */
   if (channel && gimp_image_get_floating_selection (image))
     return NULL;
 
-  if (channel != image->active_channel)
+  if (channel != private->active_channel)
     {
-      image->active_channel = channel;
+      private->active_channel = channel;
 
       g_signal_emit (image, gimp_image_signals[ACTIVE_CHANNEL_CHANGED], 0);
 
-      if (channel && image->active_layer)
+      if (channel && private->active_layer)
         gimp_image_set_active_layer (image, NULL);
     }
 
-  return image->active_channel;
+  return private->active_channel;
 }
 
 GimpChannel *
@@ -3041,6 +3049,8 @@ GimpVectors *
 gimp_image_set_active_vectors (GimpImage   *image,
                                GimpVectors *vectors)
 {
+  GimpImagePrivate *private;
+
   g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
   g_return_val_if_fail (vectors == NULL || GIMP_IS_VECTORS (vectors), NULL);
   g_return_val_if_fail (vectors == NULL ||
@@ -3048,14 +3058,16 @@ gimp_image_set_active_vectors (GimpImage   *image,
                          gimp_item_get_image (GIMP_ITEM (vectors)) == image),
                         NULL);
 
-  if (vectors != image->active_vectors)
+  private = GIMP_IMAGE_GET_PRIVATE (image);
+
+  if (vectors != private->active_vectors)
     {
-      image->active_vectors = vectors;
+      private->active_vectors = vectors;
 
       g_signal_emit (image, gimp_image_signals[ACTIVE_VECTORS_CHANGED], 0);
     }
 
-  return image->active_vectors;
+  return private->active_vectors;
 }
 
 GimpLayer *
diff --git a/app/core/gimpimage.h b/app/core/gimpimage.h
index 62ef196..8c6e3cb 100644
--- a/app/core/gimpimage.h
+++ b/app/core/gimpimage.h
@@ -105,10 +105,6 @@ struct _GimpImage
 
   Gimp              *gimp;                  /*  the GIMP the image belongs to*/
 
-  GimpLayer         *active_layer;          /*  the active layer             */
-  GimpChannel       *active_channel;        /*  the active channel           */
-  GimpVectors       *active_vectors;        /*  the active vectors           */
-
   GimpLayer         *floating_sel;          /*  the FS layer                 */
   GimpChannel       *selection_mask;        /*  the selection mask channel   */
 



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