[gimp] app: move all GimpGroupLayer members to a private struct



commit a1166819821853e3017b0eeaf23c8ea692708791
Author: Michael Natterer <mitch gimp org>
Date:   Thu Feb 3 22:29:25 2011 +0100

    app: move all GimpGroupLayer members to a private struct

 app/actions/view-commands.c |    2 +-
 app/core/gimpgrouplayer.c   |  338 ++++++++++++++++++++++++-------------------
 app/core/gimpgrouplayer.h   |   22 +--
 3 files changed, 199 insertions(+), 163 deletions(-)
---
diff --git a/app/actions/view-commands.c b/app/actions/view-commands.c
index c0e10fd..8dfeecb 100644
--- a/app/actions/view-commands.c
+++ b/app/actions/view-commands.c
@@ -674,7 +674,7 @@ view_use_gegl_cmd_callback (GtkAction *action,
       GimpLayer *layer = list->data;
 
       if (GIMP_IS_GROUP_LAYER (layer))
-        GIMP_GROUP_LAYER (layer)->projection->use_gegl = active;
+        gimp_group_layer_get_projection (GIMP_GROUP_LAYER (layer))->use_gegl = active;
     }
 
   g_list_free (layers);
diff --git a/app/core/gimpgrouplayer.c b/app/core/gimpgrouplayer.c
index 6c6e5a2..dcd5533 100644
--- a/app/core/gimpgrouplayer.c
+++ b/app/core/gimpgrouplayer.c
@@ -42,8 +42,25 @@
 #include "gimp-intl.h"
 
 
+typedef struct _GimpGroupLayerPrivate GimpGroupLayerPrivate;
+
+struct _GimpGroupLayerPrivate
+{
+  GimpContainer  *children;
+  GimpProjection *projection;
+  GeglNode       *graph;
+  GeglNode       *offset_node;
+  gint            suspend_resize;
+};
+
+#define GET_PRIVATE(item) G_TYPE_INSTANCE_GET_PRIVATE (item, \
+                                                       GIMP_TYPE_GROUP_LAYER, \
+                                                       GimpGroupLayerPrivate)
+
+
 static void            gimp_projectable_iface_init   (GimpProjectableInterface  *iface);
 
+static void            gimp_group_layer_finalize     (GObject         *object);
 static void            gimp_group_layer_set_property (GObject         *object,
                                                       guint            property_id,
                                                       const GValue    *value,
@@ -52,7 +69,6 @@ static void            gimp_group_layer_get_property (GObject         *object,
                                                       guint            property_id,
                                                       GValue          *value,
                                                       GParamSpec      *pspec);
-static void            gimp_group_layer_finalize     (GObject         *object);
 
 static gint64          gimp_group_layer_get_memsize  (GimpObject      *object,
                                                       gint64          *gui_size);
@@ -186,6 +202,8 @@ gimp_group_layer_class_init (GimpGroupLayerClass *klass)
 
   drawable_class->estimate_memsize = gimp_group_layer_estimate_memsize;
   drawable_class->convert_type     = gimp_group_layer_convert_type;
+
+  g_type_class_add_private (klass, sizeof (GimpGroupLayerPrivate));
 }
 
 static void
@@ -204,37 +222,75 @@ gimp_projectable_iface_init (GimpProjectableInterface *iface)
 static void
 gimp_group_layer_init (GimpGroupLayer *group)
 {
-  group->children = gimp_drawable_stack_new (GIMP_TYPE_LAYER);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (group);
 
-  g_signal_connect (group->children, "add",
+  private->children = gimp_drawable_stack_new (GIMP_TYPE_LAYER);
+
+  g_signal_connect (private->children, "add",
                     G_CALLBACK (gimp_group_layer_child_add),
                     group);
-  g_signal_connect (group->children, "remove",
+  g_signal_connect (private->children, "remove",
                     G_CALLBACK (gimp_group_layer_child_remove),
                     group);
 
-  gimp_container_add_handler (group->children, "notify::offset-x",
+  gimp_container_add_handler (private->children, "notify::offset-x",
                               G_CALLBACK (gimp_group_layer_child_move),
                               group);
-  gimp_container_add_handler (group->children, "notify::offset-y",
+  gimp_container_add_handler (private->children, "notify::offset-y",
                               G_CALLBACK (gimp_group_layer_child_move),
                               group);
-  gimp_container_add_handler (group->children, "size-changed",
+  gimp_container_add_handler (private->children, "size-changed",
                               G_CALLBACK (gimp_group_layer_child_resize),
                               group);
 
-  g_signal_connect (group->children, "update",
+  g_signal_connect (private->children, "update",
                     G_CALLBACK (gimp_group_layer_stack_update),
                     group);
 
-  group->projection = gimp_projection_new (GIMP_PROJECTABLE (group));
+  private->projection = gimp_projection_new (GIMP_PROJECTABLE (group));
 
-  g_signal_connect (group->projection, "update",
+  g_signal_connect (private->projection, "update",
                     G_CALLBACK (gimp_group_layer_proj_update),
                     group);
 }
 
 static void
+gimp_group_layer_finalize (GObject *object)
+{
+  GimpGroupLayerPrivate *private = GET_PRIVATE (object);
+
+  if (private->children)
+    {
+      g_signal_handlers_disconnect_by_func (private->children,
+                                            gimp_group_layer_child_add,
+                                            object);
+      g_signal_handlers_disconnect_by_func (private->children,
+                                            gimp_group_layer_child_remove,
+                                            object);
+      g_signal_handlers_disconnect_by_func (private->children,
+                                            gimp_group_layer_stack_update,
+                                            object);
+
+      g_object_unref (private->children);
+      private->children = NULL;
+    }
+
+  if (private->projection)
+    {
+      g_object_unref (private->projection);
+      private->projection = NULL;
+    }
+
+  if (private->graph)
+    {
+      g_object_unref (private->graph);
+      private->graph = NULL;
+    }
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
 gimp_group_layer_set_property (GObject      *object,
                                guint         property_id,
                                const GValue *value,
@@ -262,51 +318,15 @@ gimp_group_layer_get_property (GObject    *object,
     }
 }
 
-static void
-gimp_group_layer_finalize (GObject *object)
-{
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (object);
-
-  if (group->children)
-    {
-      g_signal_handlers_disconnect_by_func (group->children,
-                                            gimp_group_layer_child_add,
-                                            group);
-      g_signal_handlers_disconnect_by_func (group->children,
-                                            gimp_group_layer_child_remove,
-                                            group);
-      g_signal_handlers_disconnect_by_func (group->children,
-                                            gimp_group_layer_stack_update,
-                                            group);
-
-      g_object_unref (group->children);
-      group->children = NULL;
-    }
-
-  if (group->projection)
-    {
-      g_object_unref (group->projection);
-      group->projection = NULL;
-    }
-
-  if (group->graph)
-    {
-      g_object_unref (group->graph);
-      group->graph = NULL;
-    }
-
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
 static gint64
 gimp_group_layer_get_memsize (GimpObject *object,
                               gint64     *gui_size)
 {
-  GimpGroupLayer *group   = GIMP_GROUP_LAYER (object);
-  gint64          memsize = 0;
+  GimpGroupLayerPrivate *private = GET_PRIVATE (object);
+  gint64                 memsize = 0;
 
-  memsize += gimp_object_get_memsize (GIMP_OBJECT (group->children), gui_size);
-  memsize += gimp_object_get_memsize (GIMP_OBJECT (group->projection), gui_size);
+  memsize += gimp_object_get_memsize (GIMP_OBJECT (private->children), gui_size);
+  memsize += gimp_object_get_memsize (GIMP_OBJECT (private->projection), gui_size);
 
   return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object,
                                                                   gui_size);
@@ -315,9 +335,7 @@ gimp_group_layer_get_memsize (GimpObject *object,
 static GimpContainer *
 gimp_group_layer_get_children (GimpViewable *viewable)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (viewable);
-
-  return group->children;
+  return GET_PRIVATE (viewable)->children;
 }
 
 static GimpItem *
@@ -332,14 +350,15 @@ gimp_group_layer_duplicate (GimpItem *item,
 
   if (GIMP_IS_GROUP_LAYER (new_item))
     {
-      GimpGroupLayer *group     = GIMP_GROUP_LAYER (item);
-      GimpGroupLayer *new_group = GIMP_GROUP_LAYER (new_item);
-      gint            position  = 0;
-      GList          *list;
+      GimpGroupLayerPrivate *private     = GET_PRIVATE (item);
+      GimpGroupLayer        *new_group   = GIMP_GROUP_LAYER (new_item);
+      GimpGroupLayerPrivate *new_private = GET_PRIVATE (new_item);
+      gint                   position    = 0;
+      GList                 *list;
 
       gimp_group_layer_suspend_resize (new_group, FALSE);
 
-      for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+      for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
            list;
            list = g_list_next (list))
         {
@@ -367,7 +386,7 @@ gimp_group_layer_duplicate (GimpItem *item,
           gimp_viewable_set_parent (GIMP_VIEWABLE (new_child),
                                     GIMP_VIEWABLE (new_group));
 
-          gimp_container_insert (new_group->children,
+          gimp_container_insert (new_private->children,
                                  GIMP_OBJECT (new_child),
                                  position++);
         }
@@ -387,10 +406,10 @@ static void
 gimp_group_layer_convert (GimpItem  *item,
                           GimpImage *dest_image)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (item);
-  GList          *list;
+  GimpGroupLayerPrivate *private = GET_PRIVATE (item);
+  GList                 *list;
 
-  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
        list;
        list = g_list_next (list))
     {
@@ -408,14 +427,15 @@ gimp_group_layer_translate (GimpItem *item,
                             gint      offset_y,
                             gboolean  push_undo)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (item);
-  GimpLayerMask  *mask;
-  GList          *list;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (item);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (item);
+  GimpLayerMask         *mask;
+  GList                 *list;
 
   /*  don't push an undo here because undo will call us again  */
   gimp_group_layer_suspend_resize (group, FALSE);
 
-  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
        list;
        list = g_list_next (list))
     {
@@ -449,13 +469,14 @@ gimp_group_layer_scale (GimpItem              *item,
                         GimpInterpolationType  interpolation_type,
                         GimpProgress          *progress)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (item);
-  GimpLayerMask  *mask;
-  GList          *list;
-  gdouble         width_factor;
-  gdouble         height_factor;
-  gint            old_offset_x;
-  gint            old_offset_y;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (item);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (item);
+  GimpLayerMask         *mask;
+  GList                 *list;
+  gdouble                width_factor;
+  gdouble                height_factor;
+  gint                   old_offset_x;
+  gint                   old_offset_y;
 
   width_factor  = (gdouble) new_width  / (gdouble) gimp_item_get_width  (item);
   height_factor = (gdouble) new_height / (gdouble) gimp_item_get_height (item);
@@ -465,7 +486,7 @@ gimp_group_layer_scale (GimpItem              *item,
 
   gimp_group_layer_suspend_resize (group, TRUE);
 
-  list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
 
   while (list)
     {
@@ -502,7 +523,7 @@ gimp_group_layer_scale (GimpItem              *item,
         }
       else
         {
-          gimp_container_remove (group->children, GIMP_OBJECT (child));
+          gimp_container_remove (private->children, GIMP_OBJECT (child));
         }
     }
 
@@ -525,17 +546,18 @@ gimp_group_layer_resize (GimpItem    *item,
                          gint         offset_x,
                          gint         offset_y)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (item);
-  GimpLayerMask  *mask;
-  GList          *list;
-  gint            x, y;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (item);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (item);
+  GimpLayerMask         *mask;
+  GList                 *list;
+  gint                   x, y;
 
   x = gimp_item_get_offset_x (item) - offset_x;
   y = gimp_item_get_offset_y (item) - offset_y;
 
   gimp_group_layer_suspend_resize (group, TRUE);
 
-  list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
 
   while (list)
     {
@@ -575,7 +597,7 @@ gimp_group_layer_resize (GimpItem    *item,
         }
       else
         {
-          gimp_container_remove (group->children, GIMP_OBJECT (child));
+          gimp_container_remove (private->children, GIMP_OBJECT (child));
         }
     }
 
@@ -595,13 +617,14 @@ gimp_group_layer_flip (GimpItem            *item,
                        gdouble              axis,
                        gboolean             clip_result)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (item);
-  GimpLayerMask  *mask;
-  GList          *list;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (item);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (item);
+  GimpLayerMask         *mask;
+  GList                 *list;
 
   gimp_group_layer_suspend_resize (group, TRUE);
 
-  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
        list;
        list = g_list_next (list))
     {
@@ -628,13 +651,14 @@ gimp_group_layer_rotate (GimpItem         *item,
                          gdouble           center_y,
                          gboolean          clip_result)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (item);
-  GimpLayerMask  *mask;
-  GList          *list;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (item);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (item);
+  GimpLayerMask         *mask;
+  GList                 *list;
 
   gimp_group_layer_suspend_resize (group, TRUE);
 
-  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
        list;
        list = g_list_next (list))
     {
@@ -663,13 +687,14 @@ gimp_group_layer_transform (GimpItem               *item,
                             GimpTransformResize     clip_result,
                             GimpProgress           *progress)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (item);
-  GimpLayerMask  *mask;
-  GList          *list;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (item);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (item);
+  GimpLayerMask         *mask;
+  GList                 *list;
 
   gimp_group_layer_suspend_resize (group, TRUE);
 
-  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
        list;
        list = g_list_next (list))
     {
@@ -697,12 +722,12 @@ gimp_group_layer_estimate_memsize (const GimpDrawable *drawable,
                                    gint                width,
                                    gint                height)
 {
-  GimpGroupLayer    *group   = GIMP_GROUP_LAYER (drawable);
-  GList             *list;
-  GimpImageBaseType  base_type;
-  gint64             memsize = 0;
+  GimpGroupLayerPrivate *private = GET_PRIVATE (drawable);
+  GList                 *list;
+  GimpImageBaseType      base_type;
+  gint64                 memsize = 0;
 
-  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
        list;
        list = g_list_next (list))
     {
@@ -737,9 +762,10 @@ gimp_group_layer_convert_type (GimpDrawable      *drawable,
                                GimpImageBaseType  new_base_type,
                                gboolean           push_undo)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (drawable);
-  TileManager    *tiles;
-  GimpImageType   new_type;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (drawable);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (drawable);
+  TileManager           *tiles;
+  GimpImageType          new_type;
 
   if (push_undo)
     {
@@ -762,7 +788,7 @@ gimp_group_layer_convert_type (GimpDrawable      *drawable,
 
   gimp_projectable_structure_changed (GIMP_PROJECTABLE (drawable));
 
-  tiles = gimp_projection_get_tiles_at_level (group->projection,
+  tiles = gimp_projection_get_tiles_at_level (private->projection,
                                               0, NULL);
 
   gimp_drawable_set_tiles_full (drawable,
@@ -775,47 +801,48 @@ gimp_group_layer_convert_type (GimpDrawable      *drawable,
 static GeglNode *
 gimp_group_layer_get_graph (GimpProjectable *projectable)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (projectable);
-  GeglNode       *layers_node;
-  GeglNode       *output;
-  gint            off_x;
-  gint            off_y;
+  GimpGroupLayer        *group   = GIMP_GROUP_LAYER (projectable);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (projectable);
+  GeglNode              *layers_node;
+  GeglNode              *output;
+  gint                   off_x;
+  gint                   off_y;
 
-  if (group->graph)
-    return group->graph;
+  if (private->graph)
+    return private->graph;
 
-  group->graph = gegl_node_new ();
+  private->graph = gegl_node_new ();
 
   layers_node =
-    gimp_drawable_stack_get_graph (GIMP_DRAWABLE_STACK (group->children));
+    gimp_drawable_stack_get_graph (GIMP_DRAWABLE_STACK (private->children));
 
-  gegl_node_add_child (group->graph, layers_node);
+  gegl_node_add_child (private->graph, layers_node);
 
   gimp_item_get_offset (GIMP_ITEM (group), &off_x, &off_y);
 
-  group->offset_node = gegl_node_new_child (group->graph,
-                                            "operation", "gegl:translate",
-                                            "x",         (gdouble) -off_x,
-                                            "y",         (gdouble) -off_y,
-                                            NULL);
+  private->offset_node = gegl_node_new_child (private->graph,
+                                              "operation", "gegl:translate",
+                                              "x",         (gdouble) -off_x,
+                                              "y",         (gdouble) -off_y,
+                                              NULL);
 
-  gegl_node_connect_to (layers_node,        "output",
-                        group->offset_node, "input");
+  gegl_node_connect_to (layers_node,          "output",
+                        private->offset_node, "input");
 
-  output = gegl_node_get_output_proxy (group->graph, "output");
+  output = gegl_node_get_output_proxy (private->graph, "output");
 
-  gegl_node_connect_to (group->offset_node, "output",
-                        output,             "input");
+  gegl_node_connect_to (private->offset_node, "output",
+                        output,               "input");
 
-  return group->graph;
+  return private->graph;
 }
 
 static GList *
 gimp_group_layer_get_layers (GimpProjectable *projectable)
 {
-  GimpGroupLayer *group = GIMP_GROUP_LAYER (projectable);
+  GimpGroupLayerPrivate *private = GET_PRIVATE (projectable);
 
-  return gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  return gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
 }
 
 
@@ -837,11 +864,19 @@ gimp_group_layer_new (GimpImage *image)
                                                type));
 
   if (gimp_image_get_projection (image)->use_gegl)
-    group->projection->use_gegl = TRUE;
+    GET_PRIVATE (group)->projection->use_gegl = TRUE;
 
   return GIMP_LAYER (group);
 }
 
+GimpProjection *
+gimp_group_layer_get_projection (GimpGroupLayer *group)
+{
+  g_return_val_if_fail (GIMP_IS_GROUP_LAYER (group), NULL);
+
+  return GET_PRIVATE (group)->projection;
+}
+
 void
 gimp_group_layer_suspend_resize (GimpGroupLayer *group,
                                  gboolean        push_undo)
@@ -859,17 +894,21 @@ gimp_group_layer_suspend_resize (GimpGroupLayer *group,
     gimp_image_undo_push_group_layer_suspend (gimp_item_get_image (item),
                                               NULL, group);
 
-  group->suspend_resize++;
+  GET_PRIVATE (group)->suspend_resize++;
 }
 
 void
 gimp_group_layer_resume_resize (GimpGroupLayer *group,
                                 gboolean        push_undo)
 {
-  GimpItem *item;
+  GimpGroupLayerPrivate *private;
+  GimpItem              *item;
 
   g_return_if_fail (GIMP_IS_GROUP_LAYER (group));
-  g_return_if_fail (group->suspend_resize > 0);
+
+  private = GET_PRIVATE (group);
+
+  g_return_if_fail (private->suspend_resize > 0);
 
   item = GIMP_ITEM (group);
 
@@ -880,9 +919,9 @@ gimp_group_layer_resume_resize (GimpGroupLayer *group,
     gimp_image_undo_push_group_layer_resume (gimp_item_get_image (item),
                                              NULL, group);
 
-  group->suspend_resize--;
+  private->suspend_resize--;
 
-  if (group->suspend_resize == 0)
+  if (private->suspend_resize == 0)
     {
       gimp_group_layer_update_size (group);
     }
@@ -925,7 +964,7 @@ gimp_group_layer_child_resize (GimpLayer      *child,
 static void
 gimp_group_layer_update (GimpGroupLayer *group)
 {
-  if (group->suspend_resize == 0)
+  if (GET_PRIVATE (group)->suspend_resize == 0)
     {
       gimp_group_layer_update_size (group);
     }
@@ -934,19 +973,20 @@ gimp_group_layer_update (GimpGroupLayer *group)
 static void
 gimp_group_layer_update_size (GimpGroupLayer *group)
 {
-  GimpItem *item       = GIMP_ITEM (group);
-  gint      old_x      = gimp_item_get_offset_x (item);
-  gint      old_y      = gimp_item_get_offset_y (item);
-  gint      old_width  = gimp_item_get_width  (item);
-  gint      old_height = gimp_item_get_height (item);
-  gint      x          = 0;
-  gint      y          = 0;
-  gint      width      = 1;
-  gint      height     = 1;
-  gboolean  first      = TRUE;
-  GList    *list;
-
-  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (group->children));
+  GimpGroupLayerPrivate *private    = GET_PRIVATE (group);
+  GimpItem              *item       = GIMP_ITEM (group);
+  gint                   old_x      = gimp_item_get_offset_x (item);
+  gint                   old_y      = gimp_item_get_offset_y (item);
+  gint                   old_width  = gimp_item_get_width  (item);
+  gint                   old_height = gimp_item_get_height (item);
+  gint                   x          = 0;
+  gint                   y          = 0;
+  gint                   width      = 1;
+  gint                   height     = 1;
+  gboolean               first      = TRUE;
+  GList                 *list;
+
+  for (list = gimp_item_stack_get_item_iter (GIMP_ITEM_STACK (private->children));
        list;
        list = g_list_next (list))
     {
@@ -991,7 +1031,7 @@ gimp_group_layer_update_size (GimpGroupLayer *group)
 
           gimp_projectable_structure_changed (GIMP_PROJECTABLE (group));
 
-          tiles = gimp_projection_get_tiles_at_level (group->projection,
+          tiles = gimp_projection_get_tiles_at_level (private->projection,
                                                       0, NULL);
 
           /*  FIXME: need to set the item's extents back to the old
@@ -1020,8 +1060,8 @@ gimp_group_layer_update_size (GimpGroupLayer *group)
                                        x, y, width, height);
         }
 
-      if (group->offset_node)
-        gegl_node_set (group->offset_node,
+      if (private->offset_node)
+        gegl_node_set (private->offset_node,
                        "x", (gdouble) -x,
                        "y", (gdouble) -y,
                        NULL);
@@ -1054,7 +1094,7 @@ gimp_group_layer_stack_update (GimpDrawableStack *stack,
    *  when the actual read happens, so this it not a performance
    *  problem)
    */
-  gimp_pickable_flush (GIMP_PICKABLE (group->projection));
+  gimp_pickable_flush (GIMP_PICKABLE (GET_PRIVATE (group)->projection));
 }
 
 static void
diff --git a/app/core/gimpgrouplayer.h b/app/core/gimpgrouplayer.h
index 1f70d11..db0169f 100644
--- a/app/core/gimpgrouplayer.h
+++ b/app/core/gimpgrouplayer.h
@@ -37,13 +37,7 @@ typedef struct _GimpGroupLayerClass GimpGroupLayerClass;
 
 struct _GimpGroupLayer
 {
-  GimpLayer       parent_instance;
-
-  GimpContainer  *children;
-  GimpProjection *projection;
-  GeglNode       *graph;
-  GeglNode       *offset_node;
-  gint            suspend_resize;
+  GimpLayer  parent_instance;
 };
 
 struct _GimpGroupLayerClass
@@ -52,14 +46,16 @@ struct _GimpGroupLayerClass
 };
 
 
-GType       gimp_group_layer_get_type       (void) G_GNUC_CONST;
+GType            gimp_group_layer_get_type       (void) G_GNUC_CONST;
+
+GimpLayer      * gimp_group_layer_new            (GimpImage      *image);
 
-GimpLayer * gimp_group_layer_new            (GimpImage      *image);
+GimpProjection * gimp_group_layer_get_projection (GimpGroupLayer *group);
 
-void        gimp_group_layer_suspend_resize (GimpGroupLayer *group,
-                                             gboolean        push_undo);
-void        gimp_group_layer_resume_resize  (GimpGroupLayer *group,
-                                             gboolean        push_undo);
+void             gimp_group_layer_suspend_resize (GimpGroupLayer *group,
+                                                  gboolean        push_undo);
+void             gimp_group_layer_resume_resize  (GimpGroupLayer *group,
+                                                  gboolean        push_undo);
 
 
 #endif /* __GIMP_GROUP_LAYER_H__ */



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