2.5 / Nodes
[blender.git] / source / blender / editors / space_node / node_intern.h
1 /**
2  * $Id:
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (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, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2008 Blender Foundation.
21  * All rights reserved.
22  *
23  * 
24  * Contributor(s): Blender Foundation
25  *
26  * ***** END GPL LICENSE BLOCK *****
27  */
28 #ifndef ED_NODE_INTERN_H
29 #define ED_NODE_INTERN_H
30
31 /* internal exports only */
32
33 struct ARegion;
34 struct View2D;
35 struct bContext;
36 struct wmWindowManager;
37
38 /* defines */
39
40 #define NODE_SELECT_MOUSE               1
41
42 /* border select defines XXX these seem to be hardcode values still in border select invoke, check */
43 #define NODE_EXTEND                             1
44 #define NODE_EXCLUSIVE                  3
45
46 /* node_header.c */
47 void node_header_buttons(const bContext *C, ARegion *ar);
48
49 /* node_draw.c */
50 void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d);
51
52 /* node_ops.c */
53 void node_operatortypes(void);
54 void node_keymap(wmWindowManager *wm);
55
56 /* node_select.c */
57 void NODE_OT_select(struct wmOperatorType *ot);
58 void NODE_OT_extend_select(struct wmOperatorType *ot);
59 void NODE_OT_toggle_visibility(struct wmOperatorType *ot);
60 void NODE_OT_fit_all(struct wmOperatorType *ot);
61 void NODE_OT_border_select(struct wmOperatorType *ot);
62
63 /* drawnode.c */
64 void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link);
65 void node_draw_link_bezier(View2D *v2d, float vec[][3], int th_col1, int th_col2, int do_shaded);
66 void draw_nodespace_back_pix(ScrArea *sa, SpaceNode *snode);
67
68 /* node_edit.c */
69 bNode *next_node(bNodeTree *ntree);
70 bNode *node_add_node(SpaceNode *snode, int type, float locx, float locy);
71 void snode_set_context(SpaceNode *snode, Scene *scene);
72 void scale_node(SpaceNode *snode, bNode *node);
73 void snode_make_group_editable(SpaceNode *snode, bNode *gnode);
74 void snode_home(ScrArea *sa, ARegion *ar, SpaceNode *snode);
75 void node_set_active(SpaceNode *snode, bNode *node);
76 void node_deselectall(SpaceNode *snode, int swap);
77
78 // XXXXXX
79
80 // XXX from BSE_node.h
81 #define HIDDEN_RAD              15.0f
82 #define BASIS_RAD               8.0f
83 #define NODE_DYS                10
84 #define NODE_DY                 20
85 #define NODE_SOCKSIZE   5
86
87 // XXX button events (butspace)
88 enum {
89         B_NOP = 0,
90         B_REDR  = 1,
91         B_NODE_USEMAT,
92         B_NODE_USESCENE,
93         B_NODE_USETEX,
94         B_TEXBROWSE,
95         B_TEXALONE,
96         B_TEXLOCAL,
97         B_TEXDELETE,
98         B_TEXPRV,
99         B_AUTOTEXNAME,
100         B_KEEPDATA,
101         B_NODE_EXEC,
102         B_MATPRV,
103         B_NODE_LOADIMAGE,
104         B_NODE_SETIMAGE,
105 } eActHeader_ButEvents;
106
107 #endif /* ED_NODE_INTERN_H */