The revised patch from Leon for new particle effects.
[blender.git] / source / blender / include / BIF_resources.h
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version. The Blender
10  * Foundation also sells licenses for use in proprietary software under
11  * the Blender License.  See http://www.blender.org/BL/ for information
12  * about this.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22  *
23  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24  * All rights reserved.
25  *
26  * The Original Code is: all of this file.
27  *
28  * Contributor(s): none yet.
29  * 
30  * ***** END GPL/BL DUAL LICENSE BLOCK *****
31  */
32
33 #ifndef BIF_RESOURCES_H
34 #define BIF_RESOURCES_H
35
36 typedef enum {
37 #define BIFICONID_FIRST         (ICON_VIEW3D)
38         ICON_VIEW3D,
39         ICON_IPO,
40         ICON_OOPS,
41         ICON_BUTS,
42         ICON_FILESEL,
43         ICON_IMAGE_COL,
44         ICON_INFO,
45         ICON_SEQUENCE,
46         ICON_TEXT,
47         ICON_IMASEL,
48         ICON_SOUND,
49         ICON_ACTION,
50         ICON_NLA,
51         ICON_VIEWZOOM,
52         ICON_VIEWMOVE,
53         ICON_HOME,
54         ICON_CLIPUV_DEHLT,
55         ICON_CLIPUV_HLT,
56         ICON_SOME_WACKY_VERTS_AND_LINES,
57         ICON_A_WACKY_VERT_AND_SOME_LINES,
58         ICON_VPAINT_COL,
59
60         ICON_ORTHO,
61         ICON_PERSP,
62         ICON_CAMERA,
63         ICON_EFFECTS,
64         ICON_BBOX,
65         ICON_WIRE,
66         ICON_SOLID,
67         ICON_SMOOTH,
68         ICON_POTATO,
69         ICON_BLANK2,
70         ICON_NORMALVIEW,
71         ICON_LOCALVIEW,
72         ICON_UNUSEDVIEW,
73         ICON_BLANK3,
74         ICON_SORTALPHA,
75         ICON_SORTTIME,
76         ICON_SORTSIZE,
77         ICON_LONGDISPLAY,
78         ICON_SHORTDISPLAY,
79         ICON_BLANK4,
80         ICON_BLANK5,
81
82         ICON_VIEW_AXIS_ALL,
83         ICON_VIEW_AXIS_NONE,
84         ICON_VIEW_AXIS_NONE2,
85         ICON_VIEW_AXIS_TOP,
86         ICON_VIEW_AXIS_FRONT,
87         ICON_VIEW_AXIS_SIDE,
88         ICON_POSE_DEHLT,
89         ICON_POSE_HLT,
90         ICON_BORDERMOVE,
91         ICON_MAYBE_ITS_A_LASSO,
92         ICON_BLANK1,
93         ICON_ROTATE,
94         ICON_CURSOR,
95         ICON_ROTATECOLLECTION,
96         ICON_ROTATECENTER,
97         ICON_BLANK7,
98         ICON_BLANK8,
99         ICON_BLANK9,
100         ICON_BLANK10,
101         ICON_BLANK11,
102         ICON_BLANK12,
103         
104
105
106         ICON_DOTSUP,
107         ICON_DOTSDOWN,
108         ICON_MENU_PANEL,
109         ICON_AXIS_SIDE,
110         ICON_AXIS_FRONT,
111         ICON_AXIS_TOP,
112         ICON_DRAW_UVFACES,
113         ICON_STICKY_UVS,
114         ICON_STICKY2_UVS,
115         ICON_BLANK17,
116         ICON_BLANK18,
117         ICON_ENVMAP,
118         ICON_TRANSP_HLT,
119         ICON_TRANSP_DEHLT,
120         ICON_RADIO_DEHLT,
121         ICON_RADIO_HLT,
122         ICON_TPAINT_DEHLT,
123         ICON_TPAINT_HLT,
124         ICON_WPAINT_DEHLT,
125         ICON_WPAINT_HLT,
126         ICON_BLANK21,
127         
128         ICON_X,
129         ICON_GO_LEFT,
130         ICON_NO_GO_LEFT,
131         ICON_UNLOCKED,
132         ICON_LOCKED,
133         ICON_PARLIB,
134         ICON_DATALIB,
135         ICON_AUTO,
136         ICON_MATERIAL_DEHLT2,
137         ICON_RING,
138         ICON_GRID,
139         ICON_PROPEDIT,
140         ICON_KEEPRECT,
141         ICON_DESEL_CUBE_VERTS,
142         ICON_EDITMODE_DEHLT,
143         ICON_EDITMODE_HLT,
144         ICON_VPAINT_DEHLT,
145         ICON_VPAINT_HLT,
146         ICON_FACESEL_DEHLT,
147         ICON_FACESEL_HLT,
148         ICON_BLANK22,
149         
150         ICON_HELP,
151         ICON_ERROR,
152         ICON_FOLDER_DEHLT,
153         ICON_FOLDER_HLT,
154         ICON_BLUEIMAGE_DEHLT,
155         ICON_BLUEIMAGE_HLT,
156         ICON_BPIBFOLDER_DEHLT,
157         ICON_BPIBFOLDER_HLT,
158         ICON_BPIBFOLDER_ERR,
159         ICON_UGLY_GREEN_RING,
160         ICON_GHOST,
161         ICON_SHARPCURVE,
162         ICON_SMOOTHCURVE,
163         ICON_BLANK23,
164         ICON_BLANK24,
165         ICON_BLANK25,
166         ICON_BLANK26,
167         ICON_BPIBFOLDER_X,
168         ICON_BPIBFOLDERGREY,
169         ICON_MAGNIFY,
170         ICON_INFO2,
171         
172         ICON_RIGHTARROW,
173         ICON_DOWNARROW_HLT,
174         ICON_ROUNDBEVELTHING,
175         ICON_FULLTEXTURE,
176         ICON_REDPUBLISHERHALFTHINGY,
177         ICON_PUBLISHER,
178         ICON_CKEY,
179         ICON_CHECKBOX_DEHLT,
180         ICON_CHECKBOX_HLT,
181         ICON_LINK,
182         ICON_INLINK,
183         ICON_BEVELBUT_HLT,
184         ICON_BEVELBUT_DEHLT,
185         ICON_PASTEDOWN,
186         ICON_COPYDOWN,
187         ICON_CONSTANT,
188         ICON_LINEAR,
189         ICON_CYCLIC,
190         ICON_KEY_DEHLT,
191         ICON_KEY_HLT,
192         ICON_GRID2,
193         
194         ICON_EYE,
195         ICON_LAMP,
196         ICON_MATERIAL,
197         ICON_TEXTURE,
198         ICON_ANIM,
199         ICON_WORLD,
200         ICON_SCENE,
201         ICON_EDIT,
202         ICON_GAME,
203         ICON_PAINT,
204         ICON_RADIO,
205         ICON_SCRIPT,
206         ICON_SPEAKER,
207         ICON_PASTEUP,
208         ICON_COPYUP,
209         ICON_PASTEFLIPUP,
210         ICON_PASTEFLIPDOWN,
211         ICON_CYCLICLINEAR,
212         ICON_PIN_DEHLT,
213         ICON_PIN_HLT,
214         ICON_LITTLEGRID,
215         
216         ICON_FULLSCREEN,
217         ICON_SPLITSCREEN,
218         ICON_RIGHTARROW_THIN,
219         ICON_DISCLOSURE_TRI_RIGHT,
220         ICON_DISCLOSURE_TRI_DOWN,
221         ICON_SCENE_SEPIA,
222         ICON_SCENE_DEHLT,
223         ICON_OBJECT,
224         ICON_MESH,
225         ICON_CURVE,
226         ICON_MBALL,
227         ICON_LATTICE,
228         ICON_LAMP_DEHLT,
229         ICON_MATERIAL_DEHLT,
230         ICON_TEXTURE_DEHLT,
231         ICON_IPO_DEHLT,
232         ICON_LIBRARY_DEHLT,
233         ICON_IMAGE_DEHLT,
234         ICON_WINDOW_FULLSCREEN,
235         ICON_WINDOW_WINDOW,
236         ICON_PANEL_CLOSE,
237         
238         ICON_BLENDER,
239         ICON_PACKAGE,
240         ICON_UGLYPACKAGE,
241         ICON_MATPLANE,
242         ICON_MATSPHERE,
243         ICON_MATCUBE,
244         ICON_SCENE_HLT,
245         ICON_OBJECT_HLT,
246         ICON_MESH_HLT,
247         ICON_CURVE_HLT,
248         ICON_MBALL_HLT,
249         ICON_LATTICE_HLT,
250         ICON_LAMP_HLT,
251         ICON_MATERIAL_HLT,
252         ICON_TEXTURE_HLT,
253         ICON_IPO_HLT,
254         ICON_LIBRARY_HLT,
255         ICON_IMAGE_HLT,
256         ICON_CONSTRAINT,
257         ICON_BLANK32,
258         ICON_BLANK33,
259 #define BIFICONID_LAST          (ICON_BLANK33)
260 #define BIFNICONIDS                     (BIFICONID_LAST-BIFICONID_FIRST + 1)
261 } BIFIconID;
262
263 typedef enum {
264 #define BIFCOLORSHADE_FIRST     (COLORSHADE_DARK)
265         COLORSHADE_DARK,
266         COLORSHADE_GREY,
267         COLORSHADE_MEDIUM,
268         COLORSHADE_HILITE,
269         COLORSHADE_LIGHT,
270         COLORSHADE_WHITE,
271 #define BIFCOLORSHADE_LAST      (COLORSHADE_WHITE)
272 #define BIFNCOLORSHADES         (BIFCOLORSHADE_LAST-BIFCOLORSHADE_FIRST + 1)
273 } BIFColorShade;
274
275 typedef enum {
276 #define BIFCOLORID_FIRST        (BUTGREY)
277         BUTGREY = 0,
278         BUTGREEN,
279         BUTBLUE,
280         BUTSALMON,
281         MIDGREY,
282         BUTPURPLE,
283         BUTYELLOW,
284         REDALERT,
285         BUTRUST,
286         BUTWHITE,
287         BUTDBLUE,
288         BUTPINK,
289         BUTDPINK,
290         BUTMACTIVE,
291
292         BUTIPO,
293         BUTAUDIO,
294         BUTCAMERA,
295         BUTRANDOM,
296         BUTEDITOBJECT,
297         BUTPROPERTY,
298         BUTSCENE,
299         BUTMOTION,
300         BUTMESSAGE,
301         BUTACTION,
302         BUTCD,
303         BUTGAME,
304         BUTVISIBILITY,
305         BUTYUCK,
306         BUTSEASICK,
307         BUTCHOKE,
308         BUTIMPERIAL,
309
310         BUTTEXTCOLOR,
311         BUTTEXTPRESSED,
312         BUTSBACKGROUND,
313         
314         VIEWPORTBACKCOLOR,
315         VIEWPORTGRIDCOLOR,
316         VIEWPORTACTIVECOLOR,
317         VIEWPORTSELECTEDCOLOR,
318         VIEWPORTUNSELCOLOR,
319         
320         EDITVERTSEL, 
321         EDITVERTUNSEL, 
322         EDITEDGESEL, 
323         EDITEDGEUNSEL,
324         
325 #define BIFCOLORID_LAST         (EDITEDGEUNSEL)
326 #define BIFNCOLORIDS            (BIFCOLORID_LAST-BIFCOLORID_FIRST + 1)
327
328 } BIFColorID;
329
330 enum {
331         TH_AUTO,        /* for buttons, to signal automatic color assignment */
332         
333 // uibutton colors
334         TH_BUT_OUTLINE,
335         TH_BUT_NEUTRAL,
336         TH_BUT_ACTION,
337         TH_BUT_SETTING,
338         TH_BUT_SETTING1,
339         TH_BUT_SETTING2,
340         TH_BUT_NUM,
341         TH_BUT_TEXTFIELD,
342         TH_BUT_POPUP,
343         TH_BUT_TEXT,
344         TH_BUT_TEXT_HI,
345         TH_MENU_BACK,
346         TH_MENU_ITEM,
347         TH_MENU_HILITE,
348         TH_MENU_TEXT,
349         TH_MENU_TEXT_HI,
350         
351         TH_BUT_DRAWTYPE,
352         
353         TH_REDALERT,
354         TH_CUSTOM,
355         
356         TH_THEMEUI,
357 // common colors among spaces
358         
359         TH_BACK,
360         TH_TEXT,
361         TH_TEXT_HI,
362         TH_HEADER,
363         TH_HEADERDESEL,
364         TH_PANEL,
365         TH_SHADE1,
366         TH_SHADE2,
367         TH_HILITE,
368
369         TH_GRID,
370         TH_WIRE,
371         TH_SELECT,
372         TH_ACTIVE,
373         TH_TRANSFORM,
374         TH_VERTEX,
375         TH_VERTEX_SELECT,
376         TH_VERTEX_SIZE,
377         TH_EDGE,
378         TH_EDGE_SELECT,
379         TH_FACE,
380         TH_FACE_SELECT
381 };
382
383 /* specific defines per space should have higher define values */
384
385 struct bTheme;
386
387 // THE CODERS API FOR THEMES:
388
389 // sets the color
390 void    BIF_ThemeColor(int colorid);
391
392 // sets the color plus alpha
393 void    BIF_ThemeColor4(int colorid);
394
395 // sets color plus offset for shade
396 void    BIF_ThemeColorShade(int colorid, int offset);
397
398 // sets color plus offset for alpha
399 void            BIF_ThemeColorShadeAlpha(int colorid, int coloffset, int alphaoffset);
400
401 // sets color, which is blend between two theme colors
402 void    BIF_ThemeColorBlend(int colorid1, int colorid2, float fac);
403 // same, with shade offset
404 void    BIF_ThemeColorBlendShade(int colorid1, int colorid2, float fac, int offset);
405
406 // returns one value, not scaled
407 float   BIF_GetThemeValuef(int colorid);
408 int     BIF_GetThemeValue(int colorid);
409
410 // get three color values, scaled to 0.0-1.0 range
411 void    BIF_GetThemeColor3fv(int colorid, float *col);
412
413 // get the 3 or 4 byte values
414 void    BIF_GetThemeColor3ubv(int colorid, char *col);
415 void    BIF_GetThemeColor4ubv(int colorid, char *col);
416
417 struct ScrArea;
418
419 // internal (blender) usage only, for init and set active
420 void    BIF_InitTheme(void);
421 void    BIF_SetTheme(struct ScrArea *sa);
422 void    BIF_resources_init              (void);
423 void    BIF_resources_free              (void);
424 void    BIF_colors_init                 (void);
425 void    BIF_load_ui_colors              (void);
426
427
428 // icon API
429 int             BIF_get_icon_width              (BIFIconID icon);
430 int             BIF_get_icon_height             (BIFIconID icon);
431 void    BIF_draw_icon                   (BIFIconID icon);
432 void    BIF_draw_icon_blended   (BIFIconID icon, int colorid, int shade);
433
434 /* only for buttons in theme editor! */
435 char    *BIF_ThemeGetColorPtr(struct bTheme *btheme, int spacetype, int colorid);
436 char    *BIF_ThemeColorsPup(int spacetype);
437
438
439 void    BIF_def_color                   (BIFColorID colorid, unsigned char r, unsigned char g, unsigned char b);
440
441 #endif /*  BIF_ICONS_H */