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