home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2002 April / pcpro0402.iso / essentials / graphics / Gimp / gimp-src-20001226.exe / src / gimp / app / layer_pvt.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-08-22  |  2.4 KB  |  78 lines

  1. /* The GIMP -- an image manipulation program
  2.  * Copyright (C) 1995 Spencer Kimball and Peter Mattis
  3.  *
  4.  * This program is free software; you can redistribute it and/or modify
  5.  * it under the terms of the GNU General Public License as published by
  6.  * the Free Software Foundation; either version 2 of the License, or
  7.  * (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  17.  */
  18. #ifndef __LAYER_PVT_H__
  19. #define __LAYER_PVT_H__
  20.  
  21. #include "layer.h"
  22.  
  23. #include "boundary.h"
  24. #include "drawable.h"
  25. #include "channel.h"
  26. #include "temp_buf.h"
  27. #include "tile_manager.h"
  28.  
  29. #include "drawable_pvt.h"
  30. #include "channel_pvt.h"
  31.  
  32. struct _GimpLayer
  33. {
  34.   GimpDrawable drawable;
  35.  
  36.   gboolean   linked;          /*  control linkage                */
  37.   gboolean   preserve_trans;      /*  preserve transparency          */
  38.  
  39.   LayerMask *mask;                /*  possible layer mask            */
  40.   gint       apply_mask;          /*  controls mask application      */
  41.   gboolean   edit_mask;           /*  edit mask or layer?            */
  42.   gboolean   show_mask;           /*  show mask or layer?            */
  43.  
  44.   gint              opacity;      /*  layer opacity                  */
  45.   LayerModeEffects  mode;         /*  layer combination mode         */
  46.  
  47.   /*  Floating selections  */
  48.   struct
  49.   {
  50.     TileManager  *backing_store;  /*  for obscured regions           */
  51.     GimpDrawable *drawable;       /*  floating sel is attached to    */
  52.     gboolean      initial;        /*  is fs composited yet?          */
  53.  
  54.     gboolean      boundary_known; /*  is the current boundary valid  */
  55.     BoundSeg     *segs;           /*  boundary of floating sel       */
  56.     gint          num_segs;       /*  number of segs in boundary     */
  57.   } fs;
  58. };
  59.  
  60. struct _GimpLayerClass
  61. {
  62.   GimpDrawableClass parent_class;
  63. };
  64.  
  65. struct _GimpLayerMask
  66. {
  67.   GimpChannel drawable;
  68.  
  69.   Layer * layer;                 /*  ID of layer */
  70. };
  71.  
  72. struct _GimpLayerMaskClass
  73. {
  74.   GimpChannelClass parent_class;
  75. };
  76.  
  77. #endif /* __LAYER_PVT_H__ */
  78.