Cleanup: remove redundant doxygen \file argument
[blender.git] / source / blender / blenlib / BLI_callbacks.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16
17 /** \file \ingroup bli
18  */
19
20 #ifndef __BLI_CALLBACKS_H__
21 #define __BLI_CALLBACKS_H__
22
23 struct ID;
24 struct Main;
25
26 /**
27  * Common suffix uses:
28  * - ``_PRE/_POST``:
29  *   For handling discrete non-interactive events.
30  * - ``_INIT/_COMPLETE/_CANCEL``:
31  *   For handling jobs (which may in turn cause other handlers to be called).
32  */
33 typedef enum {
34         BLI_CB_EVT_FRAME_CHANGE_PRE,
35         BLI_CB_EVT_FRAME_CHANGE_POST,
36         BLI_CB_EVT_RENDER_PRE,
37         BLI_CB_EVT_RENDER_POST,
38         BLI_CB_EVT_RENDER_WRITE,
39         BLI_CB_EVT_RENDER_STATS,
40         BLI_CB_EVT_RENDER_INIT,
41         BLI_CB_EVT_RENDER_COMPLETE,
42         BLI_CB_EVT_RENDER_CANCEL,
43         BLI_CB_EVT_LOAD_PRE,
44         BLI_CB_EVT_LOAD_POST,
45         BLI_CB_EVT_SAVE_PRE,
46         BLI_CB_EVT_SAVE_POST,
47         BLI_CB_EVT_UNDO_PRE,
48         BLI_CB_EVT_UNDO_POST,
49         BLI_CB_EVT_REDO_PRE,
50         BLI_CB_EVT_REDO_POST,
51         BLI_CB_EVT_DEPSGRAPH_UPDATE_PRE,
52         BLI_CB_EVT_DEPSGRAPH_UPDATE_POST,
53         BLI_CB_EVT_VERSION_UPDATE,
54         BLI_CB_EVT_LOAD_FACTORY_STARTUP_POST,
55         BLI_CB_EVT_TOT
56 } eCbEvent;
57
58
59 typedef struct bCallbackFuncStore {
60         struct bCallbackFuncStore *next, *prev;
61         void (*func)(struct Main *, struct ID *, void *arg);
62         void *arg;
63         short alloc;
64 } bCallbackFuncStore;
65
66
67 void BLI_callback_exec(struct Main *bmain, struct ID *self, eCbEvent evt);
68 void BLI_callback_add(bCallbackFuncStore *funcstore, eCbEvent evt);
69
70 void BLI_callback_global_init(void);
71 void BLI_callback_global_finalize(void);
72
73 #endif /* __BLI_CALLBACKS_H__ */