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