home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2002 April / pcpro0402.iso / essentials / graphics / Gimp / gimp-src-20001226.exe / src / gimp / app / gimpbrush.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-12-20  |  2.7 KB  |  76 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.  
  19. #ifndef __GIMP_BRUSH_H__
  20. #define __GIMP_BRUSH_H__
  21.  
  22.  
  23. #include "gimpobject.h"
  24. #include "temp_buf.h"
  25.  
  26. #include "libgimp/gimpvector.h"
  27.  
  28.  
  29. typedef struct _GimpBrushClass       GimpBrushClass;
  30.  
  31. struct _GimpBrush
  32. {
  33.   GimpObject   gobject;
  34.  
  35.   gchar       *filename;   /*  actual filename--brush's location on disk  */
  36.   gchar       *name;       /*  brush's name--for brush selection dialog   */
  37.   gint         spacing;    /*  brush's spacing                            */
  38.   GimpVector2  x_axis;     /*  for calculating brush spacing              */
  39.   GimpVector2  y_axis;     /*  for calculating brush spacing              */
  40.   TempBuf     *mask;       /*  the actual mask                            */
  41.   TempBuf     *pixmap;     /*  optional pixmap data                       */
  42. };
  43.  
  44. struct _GimpBrushClass
  45. {
  46.   GimpObjectClass parent_class;
  47.  
  48.   GimpBrush * (* select_brush)     (PaintCore *paint_core);
  49.   gboolean    (* want_null_motion) (PaintCore *paint_core);
  50. };
  51.  
  52. #define GIMP_BRUSH_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gimp_brush_get_type(), GimpBrushClass)
  53. #define GIMP_TYPE_BRUSH         (gimp_brush_get_type ())
  54. #define GIMP_BRUSH(obj)         (GTK_CHECK_CAST ((obj), GIMP_TYPE_BRUSH, GimpBrush))
  55. #define GIMP_IS_BRUSH(obj)      (GTK_CHECK_TYPE ((obj), GIMP_TYPE_BRUSH))
  56.  
  57. GtkType     gimp_brush_get_type    (void);
  58. GimpBrush * gimp_brush_load        (gchar     *filename);
  59.  
  60. GimpBrush * gimp_brush_load_brush  (gint       fd,
  61.                     gchar     *filename);
  62.  
  63. TempBuf   * gimp_brush_get_mask    (GimpBrush *brush);
  64. TempBuf *   gimp_brush_get_pixmap  (GimpBrush *brush);
  65.  
  66. gchar     * gimp_brush_get_name    (GimpBrush *brush);
  67. void        gimp_brush_set_name    (GimpBrush *brush,
  68.                     gchar     *name);
  69.  
  70. gint        gimp_brush_get_spacing (GimpBrush *brush);
  71. void        gimp_brush_set_spacing (GimpBrush *brush,
  72.                     gint       spacing);
  73.  
  74.  
  75. #endif /* __GIMP_BRUSH_H__ */
  76.