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