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