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