[gimp] Add gimp_item_get_container_iter()



commit 6e29b94bd054e0dcedbdbd6905da12699c284fc8
Author: Michael Natterer <mitch gimp org>
Date:   Sat Aug 1 22:40:32 2009 +0200

    Add gimp_item_get_container_iter()
    
    This is just a utility function like gimp_image_get_layer_iter()
    in order to avoid including "core/gimplist.h" whenever a file needs
    access to the actual GList inside the container.

 app/core/gimpitem.c |   15 +++
 app/core/gimpitem.h |  279 ++++++++++++++++++++++++++-------------------------
 2 files changed, 155 insertions(+), 139 deletions(-)
---
diff --git a/app/core/gimpitem.c b/app/core/gimpitem.c
index 6453dbd..281b9dd 100644
--- a/app/core/gimpitem.c
+++ b/app/core/gimpitem.c
@@ -668,6 +668,21 @@ gimp_item_get_container (GimpItem *item)
   return NULL;
 }
 
+GList *
+gimp_item_get_container_iter (GimpItem *item)
+{
+  GimpContainer *container;
+
+  g_return_val_if_fail (GIMP_IS_ITEM (item), NULL);
+
+  container = gimp_item_get_container (container);
+
+  if (container)
+    return GIMP_LIST (container)->list;
+
+  return NULL;
+}
+
 gint
 gimp_item_get_index (GimpItem *item)
 {
diff --git a/app/core/gimpitem.h b/app/core/gimpitem.h
index 8a692d6..3f429a1 100644
--- a/app/core/gimpitem.h
+++ b/app/core/gimpitem.h
@@ -133,145 +133,146 @@ struct _GimpItemClass
 };
 
 
-GType           gimp_item_get_type         (void) G_GNUC_CONST;
-
-void            gimp_item_removed          (GimpItem           *item);
-gboolean        gimp_item_is_removed       (const GimpItem     *item);
-
-gboolean        gimp_item_is_attached      (GimpItem           *item);
-
-GimpContainer * gimp_item_get_container    (GimpItem           *item);
-gint            gimp_item_get_index        (GimpItem           *item);
-
-void            gimp_item_configure        (GimpItem           *item,
-                                            GimpImage          *image,
-                                            gint                offset_x,
-                                            gint                offset_y,
-                                            gint                width,
-                                            gint                height,
-                                            const gchar        *name);
-GimpItem      * gimp_item_duplicate        (GimpItem           *item,
-                                            GType               new_type);
-GimpItem      * gimp_item_convert          (GimpItem           *item,
-                                            GimpImage          *dest_image,
-                                            GType               new_type);
-
-gboolean        gimp_item_rename           (GimpItem           *item,
-                                            const gchar        *new_name,
-                                            GError            **error);
-
-gint            gimp_item_get_width        (const GimpItem     *item);
-gint            gimp_item_get_height       (const GimpItem     *item);
-
-void            gimp_item_get_offset       (const GimpItem     *item,
-                                            gint               *offset_x,
-                                            gint               *offset_y);
-void            gimp_item_set_offset       (GimpItem           *item,
-                                            gint                offset_x,
-                                            gint                offset_y);
-gint            gimp_item_get_offset_x     (GimpItem           *item);
-gint            gimp_item_get_offset_y     (GimpItem           *item);
-
-void            gimp_item_translate        (GimpItem           *item,
-                                            gint                offset_x,
-                                            gint                offset_y,
-                                            gboolean            push_undo);
-
-gboolean        gimp_item_check_scaling    (const GimpItem     *item,
-                                            gint                new_width,
-                                            gint                new_height);
-void            gimp_item_scale            (GimpItem           *item,
-                                            gint                new_width,
-                                            gint                new_height,
-                                            gint                new_offset_x,
-                                            gint                new_offset_y,
-                                            GimpInterpolationType interpolation,
-                                            GimpProgress       *progress);
-gboolean        gimp_item_scale_by_factors (GimpItem           *item,
-                                            gdouble             w_factor,
-                                            gdouble             h_factor,
-                                            GimpInterpolationType interpolation,
-                                            GimpProgress       *progress);
-void            gimp_item_scale_by_origin  (GimpItem           *item,
-                                            gint                new_width,
-                                            gint                new_height,
-                                            GimpInterpolationType interpolation,
-                                            GimpProgress       *progress,
-                                            gboolean            local_origin);
-void            gimp_item_resize           (GimpItem           *item,
-                                            GimpContext        *context,
-                                            gint                new_width,
-                                            gint                new_height,
-                                            gint                offset_x,
-                                            gint                offset_y);
-void            gimp_item_resize_to_image  (GimpItem           *item);
-
-void            gimp_item_flip             (GimpItem           *item,
-                                            GimpContext        *context,
-                                            GimpOrientationType flip_type,
-                                            gdouble             axis,
-                                            gboolean            flip_result);
-void            gimp_item_rotate           (GimpItem           *item,
-                                            GimpContext        *context,
-                                            GimpRotationType    rotate_type,
-                                            gdouble             center_x,
-                                            gdouble             center_y,
-                                            gboolean            flip_result);
-void            gimp_item_transform        (GimpItem           *item,
-                                            GimpContext        *context,
-                                            const GimpMatrix3  *matrix,
-                                            GimpTransformDirection direction,
-                                            GimpInterpolationType interpolation_type,
-                                            gint                recursion_level,
-                                            GimpTransformResize clip_result,
-                                            GimpProgress       *progress);
-
-gboolean        gimp_item_stroke           (GimpItem           *item,
-                                            GimpDrawable       *drawable,
-                                            GimpContext        *context,
-                                            GimpStrokeOptions  *stroke_options,
-                                            gboolean            use_default_values,
-                                            gboolean            push_undo,
-                                            GimpProgress       *progress,
-                                            GError            **error);
-
-GeglNode      * gimp_item_get_node         (GimpItem           *item);
-GeglNode      * gimp_item_get_offset_node  (GimpItem           *item);
-
-
-gint            gimp_item_get_ID           (GimpItem           *item);
-GimpItem      * gimp_item_get_by_ID        (Gimp               *gimp,
-                                            gint                id);
-
-GimpTattoo      gimp_item_get_tattoo       (const GimpItem     *item);
-void            gimp_item_set_tattoo       (GimpItem           *item,
-                                            GimpTattoo          tattoo);
-
-GimpImage     * gimp_item_get_image        (const GimpItem     *item);
-void            gimp_item_set_image        (GimpItem           *item,
-                                            GimpImage          *image);
-
-void            gimp_item_parasite_attach  (GimpItem           *item,
-                                            const GimpParasite *parasite);
-void            gimp_item_parasite_detach  (GimpItem           *item,
-                                            const gchar        *name);
-const GimpParasite *gimp_item_parasite_find(const GimpItem     *item,
-                                            const gchar        *name);
-gchar        ** gimp_item_parasite_list    (const GimpItem     *item,
-                                            gint               *count);
-
-gboolean        gimp_item_get_visible      (const GimpItem     *item);
-void            gimp_item_set_visible      (GimpItem           *item,
-                                            gboolean            visible,
-                                            gboolean            push_undo);
-
-void            gimp_item_set_linked       (GimpItem           *item,
-                                            gboolean            linked,
-                                            gboolean            push_undo);
-gboolean        gimp_item_get_linked       (const GimpItem     *item);
-
-gboolean        gimp_item_is_in_set        (GimpItem           *item,
-                                            GimpItemSet         set);
+GType           gimp_item_get_type           (void) G_GNUC_CONST;
+
+void            gimp_item_removed            (GimpItem           *item);
+gboolean        gimp_item_is_removed         (const GimpItem     *item);
+
+gboolean        gimp_item_is_attached        (GimpItem           *item);
+
+GimpContainer * gimp_item_get_container      (GimpItem           *item);
+GList         * gimp_item_get_container_iter (GimpItem           *item);
+gint            gimp_item_get_index          (GimpItem           *item);
+
+void            gimp_item_configure          (GimpItem           *item,
+                                              GimpImage          *image,
+                                              gint                offset_x,
+                                              gint                offset_y,
+                                              gint                width,
+                                              gint                height,
+                                              const gchar        *name);
+GimpItem      * gimp_item_duplicate          (GimpItem           *item,
+                                              GType               new_type);
+GimpItem      * gimp_item_convert            (GimpItem           *item,
+                                              GimpImage          *dest_image,
+                                              GType               new_type);
+
+gboolean        gimp_item_rename             (GimpItem           *item,
+                                              const gchar        *new_name,
+                                              GError            **error);
+
+gint            gimp_item_get_width          (const GimpItem     *item);
+gint            gimp_item_get_height         (const GimpItem     *item);
+
+void            gimp_item_get_offset         (const GimpItem     *item,
+                                              gint               *offset_x,
+                                              gint               *offset_y);
+void            gimp_item_set_offset         (GimpItem           *item,
+                                              gint                offset_x,
+                                              gint                offset_y);
+gint            gimp_item_get_offset_x       (GimpItem           *item);
+gint            gimp_item_get_offset_y       (GimpItem           *item);
+
+void            gimp_item_translate          (GimpItem           *item,
+                                              gint                offset_x,
+                                              gint                offset_y,
+                                              gboolean            push_undo);
+
+gboolean        gimp_item_check_scaling      (const GimpItem     *item,
+                                              gint                new_width,
+                                              gint                new_height);
+void            gimp_item_scale              (GimpItem           *item,
+                                              gint                new_width,
+                                              gint                new_height,
+                                              gint                new_offset_x,
+                                              gint                new_offset_y,
+                                              GimpInterpolationType interpolation,
+                                              GimpProgress       *progress);
+gboolean        gimp_item_scale_by_factors   (GimpItem           *item,
+                                              gdouble             w_factor,
+                                              gdouble             h_factor,
+                                              GimpInterpolationType interpolation,
+                                              GimpProgress       *progress);
+void            gimp_item_scale_by_origin    (GimpItem           *item,
+                                              gint                new_width,
+                                              gint                new_height,
+                                              GimpInterpolationType interpolation,
+                                              GimpProgress       *progress,
+                                              gboolean            local_origin);
+void            gimp_item_resize             (GimpItem           *item,
+                                              GimpContext        *context,
+                                              gint                new_width,
+                                              gint                new_height,
+                                              gint                offset_x,
+                                              gint                offset_y);
+void            gimp_item_resize_to_image    (GimpItem           *item);
+
+void            gimp_item_flip               (GimpItem           *item,
+                                              GimpContext        *context,
+                                              GimpOrientationType flip_type,
+                                              gdouble             axis,
+                                              gboolean            flip_result);
+void            gimp_item_rotate             (GimpItem           *item,
+                                              GimpContext        *context,
+                                              GimpRotationType    rotate_type,
+                                              gdouble             center_x,
+                                              gdouble             center_y,
+                                              gboolean            flip_result);
+void            gimp_item_transform          (GimpItem           *item,
+                                              GimpContext        *context,
+                                              const GimpMatrix3  *matrix,
+                                              GimpTransformDirection direction,
+                                              GimpInterpolationType interpolation_type,
+                                              gint                recursion_level,
+                                              GimpTransformResize clip_result,
+                                              GimpProgress       *progress);
+
+gboolean        gimp_item_stroke             (GimpItem           *item,
+                                              GimpDrawable       *drawable,
+                                              GimpContext        *context,
+                                              GimpStrokeOptions  *stroke_options,
+                                              gboolean            use_default_values,
+                                              gboolean            push_undo,
+                                              GimpProgress       *progress,
+                                              GError            **error);
+
+GeglNode      * gimp_item_get_node           (GimpItem           *item);
+GeglNode      * gimp_item_get_offset_node    (GimpItem           *item);
+
+
+gint            gimp_item_get_ID             (GimpItem           *item);
+GimpItem      * gimp_item_get_by_ID          (Gimp               *gimp,
+                                              gint                id);
+
+GimpTattoo      gimp_item_get_tattoo         (const GimpItem     *item);
+void            gimp_item_set_tattoo         (GimpItem           *item,
+                                              GimpTattoo          tattoo);
+
+GimpImage     * gimp_item_get_image          (const GimpItem     *item);
+void            gimp_item_set_image          (GimpItem           *item,
+                                              GimpImage          *image);
+
+void            gimp_item_parasite_attach    (GimpItem           *item,
+                                              const GimpParasite *parasite);
+void            gimp_item_parasite_detach    (GimpItem           *item,
+                                              const gchar        *name);
+const GimpParasite * gimp_item_parasite_find (const GimpItem     *item,
+                                              const gchar        *name);
+gchar        ** gimp_item_parasite_list      (const GimpItem     *item,
+                                              gint               *count);
+
+gboolean        gimp_item_get_visible        (const GimpItem     *item);
+void            gimp_item_set_visible        (GimpItem           *item,
+                                              gboolean            visible,
+                                              gboolean            push_undo);
+
+void            gimp_item_set_linked         (GimpItem           *item,
+                                              gboolean            linked,
+                                              gboolean            push_undo);
+gboolean        gimp_item_get_linked         (const GimpItem     *item);
+
+gboolean        gimp_item_is_in_set          (GimpItem           *item,
+                                              GimpItemSet         set);
 
 
 #endif /* __GIMP_ITEM_H__ */



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