2 * blenkernel/DNA_userdef_types.h (mar-2001 nzc)
6 * ***** BEGIN GPL/BL DUAL 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. 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
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.
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.
25 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
26 * All rights reserved.
28 * The Original Code is: all of this file.
30 * Contributor(s): none yet.
32 * ***** END GPL/BL DUAL LICENSE BLOCK *****
35 #ifndef DNA_USERDEF_TYPES_H
36 #define DNA_USERDEF_TYPES_H
38 #include "DNA_listBase.h"
39 #include "DNA_texture_types.h"
41 /* themes; defines in BIF_resource.h */
44 /* global, button colors */
45 typedef struct ThemeUI {
66 char iconfile[80]; // FILE_MAXFILE length
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...
72 typedef struct ThemeSpace {
85 char wire[4], select[4];
87 char active[4], group[4], group_active[4], transform[4];
88 char vertex[4], vertex_select[4];
89 char edge[4], edge_select[4];
90 char edge_seam[4], edge_sharp[4], edge_facesel[4];
91 char face[4], face_select[4]; // solid faces
92 char face_dot[4]; // selected color
94 char bone_solid[4], bone_pose[4];
95 char strip[4], strip_select[4];
96 char cframe[4], pad[4];
98 char vertex_size, facedot_size;
101 char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes
102 char syntaxv[4], syntaxc[4];
104 char movie[4], image[4], scene[4], audio[4]; // for sequence editor
105 char effect[4], plugin[4], transition[4], meta[4];
106 char editmesh_active[4];
110 /* set of colors for use as a custom color set for Objects/Bones wire drawing */
111 typedef struct ThemeWireColor {
120 /* flags for ThemeWireColor */
121 #define TH_WIRECOLOR_CONSTCOLS (1<<0)
124 typedef struct bTheme {
125 struct bTheme *next, *prev;
128 /* Interface Elements (buttons, menus, icons) */
131 /* Individual Spacetypes */
148 /* 20 sets of bone colors for this theme */
149 ThemeWireColor tarm[20];
150 /*ThemeWireColor tobj[20];*/
152 unsigned char bpad[4], bpad1[4];
155 typedef struct SolidLight {
157 float col[4], spec[4], vec[4];
160 typedef struct UserDef {
163 char tempdir[160]; // FILE_MAXDIR length
167 char plugtexdir[160];
168 char plugseqdir[160];
171 /* yafray: temporary xml export directory */
172 char yfexportdir[160];
173 short versions, vrmlflag; // tmp for export, will be replaced by strubi
176 int uiflag, language;
177 short userpref, viewzoom;
178 short console_buffer; //console vars here for tuhopuu compat, --phase
184 short menuthreshold1, menuthreshold2;
185 char fontname[256]; // FILE_MAXDIR+FILE length
186 struct ListBase themes;
189 short tb_leftmouse, tb_rightmouse;
190 struct SolidLight light[3];
191 short tw_hotspot, tw_flag, tw_handlesize, tw_size;
192 int textimeout, texcollectrate;
195 short frameserverport;
196 short pad_rot_angle; /*control the rotation step of the view when PAD2,PAD4,PAD6&PAD8 is use*/
198 short rvisize; /* rotating view icon size */
199 short rvibright; /* rotating view icon brightness */
200 short recent_files; /* maximum number of recently used files to remember */
201 short smooth_viewtx; /* miliseconds to spend spinning the view */
203 short ndof_pan, ndof_rotate;
206 char versemaster[160];
210 short autokey_mode; /* autokeying mode */
211 short autokey_flag; /* flags for autokeying */
213 struct ColorBand coba_weight; /* from texture.h */
216 extern UserDef U; /* from usiblender.c !!!! */
218 /* ***************** USERDEF ****************** */
221 #define USER_AUTOSAVE (1 << 0)
222 #define USER_AUTOGRABGRID (1 << 1)
223 #define USER_AUTOROTGRID (1 << 2)
224 #define USER_AUTOSIZEGRID (1 << 3)
225 #define USER_SCENEGLOBAL (1 << 4)
226 #define USER_TRACKBALL (1 << 5)
227 #define USER_DUPLILINK (1 << 6)
228 #define USER_FSCOLLUM (1 << 7)
229 #define USER_MAT_ON_OB (1 << 8)
230 #define USER_NO_CAPSLOCK (1 << 9)
231 #define USER_VIEWMOVE (1 << 10)
232 #define USER_TOOLTIPS (1 << 11)
233 #define USER_TWOBUTTONMOUSE (1 << 12)
234 #define USER_NONUMPAD (1 << 13)
235 #define USER_LMOUSESELECT (1 << 14)
236 #define USER_FILECOMPRESS (1 << 15)
237 #define USER_SAVE_PREVIEWS (1 << 16)
238 #define USER_CUSTOM_RANGE (1 << 17)
239 #define USER_ADD_EDITMODE (1 << 18)
240 #define USER_ADD_VIEWALIGNED (1 << 19)
241 #define USER_RELPATHS (1 << 20)
242 #define USER_DRAGIMMEDIATE (1 << 21)
245 #define USER_ZOOM_CONT 0
246 #define USER_ZOOM_SCALE 1
247 #define USER_ZOOM_DOLLY 2
250 // old flag for #define USER_KEYINSERTACT (1 << 0)
251 // old flag for #define USER_KEYINSERTOBJ (1 << 1)
252 #define USER_WHEELZOOMDIR (1 << 2)
253 #define USER_FILTERFILEEXTS (1 << 3)
254 #define USER_DRAWVIEWINFO (1 << 4)
255 #define USER_PLAINMENUS (1 << 5) // old EVTTOCONSOLE print ghost events, here for tuhopuu compat. --phase
256 // old flag for hide pulldown was here
257 #define USER_FLIPFULLSCREEN (1 << 7)
258 #define USER_ALLWINCODECS (1 << 8)
259 #define USER_MENUOPENAUTO (1 << 9)
260 #define USER_PANELPINNED (1 << 10)
261 #define USER_AUTOPERSP (1 << 11)
262 #define USER_LOCKAROUND (1 << 12)
263 #define USER_GLOBALUNDO (1 << 13)
264 #define USER_ORBIT_SELECTION (1 << 14)
265 // old flag for #define USER_KEYINSERTAVAI (1 << 15)
266 #define USER_HIDE_DOT (1 << 16)
267 #define USER_SHOW_ROTVIEWICON (1 << 17)
268 #define USER_SHOW_VIEWPORTNAME (1 << 18)
269 // old flag for #define USER_KEYINSERTNEED (1 << 19)
270 #define USER_ZOOM_TO_MOUSEPOS (1 << 20)
271 #define USER_SHOW_FPS (1 << 21)
272 #define USER_MMB_PASTE (1 << 22)
274 /* Auto-Keying mode */
275 /* AUTOKEY_ON is a bitflag */
277 /* AUTOKEY_ON + 2**n... (i.e. AUTOKEY_MODE_NORMAL = AUTOKEY_ON + 2) to preserve setting, even when autokey turned off */
278 #define AUTOKEY_MODE_NORMAL 3
279 #define AUTOKEY_MODE_EDITKEYS 5
281 /* Auto-Keying flag */
282 #define AUTOKEY_FLAG_INSERTAVAIL (1<<0)
283 #define AUTOKEY_FLAG_INSERTNEEDED (1<<1)
284 #define AUTOKEY_FLAG_AUTOMATKEY (1<<2)
286 /* Auto-Keying macros */
287 #define IS_AUTOKEY_ON (U.autokey_mode & AUTOKEY_ON)
288 #define IS_AUTOKEY_MODE(mode) (U.autokey_mode == AUTOKEY_MODE_##mode)
289 #define IS_AUTOKEY_FLAG(flag) (U.autokey_flag == AUTOKEY_FLAG_##flag)
292 #define USER_TR_TOOLTIPS (1 << 0)
293 #define USER_TR_BUTTONS (1 << 1)
294 #define USER_TR_MENUS (1 << 2)
295 #define USER_TR_FILESELECT (1 << 3)
296 #define USER_TR_TEXTEDIT (1 << 4)
297 #define USER_DOTRANSLATE (1 << 5)
298 #define USER_USETEXTUREFONT (1 << 6)
299 #define CONVERT_TO_UTF8 (1 << 7)
302 #define USER_DUP_MESH (1 << 0)
303 #define USER_DUP_CURVE (1 << 1)
304 #define USER_DUP_SURF (1 << 2)
305 #define USER_DUP_FONT (1 << 3)
306 #define USER_DUP_MBALL (1 << 4)
307 #define USER_DUP_LAMP (1 << 5)
308 #define USER_DUP_IPO (1 << 6)
309 #define USER_DUP_MAT (1 << 7)
310 #define USER_DUP_TEX (1 << 8)
311 #define USER_DUP_ARM (1 << 9)
312 #define USER_DUP_ACT (1 << 10)
315 #define USER_VERTEX_ARRAYS 1
316 #define USER_DISABLE_SOUND 2
317 #define USER_DISABLE_MIPMAP 4
320 #define USER_VRML_LAYERS 1
321 #define USER_VRML_AUTOSCALE 2
322 #define USER_VRML_TWOSIDED 4
324 /* tw_flag (transform widget) */