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