Commit of cursor framework. Cursors now defined in source/blender/src/cursors.c and
[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 neutral[4];
44         char action[4];
45         char setting[4];
46         char setting1[4];
47         char setting2[4];
48         char num[4];
49         char textfield[4];
50         char popup[4];
51         char text[4];
52         char text_hi[4];
53         char menu_back[4];
54         char menu_item[4];
55         char menu_hilite[4];
56         char menu_text[4];
57         char menu_text_hi[4];
58
59         char but_drawtype, pad;
60         short pad1;
61
62 } ThemeUI;
63
64 // try to put them all in one, if needed a spacial struct can be created as well
65 // for example later on, when we introduce wire colors for ob types or so...
66 typedef struct ThemeSpace {
67         char back[4];
68         char text[4];   
69         char text_hi[4];
70         char header[4];
71         char panel[4];
72         
73         char shade1[4];
74         char shade2[4];
75         
76         char hilite[4];
77         char grid[4]; 
78         
79         char wire[4], select[4];
80         char active[4], transform[4];
81         char vertex[4], vertex_select[4];
82         char edge[4], edge_select[4];
83         char face[4], face_select[4];
84         
85         char vertex_size, pad;
86         short pad1;
87         
88 } ThemeSpace;
89
90
91 typedef struct bTheme {
92         struct bTheme *next, *prev;
93         char name[32];
94         
95         ThemeUI tui;
96         
97         ThemeSpace tbuts;       
98         ThemeSpace tv3d;
99         ThemeSpace tfile;
100         ThemeSpace tipo;
101         ThemeSpace tinfo;       
102         ThemeSpace tsnd;
103         ThemeSpace tact;
104         ThemeSpace tnla;
105         ThemeSpace tseq;
106         ThemeSpace tima;
107         ThemeSpace timasel;
108         ThemeSpace text;
109         ThemeSpace toops;
110         
111 } bTheme;
112
113 typedef struct SolidLight {
114         int flag, pad;
115         float col[4], spec[4], vec[4];
116 } SolidLight;
117
118 typedef struct UserDef {
119         short flag, dupflag;
120         int savetime;
121         char tempdir[160];      // FILE_MAXDIR length
122         char fontdir[160];
123         char renderdir[160];
124         char textudir[160];
125         char plugtexdir[160];
126         char plugseqdir[160];
127         char pythondir[160];
128         char sounddir[160];
129         short versions, vrmlflag;       // tmp for export, will be replaced by strubi
130         int gameflags;
131         int wheellinescroll;
132         short uiflag, language;
133         int userpref;
134         short console_buffer;   //console vars here for tuhopuu compat, --phase
135         short console_out;
136         int mixbufsize;
137         int fontsize;
138         short encoding;
139         short transopts;
140         short menuthreshold1, menuthreshold2;
141         char fontname[256];             // FILE_MAXDIR+FILE length
142         struct ListBase themes;
143         short undosteps;
144         short curssize;
145         short tb_leftmouse, tb_rightmouse;
146         struct SolidLight light[3];
147 } UserDef;
148
149 extern UserDef U; /* from usiblender.c !!!! */
150
151 /* ***************** USERDEF ****************** */
152
153 /* flag */
154 #define AUTOSAVE                1
155 #define AUTOGRABGRID    2
156 #define AUTOROTGRID             4
157 #define AUTOSIZEGRID    8
158 #define SCENEGLOBAL             16
159 #define TRACKBALL               32
160 #define DUPLILINK               64
161 #define FSCOLLUM                128
162 #define MAT_ON_OB               256
163 #define NO_CAPSLOCK             512
164 #define VIEWMOVE                1024
165 #define TOOLTIPS                2048
166 #define TWOBUTTONMOUSE  4096
167 #define NONUMPAD                8192
168
169 /* uiflag */
170
171 #define KEYINSERTACT    1
172 #define KEYINSERTOBJ    2
173 #define WHEELZOOMDIR    4
174 #define FILTERFILEEXTS  8
175 #define DRAWVIEWINFO    16
176 #define EVTTOCONSOLE    32              // print ghost events, here for tuhopuu compat. --phase
177                                                                 // old flag for hide pulldown was here 
178 #define FLIPFULLSCREEN  128
179 #define ALLWINCODECS    256
180 #define MENUOPENAUTO    512
181
182 /* transopts */
183
184 #define TR_TOOLTIPS             1
185 #define TR_BUTTONS              2
186 #define TR_MENUS                4
187 #define TR_FILESELECT   8
188 #define TR_TEXTEDIT             16
189 #define TR_ALL                  32
190
191 /* dupflag */
192
193 #define DUPMESH                 1
194 #define DUPCURVE                2
195 #define DUPSURF                 4
196 #define DUPFONT                 8
197 #define DUPMBALL                16
198 #define DUPLAMP                 32
199 #define DUPIPO                  64
200 #define DUPMAT                  128
201 #define DUPTEX                  256
202 #define DUPARM                  512
203 #define DUPACT                  1024
204
205 /* gameflags */
206
207 #define USERDEF_VERTEX_ARRAYS_BIT        0
208 #define USERDEF_DISABLE_SOUND_BIT        1
209 #define USERDEF_DISABLE_MIPMAP_BIT       2
210
211 #define USERDEF_VERTEX_ARRAYS        (1 << USERDEF_VERTEX_ARRAYS_BIT)
212 #define USERDEF_DISABLE_SOUND        (1 << USERDEF_DISABLE_SOUND_BIT)
213 #define USERDEF_DISABLE_MIPMAP       (1 << USERDEF_DISABLE_MIPMAP_BIT)
214
215 /* vrml flag */
216
217 #define USERDEF_VRML_LAYERS             1
218 #define USERDEF_VRML_AUTOSCALE  2
219 #define USERDEF_VRML_TWOSIDED   4
220
221 #endif
222