Graph editor: Add channel option to make it persistent on display
[blender.git] / source / blender / editors / include / ED_paint.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (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 Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * ***** END GPL LICENSE BLOCK *****
19  */
20
21 /** \file ED_paint.h
22  *  \ingroup editors
23  */
24
25 #ifndef __ED_PAINT_H__
26 #define __ED_PAINT_H__
27
28 struct bContext;
29 struct wmKeyConfig;
30 struct wmOperator;
31
32 /* paint_ops.c */
33 void ED_operatortypes_paint(void);
34 void ED_operatormacros_paint(void);
35 void ED_keymap_paint(struct wmKeyConfig *keyconf);
36
37 /* paint_undo.c */
38 enum {
39         UNDO_PAINT_IMAGE    = 0,
40         UNDO_PAINT_MESH     = 1,
41 };
42
43 typedef void (*UndoRestoreCb)(struct bContext *C, struct ListBase *lb);
44 typedef void (*UndoFreeCb)(struct ListBase *lb);
45 typedef bool (*UndoCleanupCb)(struct bContext *C, struct ListBase *lb);
46
47 int ED_undo_paint_step(struct bContext *C, int type, int step, const char *name);
48 void ED_undo_paint_step_num(struct bContext *C, int type, int num);
49 const char *ED_undo_paint_get_name(struct bContext *C, int type, int nr, bool *r_active);
50 void ED_undo_paint_free(void);
51 bool ED_undo_paint_is_valid(int type, const char *name);
52 bool ED_undo_paint_empty(int type);
53 void ED_undo_paint_push_begin(int type, const char *name, UndoRestoreCb restore, UndoFreeCb free, UndoCleanupCb cleanup);
54 void ED_undo_paint_push_end(int type);
55
56 /* paint_image.c */
57 /* image painting specific undo */
58 void ED_image_undo_restore(struct bContext *C, struct ListBase *lb);
59 void ED_image_undo_free(struct ListBase *lb);
60 void ED_imapaint_clear_partial_redraw(void);
61 void ED_imapaint_dirty_region(struct Image *ima, struct ImBuf *ibuf, int x, int y, int w, int h, bool find_old);
62 void ED_imapaint_bucket_fill(struct bContext *C, float color[3], struct wmOperator *op);
63
64 #endif /* __ED_PAINT_H__ */