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