home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2002 April / pcpro0402.iso / essentials / graphics / Gimp / gimp-src-20001226.exe / src / gimp / app / toolsF.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-12-17  |  2.7 KB  |  103 lines

  1. /* The GIMP -- an image manipulation program
  2.  * Copyright (C) 1995-1999 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 __TOOLS_F_H__
  20. #define __TOOLS_F_H__
  21.  
  22. #include <gdk/gdk.h>  /*  eeek */
  23.  
  24.  
  25. /*  Tool control actions  */
  26. typedef enum
  27. {
  28.   PAUSE,
  29.   RESUME,
  30.   HALT,
  31.   CURSOR_UPDATE,
  32.   DESTROY,
  33.   RECREATE
  34. } ToolAction;
  35.  
  36. /*  Tool types  */
  37. typedef enum
  38. {
  39.   TOOL_TYPE_NONE     = -1,
  40.   FIRST_TOOLBOX_TOOL = 0,
  41.   RECT_SELECT        = FIRST_TOOLBOX_TOOL,
  42.   ELLIPSE_SELECT,
  43.   FREE_SELECT,
  44.   FUZZY_SELECT,
  45.   BEZIER_SELECT,
  46.   ISCISSORS,
  47.   MOVE,
  48.   MAGNIFY,
  49.   CROP,
  50.   ROTATE,
  51.   SCALE,
  52.   SHEAR,
  53.   PERSPECTIVE,
  54.   FLIP,
  55.   TEXT,
  56.   COLOR_PICKER,
  57.   BUCKET_FILL,
  58.   BLEND,
  59.   PENCIL,
  60.   PAINTBRUSH,
  61.   ERASER,
  62.   AIRBRUSH,
  63.   CLONE,
  64.   CONVOLVE,
  65.   INK,
  66.   DODGEBURN,
  67.   SMUDGE,
  68.   MEASURE,
  69.   LAST_TOOLBOX_TOOL = MEASURE,
  70.  
  71.   /*  Non-toolbox tools  */
  72.   BY_COLOR_SELECT,
  73.   COLOR_BALANCE,
  74.   BRIGHTNESS_CONTRAST,
  75.   HUE_SATURATION,
  76.   POSTERIZE,
  77.   THRESHOLD,
  78.   CURVES,
  79.   LEVELS,
  80.   HISTOGRAM
  81. } ToolType;
  82.  
  83. /*  Structure definitions  */
  84. typedef struct _Tool Tool;
  85. typedef struct _ToolInfo ToolInfo;
  86.  
  87. /*  Tool action function declarations  */
  88. typedef void   (* ButtonPressFunc)    (Tool *, GdkEventButton *, gpointer);
  89. typedef void   (* ButtonReleaseFunc)  (Tool *, GdkEventButton *, gpointer);
  90. typedef void   (* MotionFunc)         (Tool *, GdkEventMotion *, gpointer);
  91. typedef void   (* ArrowKeysFunc)      (Tool *, GdkEventKey *,    gpointer);
  92. typedef void   (* ModifierKeyFunc)    (Tool *, GdkEventKey *,    gpointer);
  93. typedef void   (* CursorUpdateFunc)   (Tool *, GdkEventMotion *, gpointer);
  94. typedef void   (* OperUpdateFunc)     (Tool *, GdkEventMotion *, gpointer);
  95. typedef void   (* ToolCtlFunc)        (Tool *, ToolAction,       gpointer);
  96.  
  97. /*  ToolInfo function declarations  */
  98. typedef Tool * (* ToolInfoNewFunc)    (void);
  99. typedef void   (* ToolInfoFreeFunc)   (Tool *);
  100. typedef void   (* ToolInfoInitFunc)   (GDisplay *);
  101.  
  102. #endif /* __TOOLS_F_H__ */
  103.