home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2002 April / pcpro0402.iso / essentials / graphics / Gimp / gimp-src-20001226.exe / src / gimp / libgimp / gimpparasite.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-06  |  3.9 KB  |  100 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. #ifdef __cplusplus
  27. extern "C" {
  28. #endif /* __cplusplus */
  29.  
  30. /* For information look into the C source or the html documentation */
  31.  
  32.  
  33. #define GIMP_PARASITE_PERSISTENT 1
  34. #define GIMP_PARASITE_UNDOABLE   2
  35.  
  36. #define GIMP_PARASITE_ATTACH_PARENT     (0x80 << 8)
  37. #define GIMP_PARASITE_PARENT_PERSISTENT (GIMP_PARASITE_PERSISTENT << 8)
  38. #define GIMP_PARASITE_PARENT_UNDOABLE   (GIMP_PARASITE_UNDOABLE << 8)
  39.  
  40. #define GIMP_PARASITE_ATTACH_GRANDPARENT     (0x80 << 16)
  41. #define GIMP_PARASITE_GRANDPARENT_PERSISTENT (GIMP_PARASITE_PERSISTENT << 16)
  42. #define GIMP_PARASITE_GRANDPARENT_UNDOABLE   (GIMP_PARASITE_UNDOABLE << 16)
  43.  
  44.  
  45. typedef struct _GimpParasite GimpParasite;
  46.  
  47. struct _GimpParasite
  48. {
  49.   gchar    *name;   /* The name of the parasite. USE A UNIQUE PREFIX! */
  50.   guint32   flags;  /* save Parasite in XCF file, etc.                */
  51.   guint32   size;   /* amount of data                                 */
  52.   gpointer  data;   /* a pointer to the data.  plugin is              *
  53.              * responsible for tracking byte order            */
  54. };
  55.  
  56.  
  57. GimpParasite * gimp_parasite_new                 (const gchar        *name, 
  58.                           guint32             flags,
  59.                           guint32             size, 
  60.                           const gpointer      data);
  61. void           gimp_parasite_free                (GimpParasite       *parasite);
  62.  
  63. GimpParasite * gimp_parasite_copy                (const GimpParasite *parasite);
  64.  
  65. gboolean       gimp_parasite_compare             (const GimpParasite *a, 
  66.                           const GimpParasite *b);
  67.  
  68. gboolean       gimp_parasite_is_type             (const GimpParasite *parasite,
  69.                           const gchar        *name);
  70. gboolean       gimp_parasite_is_persistent       (const GimpParasite *parasite);
  71. gboolean       gimp_parasite_is_undoable         (const GimpParasite *parasite);
  72. gboolean       gimp_parasite_has_flag            (const GimpParasite *parasite,
  73.                           gulong              flag);
  74. gulong         gimp_parasite_flags               (const GimpParasite *parasite);
  75. const gchar  * gimp_parasite_name                (const GimpParasite *parasite);
  76. gpointer       gimp_parasite_data                (const GimpParasite *parasite);
  77. glong          gimp_parasite_data_size           (const GimpParasite *parasite);
  78.  
  79. void           gimp_attach_new_parasite          (const gchar        *name, 
  80.                           gint                flags,
  81.                           gint                size, 
  82.                           const gpointer      data);
  83. void           gimp_drawable_attach_new_parasite (gint32              drawable_ID,
  84.                           const gchar        *name, 
  85.                           gint                flags,
  86.                           gint                size, 
  87.                           const gpointer      data);
  88. void           gimp_image_attach_new_parasite    (gint32              image_ID,
  89.                           const gchar        *name, 
  90.                           gint                flags,
  91.                           gint                size, 
  92.                           const gpointer      data);
  93.  
  94.  
  95. #ifdef __cplusplus
  96. }
  97. #endif /* __cplusplus */
  98.  
  99. #endif /* __GIMP_PARASITE_H__ */
  100.