1 /* GIMP - The GNU Image Manipulation Program
2  * Copyright (C) 1995 Spencer Kimball and Peter Mattis
3  *
4  * operations-enums.h
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef __OPERATIONS_ENUMS_H__
21 #define __OPERATIONS_ENUMS_H__
22 
23 
24 #define GIMP_TYPE_LAYER_COLOR_SPACE (gimp_layer_color_space_get_type ())
25 
26 GType gimp_layer_color_space_get_type (void) G_GNUC_CONST;
27 
28 typedef enum
29 {
30   GIMP_LAYER_COLOR_SPACE_AUTO,           /*< desc="Auto"             >*/
31   GIMP_LAYER_COLOR_SPACE_RGB_LINEAR,     /*< desc="RGB (linear)"     >*/
32   GIMP_LAYER_COLOR_SPACE_RGB_PERCEPTUAL, /*< desc="RGB (perceptual)" >*/
33   GIMP_LAYER_COLOR_SPACE_LAB,            /*< desc="LAB", pdb-skip    >*/
34 } GimpLayerColorSpace;
35 
36 
37 #define GIMP_TYPE_LAYER_COMPOSITE_MODE (gimp_layer_composite_mode_get_type ())
38 
39 GType gimp_layer_composite_mode_get_type (void) G_GNUC_CONST;
40 
41 typedef enum
42 {
43   GIMP_LAYER_COMPOSITE_AUTO,             /*< desc="Auto"             >*/
44   GIMP_LAYER_COMPOSITE_UNION,            /*< desc="Union"            >*/
45   GIMP_LAYER_COMPOSITE_CLIP_TO_BACKDROP, /*< desc="Clip to backdrop" >*/
46   GIMP_LAYER_COMPOSITE_CLIP_TO_LAYER,    /*< desc="Clip to layer"    >*/
47   GIMP_LAYER_COMPOSITE_INTERSECTION      /*< desc="Intersection"     >*/
48 } GimpLayerCompositeMode;
49 
50 
51 #define GIMP_TYPE_LAYER_MODE (gimp_layer_mode_get_type ())
52 
53 GType gimp_layer_mode_get_type (void) G_GNUC_CONST;
54 
55 typedef enum
56 {
57   /*  Modes that exist since ancient times  */
58   GIMP_LAYER_MODE_NORMAL_LEGACY,         /*< desc="Normal (legacy)",         abbrev="Normal (l)"            >*/
59   GIMP_LAYER_MODE_DISSOLVE,              /*< desc="Dissolve"                                                >*/
60   GIMP_LAYER_MODE_BEHIND_LEGACY,         /*< desc="Behind (legacy)",         abbrev="Behind (l)"            >*/
61   GIMP_LAYER_MODE_MULTIPLY_LEGACY,       /*< desc="Multiply (legacy)",       abbrev="Multiply (l)"          >*/
62   GIMP_LAYER_MODE_SCREEN_LEGACY,         /*< desc="Screen (legacy)",         abbrev="Screen (l)"            >*/
63   GIMP_LAYER_MODE_OVERLAY_LEGACY,        /*< desc="Old broken Overlay",      abbrev="Old Overlay"           >*/
64   GIMP_LAYER_MODE_DIFFERENCE_LEGACY,     /*< desc="Difference (legacy)",     abbrev="Difference (l)"        >*/
65   GIMP_LAYER_MODE_ADDITION_LEGACY,       /*< desc="Addition (legacy)",       abbrev="Addition (l)"          >*/
66   GIMP_LAYER_MODE_SUBTRACT_LEGACY,       /*< desc="Subtract (legacy)",       abbrev="Subtract (l)"          >*/
67   GIMP_LAYER_MODE_DARKEN_ONLY_LEGACY,    /*< desc="Darken only (legacy)",    abbrev="Darken only (l)"       >*/
68   GIMP_LAYER_MODE_LIGHTEN_ONLY_LEGACY,   /*< desc="Lighten only (legacy)",   abbrev="Lighten only (l)"      >*/
69   GIMP_LAYER_MODE_HSV_HUE_LEGACY,        /*< desc="HSV Hue (legacy)",        abbrev="HSV Hue (l)"           >*/
70   GIMP_LAYER_MODE_HSV_SATURATION_LEGACY, /*< desc="HSV Saturation (legacy)", abbrev="HSV Saturation (l)"    >*/
71   GIMP_LAYER_MODE_HSL_COLOR_LEGACY,      /*< desc="HSL Color (legacy)",      abbrev="HSL Color (l)"         >*/
72   GIMP_LAYER_MODE_HSV_VALUE_LEGACY,      /*< desc="HSV Value (legacy)",      abbrev="HSV Value (l)"         >*/
73   GIMP_LAYER_MODE_DIVIDE_LEGACY,         /*< desc="Divide (legacy)",         abbrev="Divide (l)"            >*/
74   GIMP_LAYER_MODE_DODGE_LEGACY,          /*< desc="Dodge (legacy)",          abbrev="Dodge (l)"             >*/
75   GIMP_LAYER_MODE_BURN_LEGACY,           /*< desc="Burn (legacy)",           abbrev="Burn (l)"              >*/
76   GIMP_LAYER_MODE_HARDLIGHT_LEGACY,      /*< desc="Hard light (legacy)",     abbrev="Hard light (l)"        >*/
77 
78   /*  Since 2.8 (XCF version 2)  */
79   GIMP_LAYER_MODE_SOFTLIGHT_LEGACY,      /*< desc="Soft light (legacy)",     abbrev="Soft light (l)"        >*/
80   GIMP_LAYER_MODE_GRAIN_EXTRACT_LEGACY,  /*< desc="Grain extract (legacy)",  abbrev="Grain extract (l)"     >*/
81   GIMP_LAYER_MODE_GRAIN_MERGE_LEGACY,    /*< desc="Grain merge (legacy)",    abbrev="Grain merge (l)"       >*/
82   GIMP_LAYER_MODE_COLOR_ERASE_LEGACY,    /*< desc="Color erase (legacy)",    abbrev="Color erase (l)"       >*/
83 
84   /*  Since 2.10 (XCF version 9) */
85   GIMP_LAYER_MODE_OVERLAY,               /*< desc="Overlay"                                                 >*/
86   GIMP_LAYER_MODE_LCH_HUE,               /*< desc="LCh Hue"                                                 >*/
87   GIMP_LAYER_MODE_LCH_CHROMA,            /*< desc="LCh Chroma"                                              >*/
88   GIMP_LAYER_MODE_LCH_COLOR,             /*< desc="LCh Color"                                               >*/
89   GIMP_LAYER_MODE_LCH_LIGHTNESS,         /*< desc="LCh Lightness"                                           >*/
90 
91   /*  Since 2.10 (XCF version 10)  */
92   GIMP_LAYER_MODE_NORMAL,                /*< desc="Normal"                                                  >*/
93   GIMP_LAYER_MODE_BEHIND,                /*< desc="Behind"                                                  >*/
94   GIMP_LAYER_MODE_MULTIPLY,              /*< desc="Multiply"                                                >*/
95   GIMP_LAYER_MODE_SCREEN,                /*< desc="Screen"                                                  >*/
96   GIMP_LAYER_MODE_DIFFERENCE,            /*< desc="Difference"                                              >*/
97   GIMP_LAYER_MODE_ADDITION,              /*< desc="Addition"                                                >*/
98   GIMP_LAYER_MODE_SUBTRACT,              /*< desc="Subtract"                                                >*/
99   GIMP_LAYER_MODE_DARKEN_ONLY,           /*< desc="Darken only"                                             >*/
100   GIMP_LAYER_MODE_LIGHTEN_ONLY,          /*< desc="Lighten only"                                            >*/
101   GIMP_LAYER_MODE_HSV_HUE,               /*< desc="HSV Hue"                                                 >*/
102   GIMP_LAYER_MODE_HSV_SATURATION,        /*< desc="HSV Saturation"                                          >*/
103   GIMP_LAYER_MODE_HSL_COLOR,             /*< desc="HSL Color"                                               >*/
104   GIMP_LAYER_MODE_HSV_VALUE,             /*< desc="HSV Value"                                               >*/
105   GIMP_LAYER_MODE_DIVIDE,                /*< desc="Divide"                                                  >*/
106   GIMP_LAYER_MODE_DODGE,                 /*< desc="Dodge"                                                   >*/
107   GIMP_LAYER_MODE_BURN,                  /*< desc="Burn"                                                    >*/
108   GIMP_LAYER_MODE_HARDLIGHT,             /*< desc="Hard light"                                              >*/
109   GIMP_LAYER_MODE_SOFTLIGHT,             /*< desc="Soft light"                                              >*/
110   GIMP_LAYER_MODE_GRAIN_EXTRACT,         /*< desc="Grain extract"                                           >*/
111   GIMP_LAYER_MODE_GRAIN_MERGE,           /*< desc="Grain merge"                                             >*/
112   GIMP_LAYER_MODE_VIVID_LIGHT,           /*< desc="Vivid light"                                             >*/
113   GIMP_LAYER_MODE_PIN_LIGHT,             /*< desc="Pin light"                                               >*/
114   GIMP_LAYER_MODE_LINEAR_LIGHT,          /*< desc="Linear light"                                            >*/
115   GIMP_LAYER_MODE_HARD_MIX,              /*< desc="Hard mix"                                                >*/
116   GIMP_LAYER_MODE_EXCLUSION,             /*< desc="Exclusion"                                               >*/
117   GIMP_LAYER_MODE_LINEAR_BURN,           /*< desc="Linear burn"                                             >*/
118   GIMP_LAYER_MODE_LUMA_DARKEN_ONLY,      /*< desc="Luma/Luminance darken only",  abbrev="Luma darken only"  >*/
119   GIMP_LAYER_MODE_LUMA_LIGHTEN_ONLY,     /*< desc="Luma/Luminance lighten only", abbrev="Luma lighten only" >*/
120   GIMP_LAYER_MODE_LUMINANCE,             /*< desc="Luminance"                                               >*/
121   GIMP_LAYER_MODE_COLOR_ERASE,           /*< desc="Color erase"                                             >*/
122   GIMP_LAYER_MODE_ERASE,                 /*< desc="Erase"                                                   >*/
123   GIMP_LAYER_MODE_MERGE,                 /*< desc="Merge"                                                   >*/
124   GIMP_LAYER_MODE_SPLIT,                 /*< desc="Split"                                                   >*/
125   GIMP_LAYER_MODE_PASS_THROUGH,          /*< desc="Pass through"                                            >*/
126 
127   /*  Internal modes, not available to the PDB, must be kept at the end  */
128   GIMP_LAYER_MODE_REPLACE,               /*< pdb-skip, desc="Replace"                                       >*/
129   GIMP_LAYER_MODE_ANTI_ERASE,            /*< pdb-skip, desc="Anti erase"                                    >*/
130 
131   /*  Layer mode menu separator  */
132   GIMP_LAYER_MODE_SEPARATOR = -1         /*< pdb-skip, skip                                                 >*/
133 } GimpLayerMode;
134 
135 
136 #define GIMP_TYPE_LAYER_MODE_GROUP (gimp_layer_mode_group_get_type ())
137 
138 GType gimp_layer_mode_group_get_type (void) G_GNUC_CONST;
139 
140 typedef enum  /*< pdb-skip >*/
141 {
142   GIMP_LAYER_MODE_GROUP_DEFAULT,     /*< desc="Default"      >*/
143   GIMP_LAYER_MODE_GROUP_LEGACY,      /*< desc="Legacy"       >*/
144 } GimpLayerModeGroup;
145 
146 
147 #define GIMP_TYPE_LAYER_MODE_CONTEXT (gimp_layer_mode_context_get_type ())
148 
149 GType gimp_layer_mode_context_get_type (void) G_GNUC_CONST;
150 
151 typedef enum  /*< pdb-skip >*/
152 {
153   GIMP_LAYER_MODE_CONTEXT_LAYER  = 1 << 0,
154   GIMP_LAYER_MODE_CONTEXT_GROUP  = 1 << 1,
155   GIMP_LAYER_MODE_CONTEXT_PAINT  = 1 << 2,
156   GIMP_LAYER_MODE_CONTEXT_FILTER = 1 << 3,
157 
158   GIMP_LAYER_MODE_CONTEXT_ALL = (GIMP_LAYER_MODE_CONTEXT_LAYER |
159                                  GIMP_LAYER_MODE_CONTEXT_GROUP |
160                                  GIMP_LAYER_MODE_CONTEXT_PAINT |
161                                  GIMP_LAYER_MODE_CONTEXT_FILTER)
162 } GimpLayerModeContext;
163 
164 
165 /*
166  * non-registered enums; register them if needed
167  */
168 
169 typedef enum  /*< pdb-skip, skip >*/
170 {
171   GIMP_LAYER_COMPOSITE_REGION_INTERSECTION = 0,
172   GIMP_LAYER_COMPOSITE_REGION_DESTINATION  = 1 << 0,
173   GIMP_LAYER_COMPOSITE_REGION_SOURCE       = 1 << 1,
174   GIMP_LAYER_COMPOSITE_REGION_UNION        = (GIMP_LAYER_COMPOSITE_REGION_DESTINATION |
175                                               GIMP_LAYER_COMPOSITE_REGION_SOURCE),
176 } GimpLayerCompositeRegion;
177 
178 typedef enum  /*< pdb-skip, skip >*/
179 {
180   GIMP_LAYER_MODE_FLAG_LEGACY                    =  1 << 0,
181   GIMP_LAYER_MODE_FLAG_BLEND_SPACE_IMMUTABLE     =  1 << 1,
182   GIMP_LAYER_MODE_FLAG_COMPOSITE_SPACE_IMMUTABLE =  1 << 2,
183   GIMP_LAYER_MODE_FLAG_COMPOSITE_MODE_IMMUTABLE  =  1 << 3,
184   GIMP_LAYER_MODE_FLAG_SUBTRACTIVE               =  1 << 4,
185   GIMP_LAYER_MODE_FLAG_ALPHA_ONLY                =  1 << 5,
186   GIMP_LAYER_MODE_FLAG_TRIVIAL                   =  1 << 6
187 } GimpLayerModeFlags;
188 
189 
190 #endif /* __OPERATIONS_ENUMS_H__ */
191