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