2.5 Nodes:
[blender.git] / source / blender / makesdna / DNA_space_types.h
1 /**
2  * blenlib/DNA_space_types.h (mar-2001 nzc)
3  *      
4  * $Id$ 
5  *
6  * ***** BEGIN GPL 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.
12  *
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.
17  *
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.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef DNA_SPACE_TYPES_H
32 #define DNA_SPACE_TYPES_H
33
34 #include "DNA_listBase.h"
35 #include "DNA_vec_types.h"
36 #include "DNA_outliner_types.h"         /* for TreeStoreElem */
37 #include "DNA_image_types.h"    /* ImageUser */
38 /* Hum ... Not really nice... but needed for spacebuts. */
39 #include "DNA_view2d_types.h"
40
41 struct ID;
42 struct Text;
43 struct Script;
44 struct ImBuf;
45 struct Image;
46 struct SpaceIpo;
47 struct BlendHandle;
48 struct RenderInfo;
49 struct bNodeTree;
50 struct uiBlock;
51 struct FileList;
52 struct bGPdata;
53 struct bDopeSheet;
54 struct FileSelectParams;
55 struct FileLayout;
56 struct bScreen;
57 struct Scene;
58 struct wmOperator;
59 struct wmTimer;
60
61         /**
62          * The base structure all the other spaces
63          * are derived (implicitly) from. Would be
64          * good to make this explicit.
65          */
66
67 typedef struct SpaceLink {
68         struct SpaceLink *next, *prev;
69         ListBase regionbase;            /* storage of regions for inactive spaces */
70         int spacetype;
71         float blockscale;                       /* XXX depricate this */
72         short blockhandler[8];          /* XXX depricate this */
73 } SpaceLink;
74
75 typedef struct SpaceInfo {
76         SpaceLink *next, *prev;
77         ListBase regionbase;            /* storage of regions for inactive spaces */
78         int spacetype;
79         float blockscale;
80
81         short blockhandler[8];          /* XXX depricate this */
82         
83         struct bScreen *screen;         /* browse screen */
84         struct Scene *scene;            /* browse scene */
85         
86 } SpaceInfo;
87
88 /* 'Graph' Editor (formerly known as the IPO Editor) */
89 /* XXX for now, we keep all old data... */
90 typedef struct SpaceIpo {
91         SpaceLink *next, *prev;
92         ListBase regionbase;            /* storage of regions for inactive spaces */
93         int spacetype;
94         float blockscale;
95
96         short blockhandler[8];
97         View2D v2d; /* deprecated, copied to region */
98         
99         struct bDopeSheet *ads; /* settings for filtering animation data (NOTE: we use a pointer due to code-linking issues) */
100         
101         ListBase ghostCurves;   /* sampled snapshots of F-Curves used as in-session guides */
102         
103         short mode;                             /* mode for the Graph editor (eGraphEdit_Mode) */
104         short flag;                             /* settings for Graph editor */
105         short autosnap;                 /* time-transform autosnapping settings for Graph editor (eAnimEdit_AutoSnap in DNA_action_types.h) */
106         char pin, lock;                 // XXX old, unused vars that are probably going to be depreceated soon...
107 } SpaceIpo;
108
109 typedef struct SpaceButs {
110         SpaceLink *next, *prev;
111         ListBase regionbase;            /* storage of regions for inactive spaces */
112         int spacetype;
113         float blockscale;
114         
115         short blockhandler[8];
116         
117         struct RenderInfo *ri;
118
119         View2D v2d;                                             /* deprecated, copied to region */
120         
121         short mainb, mainbo, mainbuser; /* context tabs */
122         short re_align, align;                  /* align for panels */
123         short preview;                                  /* preview is signal to refresh */
124         char flag, pad[3];
125         
126         void *path;                             /* runtime */
127         int pathflag, dataicon; /* runtime */
128         ID *pinid;
129 } SpaceButs;
130
131 typedef struct SpaceSeq {
132         SpaceLink *next, *prev;
133         ListBase regionbase;            /* storage of regions for inactive spaces */
134         int spacetype;
135         float blockscale;
136
137         short blockhandler[8];
138
139         View2D v2d; /* deprecated, copied to region */
140         
141         float xof, yof; /* offset for drawing the image preview */
142         short mainb;
143         short render_size;
144         short chanshown;
145         short zebra;
146         int flag;
147         float zoom;
148         
149         struct bGPdata *gpd;            /* grease-pencil data */
150 } SpaceSeq;
151
152 typedef struct FileSelectParams {
153         char title[24]; /* title, also used for the text of the execute button */
154         char dir[240]; /* directory */
155         char file[80]; /* file */
156         char renamefile[80];
157
158         short type; /* XXXXX for now store type here, should be moved to the operator */
159         short flag; /* settings for filter, hiding dots files,...  */
160         short sort; /* sort order */
161         short display; /* display mode flag */
162         short filter; /* filter when (flags & FILE_FILTER) is true */
163
164         /* XXX - temporary, better move to filelist */
165         short active_bookmark;
166         int     active_file;
167         int selstate;
168
169         /* short */
170         /* XXX --- still unused -- */
171         short f_fp; /* show font preview */
172         short menu; /* currently selected option in pupmenu */
173         char fp_str[8]; /* string to use for font preview */
174         char *pupmenu; /* allows menu for save options - result stored in menup */
175         /* XXX --- end unused -- */
176 } FileSelectParams;
177
178
179 typedef struct SpaceFile {
180         SpaceLink *next, *prev;
181         ListBase regionbase;            /* storage of regions for inactive spaces */
182         int spacetype;
183         int pad;
184
185         struct FileSelectParams *params; /* config and input for file select */
186         
187         struct FileList *files; /* holds the list of files to show */
188
189         ListBase *folders_prev; /* holds the list of previous directories to show */
190         ListBase *folders_next; /* holds the list of next directories (pushed from previous) to show */
191
192         /* operator that is invoking fileselect 
193            op->exec() will be called on the 'Load' button.
194            if operator provides op->cancel(), then this will be invoked
195            on the cancel button.
196         */
197         struct wmOperator *op; 
198
199         struct wmTimer *loadimage_timer;
200
201         struct FileLayout *layout;
202         
203         short recentnr, bookmarknr;
204         short systemnr, pad2;
205 } SpaceFile;
206
207 typedef struct SpaceOops {
208         SpaceLink *next, *prev;
209         ListBase regionbase;            /* storage of regions for inactive spaces */
210         int spacetype;
211         float blockscale;
212
213         short blockhandler[8];
214
215         View2D v2d; /* deprecated, copied to region */
216         
217         ListBase tree;
218         struct TreeStore *treestore;
219         
220         /* search stuff */
221         char search_string[32];
222         struct TreeStoreElem search_tse;
223         int search_flags, do_;
224         
225         short flag, outlinevis, storeflag, pad;
226 } SpaceOops;
227
228 typedef struct SpaceImage {
229         SpaceLink *next, *prev;
230         ListBase regionbase;            /* storage of regions for inactive spaces */
231         int spacetype;
232
233         float blockscale;
234         short blockhandler[8];
235         
236         struct Image *image;
237         struct ImageUser iuser;
238         
239         struct CurveMapping *cumap;
240         short menunr, imanr, pad2;
241         short curtile; /* the currently active tile of the image when tile is enabled, is kept in sync with the active faces tile */
242         int flag;
243         short imtypenr, lock;
244         short pin, pad3;
245         char dt_uv; /* UV draw type */
246         char sticky; /* sticky selection type */
247         char dt_uvstretch;
248         char around;
249         
250         float xof, yof;                                 /* user defined offset, image is centered */
251         float zoom, pad4;                               /* user defined zoom level */
252         float centx, centy;                             /* storage for offset while render drawing */
253         
254         struct bGPdata *gpd;                    /* grease pencil data */
255 } SpaceImage;
256
257 typedef struct SpaceNla {
258         struct SpaceLink *next, *prev;
259         ListBase regionbase;            /* storage of regions for inactive spaces */
260         int spacetype;
261         float blockscale;
262
263         short blockhandler[8];
264
265         short autosnap;                 /* this uses the same settings as autosnap for Action Editor */
266         short flag;
267         int pad;
268         
269         struct bDopeSheet *ads;
270         View2D v2d;      /* deprecated, copied to region */
271 } SpaceNla;
272
273 typedef struct SpaceText {
274         SpaceLink *next, *prev;
275         ListBase regionbase;            /* storage of regions for inactive spaces */
276         int spacetype;
277         float blockscale;
278
279         short blockhandler[8];
280
281         struct Text *text;      
282
283         int top, viewlines;
284         short flags, menunr;    
285
286         short lheight;          /* user preference */
287         char cwidth, linenrs_tot;               /* runtime computed, character width and the number of chars to use when showing line numbers */
288         int left;
289         int showlinenrs;
290         int tabnumber;
291
292         int showsyntax;
293         short overwrite;
294         short live_edit; /* run python while editing, evil */
295         float pix_per_line;
296
297         struct rcti txtscroll, txtbar;
298
299         int wordwrap, doplugins;
300
301         char findstr[256];              /* ST_MAX_FIND_STR */
302         char replacestr[256];   /* ST_MAX_FIND_STR */
303 } SpaceText;
304
305 typedef struct Script {
306         ID id;
307
308         void *py_draw;
309         void *py_event;
310         void *py_button;
311         void *py_browsercallback;
312         void *py_globaldict;
313
314         int flags, lastspace;
315         char scriptname[256]; /* store the script file here so we can re-run it on loading blender, if "Enable Scripts" is on */
316         char scriptarg[256];
317 } Script;
318 #define SCRIPT_SET_NULL(_script) _script->py_draw = _script->py_event = _script->py_button = _script->py_browsercallback = _script->py_globaldict = NULL; _script->flags = 0;
319 #define SCRIPT_RUNNING  0x01
320 #define SCRIPT_GUI              0x02
321 #define SCRIPT_FILESEL  0x04
322
323 typedef struct SpaceScript {
324         SpaceLink *next, *prev;
325         ListBase regionbase;            /* storage of regions for inactive spaces */
326         int spacetype;
327         float blockscale;
328         struct Script *script;
329
330         short flags, menunr;
331         int pad1;
332         
333         void *but_refs;
334 } SpaceScript;
335
336 typedef struct SpaceTime {
337         SpaceLink *next, *prev;
338         ListBase regionbase;            /* storage of regions for inactive spaces */
339         int spacetype;
340         float blockscale;
341         
342         View2D v2d; /* deprecated, copied to region */
343         
344         int flag, redraws;
345         
346 } SpaceTime;
347
348 typedef struct SpaceNode {
349         SpaceLink *next, *prev;
350         ListBase regionbase;            /* storage of regions for inactive spaces */
351         int spacetype;
352         float blockscale;
353         
354         short blockhandler[8];
355         
356         View2D v2d; /* deprecated, copied to region */
357         
358         struct ID *id, *from;           /* context, no need to save in file? well... pinning... */
359         short flag, menunr;                     /* menunr: browse id block in header */
360         float aspect;
361         void *curfont;
362         
363         float xof, yof; /* offset for drawing the backdrop */
364         float mx, my;   /* mousepos for drawing socketless link */
365         
366         struct bNodeTree *nodetree, *edittree;
367         int treetype;                   /* treetype: as same nodetree->type */
368         short texfrom, pad;             /* texfrom object, world or brush */
369         
370         struct bGPdata *gpd;            /* grease-pencil data */
371 } SpaceNode;
372
373 /* snode->flag */
374 #define SNODE_BACKDRAW          2
375 #define SNODE_DISPGP            4
376
377 /* snode->texfrom */
378 #define SNODE_TEX_OBJECT        0
379 #define SNODE_TEX_WORLD         1
380 #define SNODE_TEX_BRUSH         2
381
382 typedef struct SpaceLogic {
383         SpaceLink *next, *prev;
384         ListBase regionbase;            /* storage of regions for inactive spaces */
385         int spacetype;
386         float blockscale;
387         
388         short blockhandler[8];
389         
390         short flag, scaflag;
391         int pad;
392         
393         struct bGPdata *gpd;            /* grease-pencil data */
394 } SpaceLogic;
395
396
397 typedef struct SpaceImaSel {
398         SpaceLink *next, *prev;
399         ListBase regionbase;            /* storage of regions for inactive spaces */
400         int spacetype;
401         float blockscale;
402         
403         short blockhandler[8];
404
405         View2D v2d; /* deprecated, copied to region */
406
407         struct FileList *files;
408
409         /* specific stuff for drawing */
410         char title[24];
411         char dir[240];
412         char file[80];
413
414         short type, menu, flag, sort;
415
416         void *curfont;
417         int     active_file;
418
419         int numtilesx;
420         int numtilesy;
421
422         int selstate;
423
424         struct rcti viewrect;
425         struct rcti bookmarkrect;
426
427         float scrollpos; /* current position of scrollhandle */
428         float scrollheight; /* height of the scrollhandle */
429         float scrollarea; /* scroll region, scrollpos is from 0 to scrollarea */
430
431         float aspect;
432         unsigned short retval;          /* event */
433
434         short ipotype;
435         
436         short filter;
437         short active_bookmark;
438         short pad, pad1;
439
440         /* view settings */
441         short prv_w;
442         short prv_h;
443
444         /* one day we'll add unions to dna */
445         void (*returnfunc)(char *);
446         void (*returnfunc_event)(unsigned short);
447         void (*returnfunc_args)(char *, void *, void *);
448         
449         void *arg1, *arg2;
450         short *menup;   /* pointer to menu result or ID browsing */
451         char *pupmenu;  /* optional menu in header */
452
453         struct ImBuf *img;
454 } SpaceImaSel;
455
456
457 typedef struct ConsoleLine {
458         struct ConsoleLine *next, *prev;
459         
460         /* keep these 3 vars so as to share free, realloc funcs */
461         int len_alloc;  /* allocated length */
462         int len;        /* real len - strlen() */
463         char *line; 
464         
465         int cursor;
466         int type; /* only for use when in the 'scrollback' listbase */
467 } ConsoleLine;
468
469 /* ConsoleLine.type */
470 enum {
471         CONSOLE_LINE_OUTPUT=0,
472         CONSOLE_LINE_INPUT,
473         CONSOLE_LINE_INFO, /* autocomp feedback */
474         CONSOLE_LINE_ERROR
475 };
476
477 /* SpaceConsole.rpt_mask */
478 enum {
479         CONSOLE_TYPE_PYTHON=0,
480         CONSOLE_TYPE_REPORT,
481 };
482
483 /* SpaceConsole.type see BKE_report.h */
484 enum {
485         CONSOLE_RPT_DEBUG       = 1<<0,
486         CONSOLE_RPT_INFO        = 1<<1,
487         CONSOLE_RPT_OP          = 1<<2,
488         CONSOLE_RPT_WARN        = 1<<3,
489         CONSOLE_RPT_ERR         = 1<<4,
490 };
491
492 typedef struct SpaceConsole {
493         SpaceLink *next, *prev;
494         ListBase regionbase;            /* storage of regions for inactive spaces */
495         int spacetype;
496         float blockscale;                       // XXX are these needed?
497         
498         short blockhandler[8];          // XXX are these needed?
499         
500         /* space vars */
501         int type; /* console/report/..? */
502         int rpt_mask; /* which reports to display */
503         int flag, lheight;
504
505         ListBase scrollback; /* ConsoleLine; output */
506         ListBase history; /* ConsoleLine; command history, current edited line is the first */
507         char prompt[8];
508         
509 } SpaceConsole;
510
511 typedef struct SpaceUserPref {
512         SpaceLink *next, *prev;
513         ListBase regionbase;            /* storage of regions for inactive spaces */
514         int spacetype;
515
516         int pad;
517 } SpaceUserPref;
518
519 /* view3d  Now in DNA_view3d_types.h */
520
521
522
523 /* **************** SPACE DEFINES ********************* */
524
525 /* button defines (deprecated) */
526 /* warning: the values of these defines are used in sbuts->tabs[8] */
527 /* sbuts->mainb new */
528 #define CONTEXT_SCENE   0
529 #define CONTEXT_OBJECT  1
530 #define CONTEXT_TYPES   2
531 #define CONTEXT_SHADING 3
532 #define CONTEXT_EDITING 4
533 #define CONTEXT_SCRIPT  5
534 #define CONTEXT_LOGIC   6
535
536 /* sbuts->mainb old (deprecated) */
537 #define BUTS_VIEW                       0
538 #define BUTS_LAMP                       1
539 #define BUTS_MAT                        2
540 #define BUTS_TEX                        3
541 #define BUTS_ANIM                       4
542 #define BUTS_WORLD                      5
543 #define BUTS_RENDER                     6
544 #define BUTS_EDIT                       7
545 #define BUTS_GAME                       8
546 #define BUTS_FPAINT                     9
547 #define BUTS_RADIO                      10
548 #define BUTS_SCRIPT                     11
549 #define BUTS_SOUND                      12
550 #define BUTS_CONSTRAINT         13
551 #define BUTS_EFFECTS            14
552
553 /* sbuts->tab new (deprecated) */
554 #define TAB_SHADING_MAT         0
555 #define TAB_SHADING_TEX         1
556 #define TAB_SHADING_RAD         2
557 #define TAB_SHADING_WORLD       3
558 #define TAB_SHADING_LAMP        4
559
560 #define TAB_OBJECT_OBJECT       0
561 #define TAB_OBJECT_PHYSICS      1
562 #define TAB_OBJECT_PARTICLE     2
563
564 #define TAB_SCENE_RENDER        0
565 #define TAB_SCENE_WORLD         1
566 #define TAB_SCENE_ANIM          2
567 #define TAB_SCENE_SOUND         3
568 #define TAB_SCENE_SEQUENCER     4
569
570
571 /* buts->mainb new */
572 #define BCONTEXT_SCENE                  0
573 #define BCONTEXT_WORLD                          1
574 #define BCONTEXT_OBJECT                         2
575 #define BCONTEXT_DATA                           3
576 #define BCONTEXT_MATERIAL                       4
577 #define BCONTEXT_TEXTURE                        5
578 #define BCONTEXT_PARTICLE                       6
579 #define BCONTEXT_PHYSICS                        7
580 #define BCONTEXT_BONE                           9
581 #define BCONTEXT_MODIFIER                       10
582 #define BCONTEXT_CONSTRAINT                     12
583 #define BCONTEXT_BONE_CONSTRAINT        13
584 #define BCONTEXT_TOT                            14
585
586 /* sbuts->flag */
587 #define SB_PRV_OSA                      1
588 #define SB_PIN_CONTEXT          2
589 #define SB_WORLD_TEX            4
590 #define SB_BRUSH_TEX            8
591
592 /* sbuts->align */
593 #define BUT_FREE                0
594 #define BUT_HORIZONTAL  1
595 #define BUT_VERTICAL    2
596 #define BUT_AUTO                3
597
598 /* sbuts->scaflag */            
599 #define BUTS_SENS_SEL           1
600 #define BUTS_SENS_ACT           2
601 #define BUTS_SENS_LINK          4
602 #define BUTS_CONT_SEL           8
603 #define BUTS_CONT_ACT           16
604 #define BUTS_CONT_LINK          32
605 #define BUTS_ACT_SEL            64
606 #define BUTS_ACT_ACT            128
607 #define BUTS_ACT_LINK           256
608 #define BUTS_SENS_STATE         512
609 #define BUTS_ACT_STATE          1024
610
611 /* FileSelectParams.display */
612 enum FileDisplayTypeE {
613         FILE_SHORTDISPLAY = 1,
614         FILE_LONGDISPLAY,
615         FILE_IMGDISPLAY
616 };
617
618 /* FileSelectParams.sort */
619 enum FileSortTypeE {
620         FILE_SORT_NONE = 0,
621         FILE_SORT_ALPHA = 1,
622         FILE_SORT_EXTENSION,
623         FILE_SORT_TIME,
624         FILE_SORT_SIZE
625 };
626
627 /* these values need to be hardcoded in structs, dna does not recognize defines */
628 /* also defined in BKE */
629 #define FILE_MAXDIR                     160
630 #define FILE_MAXFILE            80
631 #define FILE_MAX                        240
632
633 /* filesel types */
634 #define FILE_UNIX                       8
635 #define FILE_BLENDER            8 /* dont display relative paths */
636 #define FILE_SPECIAL            9
637
638 #define FILE_LOADLIB            1
639 #define FILE_MAIN                       2
640 #define FILE_LOADFONT           3
641
642 /* sfile->flag and simasel->flag */
643 #define FILE_SHOWSHORT          1
644 #define FILE_STRINGCODE         2
645 #define FILE_LINK                       4
646 #define FILE_HIDE_DOT           8
647 #define FILE_AUTOSELECT         16
648 #define FILE_ACTIVELAY          32
649 #define FILE_ATCURSOR           64
650 #define FILE_SYNCPOSE           128
651 #define FILE_FILTER                     256
652 #define FILE_BOOKMARKS          512
653
654 /* files in filesel list: 2=ACTIVE  */
655 #define EDITING                         1
656 #define ACTIVE                          2
657 #define BLENDERFILE                     4
658 #define PSXFILE                         8
659 #define IMAGEFILE                       16
660 #define MOVIEFILE                       32
661 #define PYSCRIPTFILE            64
662 #define FTFONTFILE                      128
663 #define SOUNDFILE                       256
664 #define TEXTFILE                        512
665 #define MOVIEFILE_ICON          1024 /* movie file that preview can't load */
666 #define FOLDERFILE                      2048 /* represents folders for filtering */
667
668 /* SpaceImage->dt_uv */
669 #define SI_UVDT_OUTLINE 0
670 #define SI_UVDT_DASH    1
671 #define SI_UVDT_BLACK   2
672 #define SI_UVDT_WHITE   3
673
674 /* SpaceImage->dt_uvstretch */
675 #define SI_UVDT_STRETCH_ANGLE   0
676 #define SI_UVDT_STRETCH_AREA    1
677
678 /* SpaceImage->sticky
679  * Note DISABLE should be 0, however would also need to re-arrange icon order,
680  * also, sticky loc is the default mode so this means we dont need to 'do_versons' */
681 #define SI_STICKY_LOC           0
682 #define SI_STICKY_DISABLE       1
683 #define SI_STICKY_VERTEX        2
684
685 /* SpaceImage->flag */
686 #define SI_BE_SQUARE    1<<0
687 #define SI_EDITTILE             1<<1
688 #define SI_CLIP_UV              1<<2
689 #define SI_DRAWTOOL             1<<3
690 #define SI_DEPRECATED1  1<<4    /* stick UVs to others in the same location */
691 #define SI_DRAWSHADOW   1<<5
692 #define SI_SELACTFACE   1<<6    /* deprecated */
693 #define SI_DEPRECATED2  1<<7
694 #define SI_DEPRECATED3  1<<8    /* stick UV selection to mesh vertex (UVs wont always be touching) */
695 #define SI_COORDFLOATS  1<<9
696 #define SI_PIXELSNAP    1<<10
697 #define SI_LIVE_UNWRAP  1<<11
698 #define SI_USE_ALPHA    1<<12
699 #define SI_SHOW_ALPHA   1<<13
700 #define SI_SHOW_ZBUF    1<<14
701                 /* next two for render window dislay */
702 #define SI_PREVSPACE    1<<15
703 #define SI_FULLWINDOW   1<<16
704 #define SI_DEPRECATED4  1<<17
705 #define SI_DEPRECATED5  1<<18
706                 /* this means that the image is drawn until it reaches the view edge,
707                  * in the image view, its unrelated to the 'tile' mode for texface */
708 #define SI_DRAW_TILE    1<<19 
709 #define SI_SMOOTH_UV    1<<20
710 #define SI_DRAW_STRETCH 1<<21
711 #define SI_DISPGP               1<<22
712 #define SI_DRAW_OTHER   1<<23
713
714 #define SI_COLOR_CORRECTION     1<<24
715
716 /* SpaceIpo->flag (Graph Editor Settings) */
717 #define SIPO_LOCK_VIEW                  (1<<0)
718 #define SIPO_NOTRANSKEYCULL             (1<<1)
719 #define SIPO_NOHANDLES                  (1<<2)
720 #define SIPO_NODRAWCFRANUM              (1<<3)
721 #define SIPO_DRAWTIME                   (1<<4)
722 #define SIPO_SELCUVERTSONLY             (1<<5)
723 #define SIPO_DRAWNAMES                  (1<<6)
724 #define SIPO_SLIDERS                    (1<<7)
725
726 /* SpaceIpo->mode (Graph Editor Mode) */
727 enum {
728                 /* all animation curves (from all over Blender) */
729         SIPO_MODE_ANIMATION     = 0,
730                 /* drivers only */
731         SIPO_MODE_DRIVERS,
732 } eGraphEdit_Mode;
733
734 /* SpaceText flags (moved from DNA_text_types.h) */
735
736 #define ST_SCROLL_SELECT        0x0001 // scrollable
737 #define ST_CLEAR_NAMESPACE      0x0010 // clear namespace after script
738                                        // execution (see BPY_main.c)
739 #define ST_FIND_WRAP                    0x0020
740 #define ST_FIND_ALL                             0x0040
741
742
743 /* stext->findstr/replacestr */
744 #define ST_MAX_FIND_STR         256
745
746 /* SpaceOops->flag */
747 #define SO_TESTBLOCKS   1
748 #define SO_NEWSELECTED  2
749 #define SO_HIDE_RESTRICTCOLS            4
750 #define SO_HIDE_KEYINGSETINFO           8
751
752 /* SpaceOops->outlinevis */
753 #define SO_ALL_SCENES   0
754 #define SO_CUR_SCENE    1
755 #define SO_VISIBLE              2
756 #define SO_SELECTED             3
757 #define SO_ACTIVE               4
758 #define SO_SAME_TYPE    5
759 #define SO_GROUPS               6
760 #define SO_LIBRARIES    7
761 #define SO_VERSE_SESSION        8
762 #define SO_VERSE_MS             9
763 #define SO_SEQUENCE             10
764 #define SO_DATABLOCKS   11
765 #define SO_USERDEF              12
766 #define SO_KEYMAP               13
767
768 /* SpaceOops->storeflag */
769 #define SO_TREESTORE_CLEANUP    1
770                 /* if set, it allows redraws. gets set for some allqueue events */
771 #define SO_TREESTORE_REDRAW             2
772
773 /* headerbuttons: 450-499 */
774
775 #define B_IMASELHOME            451
776 #define B_IMASELREMOVEBIP       452
777
778 #define C_BACK  0xBAAAAA
779 #define C_DARK  0x665656
780 #define C_DERK  0x766666
781 #define C_HI    0xCBBBBB
782 #define C_LO    0x544444
783
784 /* queue settings */
785 #define IMS_KNOW_WIN        1
786 #define IMS_KNOW_BIP        2
787 #define IMS_KNOW_DIR        4
788 #define IMS_DOTHE_INF           8
789 #define IMS_KNOW_INF       16
790 #define IMS_DOTHE_IMA      32
791 #define IMS_KNOW_IMA       64
792 #define IMS_FOUND_BIP     128
793 #define IMS_DOTHE_BIP     256
794 #define IMS_WRITE_NO_BIP  512
795
796 /* imasel->mode */
797 #define IMS_NOIMA                       0
798 #define IMS_IMA                         1
799 #define IMS_ANIM                        2
800 #define IMS_DIR                         4
801 #define IMS_FILE                        8
802 #define IMS_STRINGCODE          16
803
804 #define IMS_INDIR                       1
805 #define IMS_INDIRSLI            2
806 #define IMS_INFILE                      3
807 #define IMS_INFILESLI           4
808
809 /* nla->flag */
810         // depreceated
811 #define SNLA_ALLKEYED           (1<<0)
812         // depreceated
813 #define SNLA_ACTIVELAYERS       (1<<1)
814
815 #define SNLA_DRAWTIME           (1<<2)
816 #define SNLA_NOTRANSKEYCULL     (1<<3)
817 #define SNLA_NODRAWCFRANUM      (1<<4)
818 #define SNLA_NOSTRIPCURVES      (1<<5)
819
820 /* time->flag */
821         /* show timing in frames instead of in seconds */
822 #define TIME_DRAWFRAMES         1
823         /* temporary flag set when scrubbing time */
824 #define TIME_CFRA_NUM           2
825         /* only keyframes from active/selected channels get shown */
826 #define TIME_ONLYACTSEL         4
827
828 /* time->redraws */
829 #define TIME_REGION                             1
830 #define TIME_ALL_3D_WIN                 2
831 #define TIME_ALL_ANIM_WIN               4
832 #define TIME_ALL_BUTS_WIN               8
833 #define TIME_WITH_SEQ_AUDIO             16              // deprecated
834 #define TIME_SEQ                                32
835 #define TIME_ALL_IMAGE_WIN              64
836 #define TIME_CONTINUE_PHYSICS   128
837 #define TIME_NODES                              256
838
839 /* sseq->mainb */
840 #define SEQ_DRAW_SEQUENCE         0
841 #define SEQ_DRAW_IMG_IMBUF        1
842 #define SEQ_DRAW_IMG_WAVEFORM     2
843 #define SEQ_DRAW_IMG_VECTORSCOPE  3
844 #define SEQ_DRAW_IMG_HISTOGRAM    4
845
846 /* sseq->flag */
847 #define SEQ_DRAWFRAMES   1
848 #define SEQ_MARKER_TRANS 2
849 #define SEQ_DRAW_COLOR_SEPERATED     4
850 #define SEQ_DRAW_SAFE_MARGINS        8
851 #define SEQ_DRAW_GPENCIL                        16
852
853 /* space types, moved from DNA_screen_types.h */
854 enum {
855         SPACE_EMPTY,
856         SPACE_VIEW3D,
857         SPACE_IPO,
858         SPACE_OUTLINER,
859         SPACE_BUTS,
860         SPACE_FILE,
861         SPACE_IMAGE,            
862         SPACE_INFO,
863         SPACE_SEQ,
864         SPACE_TEXT,
865         SPACE_IMASEL,
866         SPACE_SOUND,
867         SPACE_ACTION,
868         SPACE_NLA,
869         SPACE_SCRIPT,
870         SPACE_TIME,
871         SPACE_NODE,
872         SPACE_LOGIC,
873         SPACE_CONSOLE,
874         SPACE_USERPREF,
875         SPACEICONMAX = SPACE_USERPREF
876 };
877
878 #endif