1 /* GIMP - The GNU 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 3 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, see <https://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef __GIMP_IMAGE_UNDO_PUSH_H__
19 #define __GIMP_IMAGE_UNDO_PUSH_H__
20 
21 
22 /*  image undos  */
23 
24 GimpUndo * gimp_image_undo_push_image_type          (GimpImage     *image,
25                                                      const gchar   *undo_desc);
26 GimpUndo * gimp_image_undo_push_image_precision     (GimpImage     *image,
27                                                      const gchar   *undo_desc);
28 GimpUndo * gimp_image_undo_push_image_size          (GimpImage     *image,
29                                                      const gchar   *undo_desc,
30                                                      gint           previous_origin_x,
31                                                      gint           previous_origin_y,
32                                                      gint           previous_width,
33                                                      gint           prevoius_height);
34 GimpUndo * gimp_image_undo_push_image_resolution    (GimpImage     *image,
35                                                      const gchar   *undo_desc);
36 GimpUndo * gimp_image_undo_push_image_grid          (GimpImage     *image,
37                                                      const gchar   *undo_desc,
38                                                      GimpGrid      *grid);
39 GimpUndo * gimp_image_undo_push_image_colormap      (GimpImage     *image,
40                                                      const gchar   *undo_desc);
41 GimpUndo * gimp_image_undo_push_image_color_managed (GimpImage     *image,
42                                                      const gchar   *undo_desc);
43 GimpUndo * gimp_image_undo_push_image_metadata      (GimpImage     *image,
44                                                      const gchar   *undo_desc);
45 GimpUndo * gimp_image_undo_push_image_parasite      (GimpImage     *image,
46                                                      const gchar   *undo_desc,
47                                                      const GimpParasite *parasite);
48 GimpUndo * gimp_image_undo_push_image_parasite_remove (GimpImage   *image,
49                                                      const gchar   *undo_desc,
50                                                      const gchar   *name);
51 
52 
53 /*  guide & sample point undos  */
54 
55 GimpUndo * gimp_image_undo_push_guide               (GimpImage     *image,
56                                                      const gchar   *undo_desc,
57                                                      GimpGuide     *guide);
58 GimpUndo * gimp_image_undo_push_sample_point        (GimpImage     *image,
59                                                      const gchar   *undo_desc,
60                                                      GimpSamplePoint *sample_point);
61 
62 
63 /*  drawable undos  */
64 
65 GimpUndo * gimp_image_undo_push_drawable            (GimpImage     *image,
66                                                      const gchar   *undo_desc,
67                                                      GimpDrawable  *drawable,
68                                                      GeglBuffer    *buffer,
69                                                      gint           x,
70                                                      gint           y);
71 GimpUndo * gimp_image_undo_push_drawable_mod        (GimpImage     *image,
72                                                      const gchar   *undo_desc,
73                                                      GimpDrawable  *drawable,
74                                                      gboolean       copy_buffer);
75 
76 
77 /*  mask undos  */
78 
79 GimpUndo * gimp_image_undo_push_mask                (GimpImage     *image,
80                                                      const gchar   *undo_desc,
81                                                      GimpChannel   *mask);
82 GimpUndo * gimp_image_undo_push_mask_precision      (GimpImage     *image,
83                                                      const gchar   *undo_desc,
84                                                      GimpChannel   *mask);
85 
86 
87 /*  item undos  */
88 
89 GimpUndo * gimp_image_undo_push_item_reorder        (GimpImage     *image,
90                                                      const gchar   *undo_desc,
91                                                      GimpItem      *item);
92 GimpUndo * gimp_image_undo_push_item_rename         (GimpImage     *image,
93                                                      const gchar   *undo_desc,
94                                                      GimpItem      *item);
95 GimpUndo * gimp_image_undo_push_item_displace       (GimpImage     *image,
96                                                      const gchar   *undo_desc,
97                                                      GimpItem      *item);
98 GimpUndo * gimp_image_undo_push_item_visibility     (GimpImage     *image,
99                                                      const gchar   *undo_desc,
100                                                      GimpItem      *item);
101 GimpUndo * gimp_image_undo_push_item_linked         (GimpImage     *image,
102                                                      const gchar   *undo_desc,
103                                                      GimpItem      *item);
104 GimpUndo * gimp_image_undo_push_item_color_tag      (GimpImage     *image,
105                                                      const gchar   *undo_desc,
106                                                      GimpItem      *item);
107 GimpUndo * gimp_image_undo_push_item_lock_content   (GimpImage     *image,
108                                                      const gchar   *undo_desc,
109                                                      GimpItem      *item);
110 GimpUndo * gimp_image_undo_push_item_lock_position  (GimpImage     *image,
111                                                      const gchar   *undo_desc,
112                                                      GimpItem      *item);
113 GimpUndo * gimp_image_undo_push_item_parasite       (GimpImage     *image,
114                                                      const gchar   *undo_desc,
115                                                      GimpItem      *item,
116                                                      const GimpParasite *parasite);
117 GimpUndo * gimp_image_undo_push_item_parasite_remove(GimpImage     *image,
118                                                      const gchar   *undo_desc,
119                                                      GimpItem      *item,
120                                                      const gchar   *name);
121 
122 
123 /*  layer undos  */
124 
125 GimpUndo * gimp_image_undo_push_layer_add           (GimpImage     *image,
126                                                      const gchar   *undo_desc,
127                                                      GimpLayer     *layer,
128                                                      GimpLayer     *prev_layer);
129 GimpUndo * gimp_image_undo_push_layer_remove        (GimpImage     *image,
130                                                      const gchar   *undo_desc,
131                                                      GimpLayer     *layer,
132                                                      GimpLayer     *prev_parent,
133                                                      gint           prev_position,
134                                                      GimpLayer     *prev_layer);
135 GimpUndo * gimp_image_undo_push_layer_mode          (GimpImage     *image,
136                                                      const gchar   *undo_desc,
137                                                      GimpLayer     *layer);
138 GimpUndo * gimp_image_undo_push_layer_opacity       (GimpImage     *image,
139                                                      const gchar   *undo_desc,
140                                                      GimpLayer     *layer);
141 GimpUndo * gimp_image_undo_push_layer_lock_alpha    (GimpImage     *image,
142                                                      const gchar   *undo_desc,
143                                                      GimpLayer     *layer);
144 
145 
146 /*  group layer undos  */
147 
148 GimpUndo *
149     gimp_image_undo_push_group_layer_suspend_resize (GimpImage      *image,
150                                                      const gchar    *undo_desc,
151                                                      GimpGroupLayer *group);
152 GimpUndo *
153      gimp_image_undo_push_group_layer_resume_resize (GimpImage      *image,
154                                                      const gchar    *undo_desc,
155                                                      GimpGroupLayer *group);
156 GimpUndo *
157       gimp_image_undo_push_group_layer_suspend_mask (GimpImage      *image,
158                                                      const gchar    *undo_desc,
159                                                      GimpGroupLayer *group);
160 GimpUndo *
161        gimp_image_undo_push_group_layer_resume_mask (GimpImage      *image,
162                                                      const gchar    *undo_desc,
163                                                      GimpGroupLayer *group);
164 GimpUndo *
165    gimp_image_undo_push_group_layer_start_transform (GimpImage      *image,
166                                                      const gchar    *undo_desc,
167                                                      GimpGroupLayer *group);
168 GimpUndo *
169      gimp_image_undo_push_group_layer_end_transform (GimpImage      *image,
170                                                      const gchar    *undo_desc,
171                                                      GimpGroupLayer *group);
172 GimpUndo * gimp_image_undo_push_group_layer_convert (GimpImage      *image,
173                                                      const gchar    *undo_desc,
174                                                      GimpGroupLayer *group);
175 
176 
177 /*  text layer undos  */
178 
179 GimpUndo * gimp_image_undo_push_text_layer          (GimpImage     *image,
180                                                      const gchar   *undo_desc,
181                                                      GimpTextLayer *layer,
182                                                      const GParamSpec *pspec);
183 GimpUndo * gimp_image_undo_push_text_layer_modified (GimpImage     *image,
184                                                      const gchar   *undo_desc,
185                                                      GimpTextLayer *layer);
186 GimpUndo * gimp_image_undo_push_text_layer_convert  (GimpImage     *image,
187                                                      const gchar   *undo_desc,
188                                                      GimpTextLayer *layer);
189 
190 
191 /*  layer mask undos  */
192 
193 GimpUndo * gimp_image_undo_push_layer_mask_add      (GimpImage     *image,
194                                                      const gchar   *undo_desc,
195                                                      GimpLayer     *layer,
196                                                      GimpLayerMask *mask);
197 GimpUndo * gimp_image_undo_push_layer_mask_remove   (GimpImage     *image,
198                                                      const gchar   *undo_desc,
199                                                      GimpLayer     *layer,
200                                                      GimpLayerMask *mask);
201 GimpUndo * gimp_image_undo_push_layer_mask_apply    (GimpImage     *image,
202                                                      const gchar   *undo_desc,
203                                                      GimpLayer     *layer);
204 GimpUndo * gimp_image_undo_push_layer_mask_show     (GimpImage     *image,
205                                                      const gchar   *undo_desc,
206                                                      GimpLayer     *layer);
207 
208 
209 /*  channel undos  */
210 
211 GimpUndo * gimp_image_undo_push_channel_add         (GimpImage     *image,
212                                                      const gchar   *undo_desc,
213                                                      GimpChannel   *channel,
214                                                      GimpChannel   *prev_channel);
215 GimpUndo * gimp_image_undo_push_channel_remove      (GimpImage     *image,
216                                                      const gchar   *undo_desc,
217                                                      GimpChannel   *channel,
218                                                      GimpChannel   *prev_parent,
219                                                      gint           prev_position,
220                                                      GimpChannel   *prev_channel);
221 GimpUndo * gimp_image_undo_push_channel_color       (GimpImage     *image,
222                                                      const gchar   *undo_desc,
223                                                      GimpChannel   *channel);
224 
225 
226 /*  vectors undos  */
227 
228 GimpUndo * gimp_image_undo_push_vectors_add         (GimpImage     *image,
229                                                      const gchar   *undo_desc,
230                                                      GimpVectors   *vectors,
231                                                      GimpVectors   *prev_vectors);
232 GimpUndo * gimp_image_undo_push_vectors_remove      (GimpImage     *image,
233                                                      const gchar   *undo_desc,
234                                                      GimpVectors   *vectors,
235                                                      GimpVectors   *prev_parent,
236                                                      gint           prev_position,
237                                                      GimpVectors   *prev_vectors);
238 GimpUndo * gimp_image_undo_push_vectors_mod         (GimpImage     *image,
239                                                      const gchar   *undo_desc,
240                                                      GimpVectors   *vectors);
241 
242 
243 /*  floating selection undos  */
244 
245 GimpUndo * gimp_image_undo_push_fs_to_layer         (GimpImage     *image,
246                                                      const gchar   *undo_desc,
247                                                      GimpLayer     *floating_layer);
248 
249 
250 /*  EEK undo  */
251 
252 GimpUndo * gimp_image_undo_push_cantundo            (GimpImage     *image,
253                                                      const gchar   *undo_desc);
254 
255 
256 #endif  /* __GIMP_IMAGE_UNDO_PUSH_H__ */
257