e9ed3677ee7de756c873af46ec2f2c91f9b62fa2
[blender-staging.git] / source / blender / editors / space_outliner / outliner_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
29 #ifndef ED_OUTLINER_INTERN_H
30 #define ED_OUTLINER_INTERN_H
31
32 /* internal exports only */
33
34 struct wmWindowManager;
35 struct wmOperatorType;
36 struct TreeStoreElem;
37 struct bContext;
38 struct Scene;
39 struct ARegion;
40
41 typedef struct TreeElement {
42         struct TreeElement *next, *prev, *parent;
43         ListBase subtree;
44         float xs, ys;           // do selection
45         int store_index;        // offset in tree store
46         short flag, index;      // flag for non-saved stuff, index for data arrays
47         short idcode;           // from TreeStore id
48         short xend;                     // width of item display, for select
49         char *name;
50         void *directdata;       // Armature Bones, Base, Sequence, Strip...
51 }  TreeElement;
52
53 /* TreeElement->flag */
54 #define TE_ACTIVE       1
55 #define TE_ICONROW      2
56
57 /* TreeStoreElem types */
58 #define TSE_NLA                         1
59 #define TSE_NLA_ACTION          2
60 #define TSE_DEFGROUP_BASE       3
61 #define TSE_DEFGROUP            4
62 #define TSE_BONE                        5
63 #define TSE_EBONE                       6
64 #define TSE_CONSTRAINT_BASE     7
65 #define TSE_CONSTRAINT          8
66 #define TSE_MODIFIER_BASE       9
67 #define TSE_MODIFIER            10
68 #define TSE_LINKED_OB           11
69 #define TSE_SCRIPT_BASE         12
70 #define TSE_POSE_BASE           13
71 #define TSE_POSE_CHANNEL        14
72
73 #define TSE_PROXY                       18
74 #define TSE_R_LAYER_BASE        19
75 #define TSE_R_LAYER                     20
76 #define TSE_R_PASS                      21
77 #define TSE_LINKED_MAT          22
78 /* NOTE, is used for light group */
79 #define TSE_LINKED_LAMP         23
80 #define TSE_POSEGRP_BASE        24
81 #define TSE_POSEGRP                     25
82 #define TSE_SEQUENCE            26
83 #define TSE_SEQ_STRIP           27
84 #define TSE_SEQUENCE_DUP        28
85 #define TSE_LINKED_PSYS     29
86
87 /* outliner search flags */
88 #define OL_FIND                                 0
89 #define OL_FIND_CASE                    1
90 #define OL_FIND_COMPLETE                2
91 #define OL_FIND_COMPLETE_CASE   3
92
93 /* button events */
94 #define OL_NAMEBUTTON           1
95
96
97 /* outliner_ops.c */
98 void outliner_operatortypes(void);
99 void outliner_keymap(struct wmWindowManager *wm);
100
101 /* outliner_header.c */
102 void outliner_header_buttons(const struct bContext *C, struct ARegion *ar);
103
104 /* outliner.c */
105 void outliner_operation_menu(struct Scene *scene, struct ARegion *ar, struct SpaceOops *soops);
106 void outliner_select(struct ARegion *ar, struct SpaceOops *so);
107 void draw_outliner(const struct bContext *C);
108
109 void OUTLINER_OT_activate_click(struct wmOperatorType *ot);
110
111 #if 0
112 extern void outliner_free_tree(struct ListBase *lb);
113 extern void outliner_mouse_event(Scene *scene, ARegion *ar, SpaceOops *soops, short event);
114 extern void outliner_toggle_visible(SpaceOops *soops);
115 extern void outliner_show_active(ARegion *ar, SpaceOops *soops);
116 extern void outliner_show_hierarchy(Scene *scene, SpaceOops *soops);
117 extern void outliner_one_level(SpaceOops *soops, int add);
118 extern void outliner_select(Scene *scene, SpaceOops *soops);
119 extern void outliner_toggle_selected(Scene *scene, SpaceOops *soops);
120 extern void outliner_toggle_visibility(Scene *scene, SpaceOops *soops);
121 extern void outliner_toggle_selectability(Scene *scene, SpaceOops *soops);
122 extern void outliner_toggle_renderability(Scene *scene, SpaceOops *soops);
123 extern void outliner_del(Scene *scene, SpaceOops *soops);
124 extern void outliner_page_up_down(Scene *scene, ARegion *ar, SpaceOops *soops, int up);
125 extern void outliner_find_panel(Scene *scene, ARegion *ar, SpaceOops *soops, int again, int flags);
126 #endif
127
128 #endif /* ED_OUTLINER_INTERN_H */
129