c43aa6268cb3c34f9e848befbd9e4547a814d0bc
[blender.git] / source / blender / makesdna / DNA_userdef_types.h
1 /**
2  * blenkernel/DNA_userdef_types.h (mar-2001 nzc)
3  *
4  *      $Id$
5  *
6  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version. The Blender
12  * Foundation also sells licenses for use in proprietary software under
13  * the Blender License.  See http://www.blender.org/BL/ for information
14  * about this.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24  *
25  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
26  * All rights reserved.
27  *
28  * The Original Code is: all of this file.
29  *
30  * Contributor(s): none yet.
31  *
32  * ***** END GPL/BL DUAL LICENSE BLOCK *****
33 */
34
35 #ifndef DNA_USERDEF_TYPES_H
36 #define DNA_USERDEF_TYPES_H
37
38 /* themes; defines in BIF_resource.h */
39
40 // global, button colors
41
42 typedef struct ThemeUI {
43         char outline[4];
44         char neutral[4];
45         char action[4];
46         char setting[4];
47         char setting1[4];
48         char setting2[4];
49         char num[4];
50         char textfield[4];
51         char popup[4];
52         char text[4];
53         char text_hi[4];
54         char menu_back[4];
55         char menu_item[4];
56         char menu_hilite[4];
57         char menu_text[4];
58         char menu_text_hi[4];
59
60         char but_drawtype, pad;
61         short pad1;
62         int pad2;
63
64 } ThemeUI;
65
66 // try to put them all in one, if needed a spacial struct can be created as well
67 // for example later on, when we introduce wire colors for ob types or so...
68 typedef struct ThemeSpace {
69         char back[4];
70         char text[4];   
71         char text_hi[4];
72         char header[4];
73         char panel[4];
74         
75         char shade1[4];
76         char shade2[4];
77         
78         char hilite[4];
79         char grid[4]; 
80         
81         char wire[4], select[4];
82         char active[4], transform[4];
83         char vertex[4], vertex_select[4];
84         char edge[4], edge_select[4];
85         char edge_seam[4], edge_facesel[4];
86         char face[4], face_select[4];
87         
88         char vertex_size, pad;
89         short pad1;
90         
91 } ThemeSpace;
92
93
94 typedef struct bTheme {
95         struct bTheme *next, *prev;
96         char name[32];
97         
98         ThemeUI tui;
99         
100         ThemeSpace tbuts;       
101         ThemeSpace tv3d;
102         ThemeSpace tfile;
103         ThemeSpace tipo;
104         ThemeSpace tinfo;       
105         ThemeSpace tsnd;
106         ThemeSpace tact;
107         ThemeSpace tnla;
108         ThemeSpace tseq;
109         ThemeSpace tima;
110         ThemeSpace timasel;
111         ThemeSpace text;
112         ThemeSpace toops;
113         
114 } bTheme;
115
116 typedef struct SolidLight {
117         int flag, pad;
118         float col[4], spec[4], vec[4];
119 } SolidLight;
120
121 typedef struct UserDef {
122         short flag, dupflag;
123         int savetime;
124         char tempdir[160];      // FILE_MAXDIR length
125         char fontdir[160];
126         char renderdir[160];
127         char textudir[160];
128         char plugtexdir[160];
129         char plugseqdir[160];
130         char pythondir[160];
131         char sounddir[160];
132         /* yafray: temporary xml export directory */
133         char yfexportdir[160];
134         short versions, vrmlflag;       // tmp for export, will be replaced by strubi
135         int gameflags;
136         int wheellinescroll;
137         short uiflag, language;
138         short userpref, viewzoom;
139         short console_buffer;   //console vars here for tuhopuu compat, --phase
140         short console_out;
141         int mixbufsize;
142         int fontsize;
143         short encoding;
144         short transopts;
145         short menuthreshold1, menuthreshold2;
146         char fontname[256];             // FILE_MAXDIR+FILE length
147         struct ListBase themes;
148         short undosteps;
149         short curssize;
150         short tb_leftmouse, tb_rightmouse;
151         struct SolidLight light[3];
152 } UserDef;
153
154 extern UserDef U; /* from usiblender.c !!!! */
155
156 /* ***************** USERDEF ****************** */
157
158 /* flag */
159 #define USER_AUTOSAVE                   1
160 #define USER_AUTOGRABGRID               2
161 #define USER_AUTOROTGRID                4
162 #define USER_AUTOSIZEGRID               8
163 #define USER_SCENEGLOBAL                16
164 #define USER_TRACKBALL                  32
165 #define USER_DUPLILINK                  64
166 #define USER_FSCOLLUM                   128
167 #define USER_MAT_ON_OB                  256
168 #define USER_NO_CAPSLOCK                512
169 #define USER_VIEWMOVE                   1024
170 #define USER_TOOLTIPS                   2048
171 #define USER_TWOBUTTONMOUSE             4096
172 #define USER_NONUMPAD                   8192
173 #define USER_LMOUSESELECT               16384
174
175 /* viewzom */
176 #define USER_ZOOM_CONT                  0
177 #define USER_ZOOM_SCALE                 1
178 #define USER_ZOOM_DOLLY                 2
179
180 /* uiflag */
181
182 #define USER_KEYINSERTACT               1
183 #define USER_KEYINSERTOBJ               2
184 #define USER_WHEELZOOMDIR               4
185 #define USER_FILTERFILEEXTS             8
186 #define USER_DRAWVIEWINFO               16
187 #define USER_EVTTOCONSOLE               32              // print ghost events, here for tuhopuu compat. --phase
188                                                                 // old flag for hide pulldown was here 
189 #define USER_FLIPFULLSCREEN             128
190 #define USER_ALLWINCODECS               256
191 #define USER_MENUOPENAUTO               512
192 #define USER_PANELPINNED                1024
193 #define USER_AUTOPERSP                  2048
194 #define USER_LOCKAROUND         4096
195
196
197 /* transopts */
198
199 #define USER_TR_TOOLTIPS                1
200 #define USER_TR_BUTTONS                 2
201 #define USER_TR_MENUS                   4
202 #define USER_TR_FILESELECT              8
203 #define USER_TR_TEXTEDIT                16
204 #define USER_DOTRANSLATE                32
205
206 /* dupflag */
207
208 #define USER_DUP_MESH                   1
209 #define USER_DUP_CURVE                  2
210 #define USER_DUP_SURF                   4
211 #define USER_DUP_FONT                   8
212 #define USER_DUP_MBALL                  16
213 #define USER_DUP_LAMP                   32
214 #define USER_DUP_IPO                    64
215 #define USER_DUP_MAT                    128
216 #define USER_DUP_TEX                    256
217 #define USER_DUP_ARM                    512
218 #define USER_DUP_ACT                    1024
219
220 /* gameflags */
221
222 #define USER_VERTEX_ARRAYS              1
223 #define USER_DISABLE_SOUND              2
224 #define USER_DISABLE_MIPMAP             4
225
226
227 /* vrml flag */
228
229 #define USER_VRML_LAYERS                1
230 #define USER_VRML_AUTOSCALE             2
231 #define USER_VRML_TWOSIDED              4
232
233 #endif
234