2 * blenkernel/DNA_userdef_types.h (mar-2001 nzc)
6 * ***** BEGIN GPL LICENSE BLOCK *****
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.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software Foundation,
20 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23 * All rights reserved.
25 * The Original Code is: all of this file.
27 * Contributor(s): none yet.
29 * ***** END GPL LICENSE BLOCK *****
32 #ifndef DNA_USERDEF_TYPES_H
33 #define DNA_USERDEF_TYPES_H
35 #include "DNA_listBase.h"
36 #include "DNA_texture_types.h"
38 /* themes; defines in BIF_resource.h */
41 /* global, button colors */
42 typedef struct ThemeUI {
63 char iconfile[80]; // FILE_MAXFILE length
66 /* try to put them all in one, if needed a special struct can be created as well
67 * for example later on, when we introduce wire colors for ob types or so...
69 typedef struct ThemeSpace {
82 char wire[4], select[4];
84 char active[4], group[4], group_active[4], transform[4];
85 char vertex[4], vertex_select[4];
86 char edge[4], edge_select[4];
87 char edge_seam[4], edge_sharp[4], edge_facesel[4];
88 char face[4], face_select[4]; // solid faces
89 char face_dot[4]; // selected color
91 char bone_solid[4], bone_pose[4];
92 char strip[4], strip_select[4];
94 char ds_channel[4], ds_subchannel[4]; // dopesheet
96 char vertex_size, facedot_size;
99 char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes
100 char syntaxv[4], syntaxc[4];
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 editmesh_active[4];
106 char handle_vertex[4];
107 char handle_vertex_select[4];
108 char handle_vertex_size;
113 /* set of colors for use as a custom color set for Objects/Bones wire drawing */
114 typedef struct ThemeWireColor {
123 /* flags for ThemeWireColor */
124 #define TH_WIRECOLOR_CONSTCOLS (1<<0)
125 #define TH_WIRECOLOR_TEXTCOLS (1<<1)
128 typedef struct bTheme {
129 struct bTheme *next, *prev;
132 /* Interface Elements (buttons, menus, icons) */
135 /* Individual Spacetypes */
152 /* 20 sets of bone colors for this theme */
153 ThemeWireColor tarm[20];
154 /*ThemeWireColor tobj[20];*/
156 unsigned char bpad[4], bpad1[4];
159 typedef struct SolidLight {
161 float col[4], spec[4], vec[4];
164 typedef struct UserDef {
167 char tempdir[160]; // FILE_MAXDIR length
171 char plugtexdir[160];
172 char plugseqdir[160];
175 /* yafray: temporary xml export directory */
176 char yfexportdir[160];
177 short versions, vrmlflag; // tmp for export, will be replaced by strubi
180 int uiflag, language;
181 short userpref, viewzoom;
182 short console_buffer; //console vars here for tuhopuu compat, --phase
188 short menuthreshold1, menuthreshold2;
189 char fontname[256]; // FILE_MAXDIR+FILE length
190 struct ListBase themes;
193 short gp_manhattendist, gp_euclideandist, gp_eraser;
195 short tb_leftmouse, tb_rightmouse;
196 struct SolidLight light[3];
197 short tw_hotspot, tw_flag, tw_handlesize, tw_size;
198 int textimeout, texcollectrate;
201 short frameserverport;
202 short pad_rot_angle; /*control the rotation step of the view when PAD2,PAD4,PAD6&PAD8 is use*/
204 short rvisize; /* rotating view icon size */
205 short rvibright; /* rotating view icon brightness */
206 short recent_files; /* maximum number of recently used files to remember */
207 short smooth_viewtx; /* miliseconds to spend spinning the view */
209 short ndof_pan, ndof_rotate;
210 short curssize, ipo_new;
212 char versemaster[160];
216 short autokey_mode; /* autokeying mode */
217 short autokey_flag; /* flags for autokeying */
219 struct ColorBand coba_weight; /* from texture.h */
222 extern UserDef U; /* from blenkernel blender.c */
224 /* ***************** USERDEF ****************** */
227 #define USER_AUTOSAVE (1 << 0)
228 #define USER_AUTOGRABGRID (1 << 1)
229 #define USER_AUTOROTGRID (1 << 2)
230 #define USER_AUTOSIZEGRID (1 << 3)
231 #define USER_SCENEGLOBAL (1 << 4)
232 #define USER_TRACKBALL (1 << 5)
233 #define USER_DUPLILINK (1 << 6)
234 #define USER_FSCOLLUM (1 << 7)
235 #define USER_MAT_ON_OB (1 << 8)
236 /*#define USER_NO_CAPSLOCK (1 << 9)*/ /* not used anywhere */
237 #define USER_VIEWMOVE (1 << 10)
238 #define USER_TOOLTIPS (1 << 11)
239 #define USER_TWOBUTTONMOUSE (1 << 12)
240 #define USER_NONUMPAD (1 << 13)
241 #define USER_LMOUSESELECT (1 << 14)
242 #define USER_FILECOMPRESS (1 << 15)
243 #define USER_SAVE_PREVIEWS (1 << 16)
244 #define USER_CUSTOM_RANGE (1 << 17)
245 #define USER_ADD_EDITMODE (1 << 18)
246 #define USER_ADD_VIEWALIGNED (1 << 19)
247 #define USER_RELPATHS (1 << 20)
248 #define USER_DRAGIMMEDIATE (1 << 21)
249 #define USER_DONT_DOSCRIPTLINKS (1 << 22)
252 #define USER_ZOOM_CONT 0
253 #define USER_ZOOM_SCALE 1
254 #define USER_ZOOM_DOLLY 2
257 // old flag for #define USER_KEYINSERTACT (1 << 0)
258 // old flag for #define USER_KEYINSERTOBJ (1 << 1)
259 #define USER_WHEELZOOMDIR (1 << 2)
260 #define USER_FILTERFILEEXTS (1 << 3)
261 #define USER_DRAWVIEWINFO (1 << 4)
262 #define USER_PLAINMENUS (1 << 5) // old EVTTOCONSOLE print ghost events, here for tuhopuu compat. --phase
263 // old flag for hide pulldown was here
264 #define USER_FLIPFULLSCREEN (1 << 7)
265 #define USER_ALLWINCODECS (1 << 8)
266 #define USER_MENUOPENAUTO (1 << 9)
267 #define USER_PANELPINNED (1 << 10)
268 #define USER_AUTOPERSP (1 << 11)
269 #define USER_LOCKAROUND (1 << 12)
270 #define USER_GLOBALUNDO (1 << 13)
271 #define USER_ORBIT_SELECTION (1 << 14)
272 // old flag for #define USER_KEYINSERTAVAI (1 << 15)
273 #define USER_ORBIT_ZBUF (1 << 15)
274 #define USER_HIDE_DOT (1 << 16)
275 #define USER_SHOW_ROTVIEWICON (1 << 17)
276 #define USER_SHOW_VIEWPORTNAME (1 << 18)
277 // old flag for #define USER_KEYINSERTNEED (1 << 19)
278 #define USER_ZOOM_TO_MOUSEPOS (1 << 20)
279 #define USER_SHOW_FPS (1 << 21)
280 #define USER_MMB_PASTE (1 << 22)
282 /* Auto-Keying mode */
283 /* AUTOKEY_ON is a bitflag */
285 /* AUTOKEY_ON + 2**n... (i.e. AUTOKEY_MODE_NORMAL = AUTOKEY_ON + 2) to preserve setting, even when autokey turned off */
286 #define AUTOKEY_MODE_NORMAL 3
287 #define AUTOKEY_MODE_EDITKEYS 5
289 /* Auto-Keying flag */
290 #define AUTOKEY_FLAG_INSERTAVAIL (1<<0)
291 #define AUTOKEY_FLAG_INSERTNEEDED (1<<1)
292 #define AUTOKEY_FLAG_AUTOMATKEY (1<<2)
296 #define USER_TR_TOOLTIPS (1 << 0)
297 #define USER_TR_BUTTONS (1 << 1)
298 #define USER_TR_MENUS (1 << 2)
299 #define USER_TR_FILESELECT (1 << 3)
300 #define USER_TR_TEXTEDIT (1 << 4)
301 #define USER_DOTRANSLATE (1 << 5)
302 #define USER_USETEXTUREFONT (1 << 6)
303 #define CONVERT_TO_UTF8 (1 << 7)
306 #define USER_DUP_MESH (1 << 0)
307 #define USER_DUP_CURVE (1 << 1)
308 #define USER_DUP_SURF (1 << 2)
309 #define USER_DUP_FONT (1 << 3)
310 #define USER_DUP_MBALL (1 << 4)
311 #define USER_DUP_LAMP (1 << 5)
312 #define USER_DUP_IPO (1 << 6)
313 #define USER_DUP_MAT (1 << 7)
314 #define USER_DUP_TEX (1 << 8)
315 #define USER_DUP_ARM (1 << 9)
316 #define USER_DUP_ACT (1 << 10)
319 #define USER_DEPRECATED_FLAG 1
320 #define USER_DISABLE_SOUND 2
321 #define USER_DISABLE_MIPMAP 4
324 #define USER_VRML_LAYERS 1
325 #define USER_VRML_AUTOSCALE 2
326 #define USER_VRML_TWOSIDED 4
328 /* tw_flag (transform widget) */
330 /* gp_settings (Grease Pencil Settings) */
331 #define GP_PAINT_DOSMOOTH (1<<0)
332 #define GP_PAINT_DOSIMPLIFY (1<<1)