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