smooth view transformations, set the smoothview value to about 250 and the view anima...
[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 #include "DNA_listBase.h"
39
40 /* themes; defines in BIF_resource.h */
41
42 // global, button colors
43
44 typedef struct ThemeUI {
45         char outline[4];
46         char neutral[4];
47         char action[4];
48         char setting[4];
49         char setting1[4];
50         char setting2[4];
51         char num[4];
52         char textfield[4];
53         char textfield_hi[4];
54         char popup[4];
55         char text[4];
56         char text_hi[4];
57         char menu_back[4];
58         char menu_item[4];
59         char menu_hilite[4];
60         char menu_text[4];
61         char menu_text_hi[4];
62         
63         char but_drawtype;
64         char pad[3];
65         char iconfile[80];      // FILE_MAXFILE length
66
67 } ThemeUI;
68
69 // try to put them all in one, if needed a special struct can be created as well
70 // for example later on, when we introduce wire colors for ob types or so...
71 typedef struct ThemeSpace {
72         char back[4];
73         char text[4];   
74         char text_hi[4];
75         char header[4];
76         char panel[4];
77         
78         char shade1[4];
79         char shade2[4];
80         
81         char hilite[4];
82         char grid[4]; 
83         
84         char wire[4], select[4];
85         char lamp[4];
86         char active[4], group[4], group_active[4], transform[4];
87         char vertex[4], vertex_select[4];
88         char edge[4], edge_select[4];
89         char edge_seam[4], edge_sharp[4], edge_facesel[4];
90         char face[4], face_select[4];   // solid faces
91         char face_dot[4];                               // selected color
92         char normal[4];
93         char bone_solid[4], bone_pose[4];
94         char strip[4], strip_select[4];
95         
96         char vertex_size, facedot_size;
97         char bpad[2]; 
98
99         char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes
100         char syntaxv[4], syntaxc[4];
101         
102         char movie[4], image[4], scene[4], audio[4];            // for sequence editor
103         char effect[4], plugin[4], transition[4], meta[4];
104         char bpad1[4]; 
105         
106 } ThemeSpace;
107
108
109 typedef struct bTheme {
110         struct bTheme *next, *prev;
111         char name[32];
112         
113         ThemeUI tui;
114         
115         ThemeSpace tbuts;       
116         ThemeSpace tv3d;
117         ThemeSpace tfile;
118         ThemeSpace tipo;
119         ThemeSpace tinfo;       
120         ThemeSpace tsnd;
121         ThemeSpace tact;
122         ThemeSpace tnla;
123         ThemeSpace tseq;
124         ThemeSpace tima;
125         ThemeSpace timasel;
126         ThemeSpace text;
127         ThemeSpace toops;
128         ThemeSpace ttime;
129         ThemeSpace tnode;
130
131         unsigned char bpad[4], bpad1[4];
132         
133 } bTheme;
134
135 typedef struct SolidLight {
136         int flag, pad;
137         float col[4], spec[4], vec[4];
138 } SolidLight;
139
140 typedef struct UserDef {
141         int flag, dupflag;
142         int savetime;
143         char tempdir[160];      // FILE_MAXDIR length
144         char fontdir[160];
145         char renderdir[160];
146         char textudir[160];
147         char plugtexdir[160];
148         char plugseqdir[160];
149         char pythondir[160];
150         char sounddir[160];
151         /* yafray: temporary xml export directory */
152         char yfexportdir[160];
153         short versions, vrmlflag;       // tmp for export, will be replaced by strubi
154         int gameflags;
155         int wheellinescroll;
156         int uiflag, language;
157         short userpref, viewzoom;
158         short console_buffer;   //console vars here for tuhopuu compat, --phase
159         short console_out;
160         int mixbufsize;
161         int fontsize;
162         short encoding;
163         short transopts;
164         short menuthreshold1, menuthreshold2;
165         char fontname[256];             // FILE_MAXDIR+FILE length
166         struct ListBase themes;
167         short undosteps;
168         short curssize;
169         short tb_leftmouse, tb_rightmouse;
170         struct SolidLight light[3];
171         short tw_hotspot, tw_flag, tw_handlesize, tw_size;
172         int textimeout, texcollectrate;
173         int memcachelimit;
174         short frameserverport;
175         short pad_rot_angle;    /*control the rotation step of the view when PAD2,PAD4,PAD6&PAD8 is use*/
176         short obcenter_dia;
177         short rvisize;                  /* rotating view icon size */
178         short rvibright;                /* rotating view icon brightness */
179         char versemaster[160];
180         char verseuser[160];
181         short recent_files;             /* maximum number of recently used files to remember  */
182         short smooth_viewtx;    /* miliseconds to spend spinning the view */
183         char pad[6];
184 } UserDef;
185
186 extern UserDef U; /* from usiblender.c !!!! */
187
188 /* ***************** USERDEF ****************** */
189
190 /* flag */
191 #define USER_AUTOSAVE                   1
192 #define USER_AUTOGRABGRID               2
193 #define USER_AUTOROTGRID                4
194 #define USER_AUTOSIZEGRID               8
195 #define USER_SCENEGLOBAL                16
196 #define USER_TRACKBALL                  32
197 #define USER_DUPLILINK                  64
198 #define USER_FSCOLLUM                   128
199 #define USER_MAT_ON_OB                  256
200 #define USER_NO_CAPSLOCK                512
201 #define USER_VIEWMOVE                   1024
202 #define USER_TOOLTIPS                   2048
203 #define USER_TWOBUTTONMOUSE             4096
204 #define USER_NONUMPAD                   8192
205 #define USER_LMOUSESELECT               16384
206 #define USER_FILECOMPRESS               32768
207
208 /* viewzom */
209 #define USER_ZOOM_CONT                  0
210 #define USER_ZOOM_SCALE                 1
211 #define USER_ZOOM_DOLLY                 2
212
213 /* uiflag */
214
215 #define USER_KEYINSERTACT               1
216 #define USER_KEYINSERTOBJ               2
217 #define USER_WHEELZOOMDIR               4
218 #define USER_FILTERFILEEXTS             8
219 #define USER_DRAWVIEWINFO               16
220 #define USER_PLAINMENUS                 32              // old EVTTOCONSOLE print ghost events, here for tuhopuu compat. --phase
221                                                                 // old flag for hide pulldown was here 
222 #define USER_FLIPFULLSCREEN             128
223 #define USER_ALLWINCODECS               256
224 #define USER_MENUOPENAUTO               512
225 #define USER_PANELPINNED                1024
226 #define USER_AUTOPERSP                  2048
227 #define USER_LOCKAROUND         4096
228 #define USER_GLOBALUNDO         8192
229 #define USER_ORBIT_SELECTION    16384
230 #define USER_KEYINSERTAVAI              32768
231 #define USER_HIDE_DOT                   65536
232 #define USER_SHOW_ROTVIEWICON   131072
233 #define USER_SHOW_VIEWPORTNAME  262144
234 #define USER_KEYINSERTNEED              524288
235
236 /* transopts */
237
238 #define USER_TR_TOOLTIPS                1
239 #define USER_TR_BUTTONS                 2
240 #define USER_TR_MENUS                   4
241 #define USER_TR_FILESELECT              8
242 #define USER_TR_TEXTEDIT                16
243 #define USER_DOTRANSLATE                32
244 #define USER_USETEXTUREFONT             64
245
246 /* dupflag */
247
248 #define USER_DUP_MESH                   1
249 #define USER_DUP_CURVE                  2
250 #define USER_DUP_SURF                   4
251 #define USER_DUP_FONT                   8
252 #define USER_DUP_MBALL                  16
253 #define USER_DUP_LAMP                   32
254 #define USER_DUP_IPO                    64
255 #define USER_DUP_MAT                    128
256 #define USER_DUP_TEX                    256
257 #define USER_DUP_ARM                    512
258 #define USER_DUP_ACT                    1024
259
260 /* gameflags */
261
262 #define USER_VERTEX_ARRAYS              1
263 #define USER_DISABLE_SOUND              2
264 #define USER_DISABLE_MIPMAP             4
265
266 /* vrml flag */
267
268 #define USER_VRML_LAYERS                1
269 #define USER_VRML_AUTOSCALE             2
270 #define USER_VRML_TWOSIDED              4
271
272 /* tw_flag (transform widget) */
273
274
275 #endif