home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 February / CMCD0205.ISO / Linux / gimp-2.2.0.tar.gz / gimp-2.2.0.tar / gimp-2.2.0 / libgimpbase / gimpparasite.h < prev    next >
C/C++ Source or Header  |  2003-12-05  |  3KB  |  79 lines

  1. /* LIBGIMP - The GIMP Library
  2.  * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
  3.  *
  4.  * gimpparasite.h
  5.  * Copyright (C) 1998 Jay Cox <jaycox@earthlink.net>
  6.  *
  7.  * This library is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU Lesser General Public
  9.  * License as published by the Free Software Foundation; either
  10.  * version 2 of the License, or (at your option) any later version.
  11.  *
  12.  * This library is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  * Lesser General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU Lesser General Public
  18.  * License along with this library; if not, write to the
  19.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  20.  * Boston, MA 02111-1307, USA.
  21.  */
  22.  
  23. #ifndef __GIMP_PARASITE_H__
  24. #define __GIMP_PARASITE_H__
  25.  
  26. G_BEGIN_DECLS
  27.  
  28. /* For information look into the C source or the html documentation */
  29.  
  30.  
  31. #define GIMP_PARASITE_PERSISTENT 1
  32. #define GIMP_PARASITE_UNDOABLE   2
  33.  
  34. #define GIMP_PARASITE_ATTACH_PARENT     (0x80 << 8)
  35. #define GIMP_PARASITE_PARENT_PERSISTENT (GIMP_PARASITE_PERSISTENT << 8)
  36. #define GIMP_PARASITE_PARENT_UNDOABLE   (GIMP_PARASITE_UNDOABLE << 8)
  37.  
  38. #define GIMP_PARASITE_ATTACH_GRANDPARENT     (0x80 << 16)
  39. #define GIMP_PARASITE_GRANDPARENT_PERSISTENT (GIMP_PARASITE_PERSISTENT << 16)
  40. #define GIMP_PARASITE_GRANDPARENT_UNDOABLE   (GIMP_PARASITE_UNDOABLE << 16)
  41.  
  42.  
  43. struct _GimpParasite
  44. {
  45.   gchar    *name;   /* The name of the parasite. USE A UNIQUE PREFIX! */
  46.   guint32   flags;  /* save Parasite in XCF file, etc.                */
  47.   guint32   size;   /* amount of data                                 */
  48.   gpointer  data;   /* a pointer to the data.  plugin is              *
  49.              * responsible for tracking byte order            */
  50. };
  51.  
  52.  
  53. GimpParasite * gimp_parasite_new           (const gchar        *name,
  54.                                             guint32             flags,
  55.                                             guint32             size,
  56.                                             gconstpointer       data);
  57. void           gimp_parasite_free          (GimpParasite       *parasite);
  58.  
  59. GimpParasite * gimp_parasite_copy          (const GimpParasite *parasite);
  60.  
  61. gboolean       gimp_parasite_compare       (const GimpParasite *a,
  62.                                             const GimpParasite *b);
  63.  
  64. gboolean       gimp_parasite_is_type       (const GimpParasite *parasite,
  65.                                             const gchar        *name);
  66. gboolean       gimp_parasite_is_persistent (const GimpParasite *parasite);
  67. gboolean       gimp_parasite_is_undoable   (const GimpParasite *parasite);
  68. gboolean       gimp_parasite_has_flag      (const GimpParasite *parasite,
  69.                                             gulong              flag);
  70. gulong         gimp_parasite_flags         (const GimpParasite *parasite);
  71. const gchar  * gimp_parasite_name          (const GimpParasite *parasite);
  72. gconstpointer  gimp_parasite_data          (const GimpParasite *parasite);
  73. glong          gimp_parasite_data_size     (const GimpParasite *parasite);
  74.  
  75.  
  76. G_END_DECLS
  77.  
  78. #endif /* __GIMP_PARASITE_H__ */
  79.