b7b04017c2bbc1b04a5fad1538592fba6991f35f
[blender.git] / source / blender / include / butspace.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 #ifndef BUTSPACE_H
33 #define BUTSPACE_H
34
35 /* all internal calls and event codes for buttons space */
36
37 struct Base;
38 struct ID;
39
40
41 /* buts->scaflag */             
42 #define BUTS_SENS_SEL           1
43 #define BUTS_SENS_ACT           2
44 #define BUTS_SENS_LINK          4
45 #define BUTS_CONT_SEL           8
46 #define BUTS_CONT_ACT           16
47 #define BUTS_CONT_LINK          32
48 #define BUTS_ACT_SEL            64
49 #define BUTS_ACT_ACT            128
50 #define BUTS_ACT_LINK           256
51
52 /* internal */
53
54 /* scene */
55 extern void render_panels(void);
56 extern void do_render_panels(unsigned short event);
57 extern void anim_panels(void);
58 extern void sound_panels(void);
59 extern void do_soundbuts(unsigned short event);
60
61 /* object */
62 extern void object_panels(void);
63 extern void do_object_panels(unsigned short event);
64 extern void do_constraintbuts(unsigned short event);
65
66
67 /* editing */
68 extern void editing_panels(void);
69 extern void do_common_editbuts(unsigned short event);
70 extern void do_meshbuts(unsigned short event);
71 extern void do_curvebuts(unsigned short event);
72 extern void do_fontbuts(unsigned short event);
73 extern void do_mballbuts(unsigned short event);
74 extern void do_latticebuts(unsigned short event);
75 extern void do_fpaintbuts(unsigned short event);
76
77 /* shading */
78 extern void material_panels(void);
79 extern void do_matbuts(unsigned short event);
80 extern void lamp_panels(void);
81 extern void do_lampbuts(unsigned short event);
82 extern void world_panels(void);
83 extern void do_worldbuts(unsigned short event);
84 extern void radio_panels(void);
85 extern void do_radiobuts(unsigned short event);
86 extern void texture_panels(void);
87 extern void do_texbuts(unsigned short event);
88
89 /* logic */
90 extern void do_logic_buts(unsigned short event);
91 extern void logic_buts(void);
92
93 /* script */
94 extern void script_panels(void);
95 extern void do_scriptbuts(unsigned short event);
96
97 /* ipowindow */
98 extern void do_ipobuts(unsigned short event);   // drawipo.c (bad! ton)
99
100 /* uvautocalculation */
101 void do_uvautocalculationbuts(unsigned short event);
102 void get_uvautocalculationsettings(float *radius,float *cubesize, int *mapdir, int *mapalign);
103 /* butspace.c */
104 void test_meshpoin_but(char *name, struct ID **idpp);
105 void test_obpoin_but(char *name, struct ID **idpp);
106 void test_scenepoin_but(char *name, struct ID **idpp);
107 void test_matpoin_but(char *name, struct ID **idpp);
108 void test_scriptpoin_but(char *name, struct ID **idpp);
109 void test_actionpoin_but(char *name, ID **idpp);
110 void test_obcurpoin_but(char *name, ID **idpp);
111 void test_idbutton_cb(void *namev, void *arg2_unused);
112
113 void butspace_context_switch(SpaceButs *buts, struct Base *new);
114
115 /* -------------- internal event defines ------------ */
116
117
118 #define B_DIFF                  1       
119
120 /* *********************** */
121 #define B_VIEWBUTS              1100
122
123 #define B_LOADBGPIC             1001
124 #define B_BLENDBGPIC    1002
125 #define B_BGPICBROWSE   1003
126 #define B_BGPICTEX              1004
127 #define B_BGPICCLEAR    1005
128 #define B_BGPICTEXCLEAR 1006
129
130 #define B_OBJECTPANELROT        1007
131 #define B_OBJECTPANELMEDIAN 1008
132 #define B_ARMATUREPANEL1        1009
133 #define B_ARMATUREPANEL2        1010
134 #define B_OBJECTPANELPARENT 1011
135
136 /* *********************** */
137 #define B_LAMPBUTS              1200
138
139 #define B_LAMPREDRAW    1101
140 #define B_COLLAMP               1102
141 #define B_TEXCLEARLAMP  1103
142 #define B_SBUFF                 1104
143 #define B_SHADBUF               1105
144 #define B_SHADRAY               1106
145
146 /* *********************** */
147 #define B_MATBUTS               1300
148
149 #define B_MATCOL                1201
150 #define B_SPECCOL               1202
151 #define B_MIRCOL                1203
152 #define B_ACTCOL                1204
153 #define B_MATFROM               1205
154 #define B_MATPRV                1206
155 #define B_MTEXCOL               1207
156 #define B_TEXCLEAR              1208
157 #define B_MATPRV_DRAW   1209
158 #define B_MTEXPASTE             1210
159 #define B_MTEXCOPY              1211
160 #define B_MATLAY                1212
161 #define B_MATHALO               1213
162 #define B_MATZTRANSP    1214
163 #define B_MATRAYTRANSP  1215
164
165 /* *********************** */
166 #define B_TEXBUTS               1400
167
168 #define B_TEXTYPE               1301
169 #define B_DEFTEXVAR             1302
170 #define B_LOADTEXIMA    1303
171 #define B_NAMEIMA               1304
172 #define B_TEXCHANNEL    1305
173 #define B_TEXREDR_PRV   1306
174 #define B_TEXIMABROWSE  1307
175 #define B_IMAPTEST              1308
176 #define B_RELOADIMA             1309
177 #define B_LOADPLUGIN    1310
178 #define B_NAMEPLUGIN    1311
179 #define B_COLORBAND             1312
180 #define B_ADDCOLORBAND  1313
181 #define B_DELCOLORBAND  1314
182 #define B_CALCCBAND             1315
183 #define B_CALCCBAND2    1316
184 #define B_DOCOLORBAND   1317
185 #define B_REDRAWCBAND   1318
186 #define B_BANDCOL               1319
187 #define B_LOADTEXIMA1   1320
188 #define B_TEXPRV                1321
189
190 #define B_PLUGBUT               1325
191 /* B_PLUGBUT reserves 24 buttons at least! */
192
193 #define B_ENV_MAKE              1350
194 #define B_ENV_FREE              1351
195 #define B_ENV_DELETE    1352
196 #define B_ENV_SAVE              1353
197 #define B_ENV_OB                1354
198
199 #define B_PACKIMA               1355
200 #define B_TEXSETFRAMES  1356
201
202 #define B_ENV_FREE_ALL  1357
203
204 /* *********************** */
205 #define B_ANIMBUTS              1500
206
207 #define B_RECALCPATH    1401
208
209 #define B_AUTOTIMEOFS   1403
210 #define B_FRAMEMAP              1404
211 #define B_NEWEFFECT             1405
212 #define B_PREVEFFECT    1406
213 #define B_NEXTEFFECT    1407
214 #define B_CHANGEEFFECT  1408
215 #define B_CALCEFFECT    1409
216 #define B_DELEFFECT             1410
217 #define B_RECALCAL              1411
218
219 #define B_PRINTSPEED    1413
220 #define B_PRINTLEN              1414
221 #define B_RELKEY                1415
222
223         /* this has MAX_EFFECT settings! Next free define is 1450... */
224 #define B_SELEFFECT     1430    
225
226
227 /* *********************** */
228 #define B_WORLDBUTS             1600
229
230 #define B_TEXCLEARWORLD 1501
231 #define B_COLHOR                1502
232 #define B_COLZEN                1503
233
234
235 /* *********************** */
236 #define B_RENDERBUTS    1700
237
238 #define B_FS_PIC                1601
239 #define B_FS_BACKBUF    1602
240
241 #define B_FS_FTYPE              1604
242 #define B_DORENDER              1605
243 #define B_DOANIM                1606
244 #define B_PLAYANIM              1607
245 #define B_PR_PAL                1608
246 #define B_PR_FULL               1609
247 #define B_PR_PRV                1610
248 #define B_PR_CDI                1611
249 #define B_PR_PAL169             1612
250 #define B_PR_D2MAC              1613
251 #define B_PR_MPEG               1614
252 #define B_REDRAWDISP    1615
253 #define B_SETBROWSE             1616
254 #define B_CLEARSET              1617
255 #define B_PR_PRESET             1618
256 #define B_PR_PANO               1619
257 #define B_PR_NTSC               1620
258
259 #define B_IS_FTYPE              1622
260 #define B_IS_BACKBUF    1623
261 #define B_PR_PC                 1624
262
263 #define B_PR_PANO360    1627
264 #define B_PR_HALFFIELDS 1628
265 #define B_NEWRENDERPIPE 1629
266 #define B_R_SCALE       1630
267 #define B_G_SCALE       1631
268 #define B_B_SCALE       1632
269 #define B_USE_R_SCALE   1633
270 #define B_USE_G_SCALE   1634
271 #define B_USE_B_SCALE   1635
272 #define B_EDGECOLSLI    1636
273 #define B_GAMMASLI      1637
274
275 #define B_FILETYPEMENU  1638
276 #define B_SELECTCODEC   1639
277 #define B_RTCHANGED             1640
278
279 #ifdef __NLA
280 /* *********************** */
281 enum {
282         B_ARMATUREBUTS  =       1800,
283         B_POSE                  =       1701
284 };
285 #endif
286
287 /* *********************** */
288 #define B_COMMONEDITBUTS        2049
289
290 #define B_MATWICH               2003
291 #define B_MATNEW                2004
292 #define B_MATDEL                2005
293 #define B_MATASS                2006
294 #define B_MATSEL                2007
295 #define B_MATDESEL              2008
296 #define B_HIDE                  2009
297 #define B_REVEAL                2010
298 #define B_SELSWAP               2011
299 #define B_SETSMOOTH             2012
300 #define B_SETSOLID              2013
301 #define B_AUTOTEX               2014
302 #define B_DOCENTRE              2015
303 #define B_DOCENTRENEW   2016
304 #define B_DOCENTRECURSOR        2017
305
306         /* 32 values! */
307 #define B_OBLAY                 2018
308
309 #define B_MESHBUTS              2100
310
311 #define B_FLIPNORM              2050
312 #define B_SPIN                  2051
313 #define B_SPINDUP               2052
314 #define B_EXTR                  2053
315 #define B_SCREW                 2054
316 #define B_EXTREP                2055
317 #define B_SPLIT                 2056
318 #define B_REMDOUB               2057
319 #define B_SUBDIV                2058
320 #define B_FRACSUBDIV    2059
321 #define B_XSORT                 2060
322 #define B_HASH                  2061
323 #define B_DELSTICKY             2062
324 #define B_DELVERTCOL    2063
325 #define B_MAKE_TFACES   2064
326 #define B_TOSPHERE              2065
327 #define B_DEL_TFACES    2066
328 #define B_NEWVGROUP             2067
329 #define B_DELVGROUP             2068
330 #define B_ASSIGNVGROUP  2069
331 #define B_REMOVEVGROUP  2070
332 #define B_SELVGROUP             2071    
333 #define B_DESELVGROUP   2072
334 #define B_DECIM_FACES   2073
335 #define B_DECIM_CANCEL  2074
336 #define B_DECIM_APPLY   2075
337 #define B_AUTOVGROUP    2076
338 #define B_SLOWERDRAW    2077
339 #define B_FASTERDRAW    2078
340 #define B_VERTEXNOISE   2079
341 #define B_VERTEXSMOOTH  2080
342 #define B_MAKESTICKY    2082
343 #define B_MAKEVERTCOL   2083
344 #define B_CHROMADEPTH   2084
345 #define B_ISDEFLECTOR   2085
346 #define B_PDEFDAMPING   2086
347 #define B_GRAVITY       2087
348 #define B_GRAVSTRENGTH  2088
349 #define B_GRAVPOWER     2089
350 #define B_PDEFRDAMP     2090
351 #define B_PDEFPERM      2091
352
353 /* *********************** */
354 #define B_CURVEBUTS             2200
355
356 #define B_CONVERTPOLY   2101
357 #define B_CONVERTBEZ    2102
358 #define B_CONVERTBSPL   2103
359 #define B_CONVERTCARD   2104
360 #define B_CONVERTNURB   2105
361 #define B_UNIFU                 2106
362 #define B_ENDPU                 2107
363 #define B_BEZU                  2108
364 #define B_UNIFV                 2109
365 #define B_ENDPV                 2110
366 #define B_BEZV                  2111
367 #define B_SETWEIGHT             2112
368 #define B_SETW1                 2113
369 #define B_SETW2                 2114
370 #define B_SETW3                 2115
371 #define B_SETORDER              2116
372 #define B_MAKEDISP              2117
373 #define B_SUBDIVCURVE   2118
374 #define B_SPINNURB              2119
375 #define B_CU3D                  2120
376 #define B_SETRESOLU             2121
377 #define B_SETW4                 2122
378
379
380 /* *********************** */
381 #define B_FONTBUTS              2300
382
383 #define B_MAKEFONT              2201
384 #define B_TOUPPER               2202
385 #define B_SETFONT               2203
386 #define B_LOADFONT              2204
387 #define B_TEXTONCURVE   2205
388 #define B_PACKFONT              2206
389
390 /* *********************** */
391 #define B_IKABUTS               2400
392
393 #define B_IKASETREF             2301
394 #define B_IKARECALC             2302
395
396 /* *********************** */
397 #define B_CAMBUTS               2500
398
399 /* *********************** */
400 #define B_MBALLBUTS             2600
401
402 #define B_RECALCMBALL   2501
403
404 /* *********************** */
405 #define B_LATTBUTS              2700
406
407 #define B_RESIZELAT             2601
408 #define B_DRAWLAT               2602
409 #define B_LATTCHANGED   2603
410
411 /* *********************** */
412 #define B_GAMEBUTS              2800
413
414 #define B_ADD_PROP              2701
415 #define B_CHANGE_PROP   2702
416
417 #define B_ADD_SENS              2703
418 #define B_CHANGE_SENS   2704
419 #define B_DEL_SENS              2705
420
421 #define B_ADD_CONT              2706
422 #define B_CHANGE_CONT   2707
423 #define B_DEL_CONT              2708
424
425 #define B_ADD_ACT               2709
426 #define B_CHANGE_ACT    2710
427 #define B_DEL_ACT               2711
428
429 #define B_SOUNDACT_BROWSE       2712
430
431 #define B_SETSECTOR                     2713
432 #define B_SETPROP                       2714
433 #define B_SETACTOR                      2715
434 #define B_SETMAINACTOR          2716
435 #define B_SETDYNA                       2717
436
437 /* *********************** */
438 #define B_FPAINTBUTS    2900
439
440 #define B_VPCOLSLI              2801
441 #define B_VPGAMMA               2802
442
443 #define B_COPY_TF_MODE  2804
444 #define B_COPY_TF_UV    2805
445 #define B_COPY_TF_COL   2806
446 #define B_REDR_3D_IMA   2807
447 #define B_SET_VCOL              2808
448
449 #define B_COPY_TF_TEX   2814
450 #define B_TFACE_HALO    2815
451 #define B_TFACE_BILLB   2816
452
453 #define B_SHOWTEX               2832
454 #define B_ASSIGNMESH    2833
455
456
457 /* *********************** */
458 #define B_RADIOBUTS             3000
459
460 #define B_RAD_GO                2901
461 #define B_RAD_INIT              2902
462 #define B_RAD_LIMITS    2903
463 #define B_RAD_FAC               2904
464 #define B_RAD_NODELIM   2905
465 #define B_RAD_NODEFILT  2906
466 #define B_RAD_FACEFILT  2907
467 #define B_RAD_ADD               2908
468 #define B_RAD_DELETE    2909
469 #define B_RAD_COLLECT   2910
470 #define B_RAD_SHOOTP    2911
471 #define B_RAD_SHOOTE    2912
472 #define B_RAD_REPLACE   2913
473 #define B_RAD_DRAW              2914
474 #define B_RAD_FREE              2915
475 #define B_RAD_ADDMESH   2916
476
477 /* *********************** */
478 #define B_SCRIPTBUTS    3100
479
480 #define B_SCRIPT_ADD    3001
481 #define B_SCRIPT_DEL    3002
482 #define B_SCRIPT_TYPE   3003
483
484 /* Scene script buttons */
485 #define B_SSCRIPT_ADD   3004
486 #define B_SSCRIPT_DEL   3005
487 #define B_SSCRIPT_TYPE  3006
488
489 /* *********************** */
490 #define B_SOUNDBUTS             3200
491 enum B_SOUND_BUTTONS {
492         B_SOUND_CHANGED = 3101,
493                 B_SOUND_REDRAW,
494                 B_SOUND_VOLUME,
495                 B_SOUND_PANNING,
496                 B_SOUND_PITCH,
497                 B_SOUND_LOAD_SAMPLE,
498                 B_SOUND_MENU_SAMPLE,
499                 B_SOUND_NAME_SAMPLE,
500                 B_SOUND_UNLINK_SAMPLE,
501                 B_SOUND_RELOAD_SAMPLE,
502                 B_SOUND_UNPACK_SAMPLE,
503                 B_SOUND_PLAY_SAMPLE,
504                 B_SOUND_COPY_SOUND,
505                 B_SOUND_LOOPSTART,
506                 B_SOUND_LOOPEND,
507                 B_SOUND_BIDIRECTIONAL,
508                 B_SOUND_RECALC,
509                 B_SOUND_RATECHANGED,
510                 B_SOUND_MIXDOWN
511 };
512
513 /* *********************** */
514 #define B_CONSTRAINTBUTS        3300
515 enum {
516         B_CONSTRAINT_REDRAW = 3201,
517         B_CONSTRAINT_DEL,
518         B_CONSTRAINT_TEST,
519         B_CONSTRAINT_CHANGETYPE,
520         B_CONSTRAINT_CHANGENAME,
521         B_CONSTRAINT_CHANGETARGET,
522         B_CONSTRAINT_ADD_NULL,
523         B_CONSTRAINT_ADD_KINEMATIC,
524         B_CONSTRAINT_ADD_TRACKTO,
525         B_CONSTRAINT_ADD_ROTLIKE,
526         B_CONSTRAINT_ADD_LOCLIKE,
527         B_CONSTRAINT_ADD_ACTION,
528         B_CONSTRAINT_ADD_LOCKTRACK,
529         B_CONSTRAINT_ADD_FOLLOWPATH,
530         B_CONSTRAINT_ADD_DISTANCELIMIT
531 };
532
533 /* *********************** */
534 #define B_UVAUTOCALCBUTS        3400
535 enum {
536         B_UVAUTO_REDRAW = 3301,
537                 B_UVAUTO_SPHERE,
538                 B_UVAUTO_CYLINDER,
539                 B_UVAUTO_CYLRADIUS,
540                 B_UVAUTO_WINDOW,
541                 B_UVAUTO_CUBE,
542                 B_UVAUTO_CUBESIZE,
543                 B_UVAUTO_STD1,
544                 B_UVAUTO_STD2,
545                 B_UVAUTO_STD4,
546                 B_UVAUTO_STD8,
547                 B_UVAUTO_BOUNDS1,
548                 B_UVAUTO_BOUNDS2,
549                 B_UVAUTO_BOUNDS4,
550                 B_UVAUTO_BOUNDS8,
551                 B_UVAUTO_TOP,
552                 B_UVAUTO_FACE,
553                 B_UVAUTO_OBJECT,
554                 B_UVAUTO_ALIGNX,
555                 B_UVAUTO_ALIGNY         
556 };
557 /* *********************** */
558
559 /* *********************** */
560 /*  BUTTON BUT: > 4000     */
561 /*  BUTTON 4001-4032: layers */
562
563
564
565 #endif
566