Blender V5.0
DNA_space_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
9
10#pragma once
11
12#include "DNA_asset_types.h"
13#include "DNA_color_types.h" /* for Histogram */
14#include "DNA_defs.h"
15#include "DNA_image_types.h" /* ImageUser */
16#include "DNA_listBase.h"
17#include "DNA_movieclip_types.h" /* MovieClipUser */
18#include "DNA_node_types.h" /* for bNodeInstanceKey */
19#include "DNA_outliner_types.h" /* for TreeStoreElem */
20#include "DNA_space_enums.h"
21/* Hum ... Not really nice... but needed for spacebuts. */
22#include "DNA_view2d_types.h"
24
25struct BLI_mempool;
26struct FileLayout;
27struct FileList;
28struct FileSelectParams;
29struct Histogram;
30struct ID;
31struct Image;
32struct Mask;
33struct MovieClip;
34struct MovieClipScopes;
35struct Scopes;
36struct Script;
37struct SpaceGraph;
38struct Text;
39struct bDopeSheet;
40struct bGPdata;
41struct bNodeTree;
42struct wmOperator;
43struct wmTimer;
44
45#ifdef __cplusplus
46namespace blender::asset_system {
48}
50#else
52#endif
53
56
57#ifdef __cplusplus
60} // namespace blender::ed::space_node
62
63namespace blender::ed::outliner {
65} // namespace blender::ed::outliner
67
68namespace blender::ed::vse {
69struct SpaceSeq_Runtime;
70} // namespace blender::ed::vse
72
73namespace blender::ed::text {
75} // namespace blender::ed::text
77
81} // namespace blender::ed::spreadsheet
84#else
91#endif
92
95
96/* -------------------------------------------------------------------- */
99
113
115
116/* -------------------------------------------------------------------- */
119
121typedef struct SpaceInfo {
127 char _pad0[6];
128 /* End 'SpaceLink' header. */
129
131 char _pad[7];
133
135
136/* -------------------------------------------------------------------- */
139
141typedef struct SpaceProperties {
143
149 char _pad0[6];
150 /* End 'SpaceLink' header. */
151
154
155 /* For different kinds of property editors (exposed in the space type selector). */
157
160 uint32_t visible_tabs;
162 short preview;
163 char flag;
164
165 /* eSpaceButtons_OutlinerSync */
167
169 void *path;
173
174 void *texuser;
175
176 /* Doesn't necessarily need to be a pointer, but runtime structs are still written to files. */
179
181
182/* -------------------------------------------------------------------- */
185
229
231
232/* -------------------------------------------------------------------- */
235
243
245typedef struct SpaceGraph {
251 char _pad0[6];
252 /* End 'SpaceLink' header. */
253
256
260
262 short mode;
263 /* Snapping now lives on the Scene. */
264 short autosnap DNA_DEPRECATED;
266 int flag;
267
274 char _pad[4];
275
278
280
281/* -------------------------------------------------------------------- */
284
286typedef struct SpaceNla {
287 struct SpaceLink *next, *prev;
292 char _pad0[6];
293 /* End 'SpaceLink' header. */
294
295 /* Snapping now lives on the Scene. */
296 short autosnap DNA_DEPRECATED;
297 short flag;
298 char _pad[4];
299
304
306
307/* -------------------------------------------------------------------- */
310
315
320
325
327typedef struct SpaceSeq {
333 char _pad0[6];
334 /* End 'SpaceLink' header. */
335
338
341 short mainb; /* eSpaceSeq_RegionType; strange name for view type (image, histogram, ...). */
342 short render_size; /* eSpaceSeq_Proxy_RenderSize. */
344 short zebra; /* Show overexposed. 0=disabled; otherwise as percentage of "pure white". */
345 int flag;
347 float zoom DNA_DEPRECATED;
349 char view;
354 char _pad[4];
355
357 float cursor[2];
358
360 struct bGPdata *gpd;
361
365
368 char _pad2[7];
369
372
373typedef struct MaskSpaceInfo {
374 /* **** mask editing **** */
375 struct Mask *mask;
376 /* draw options */
380 char _pad3[1];
383
385
386/* -------------------------------------------------------------------- */
389
391typedef struct FileSelectParams {
393 char title[96];
400 char dir[/*FILE_MAX_LIBEXTRA*/ 1282];
401 char file[/*FILE_MAXFILE*/ 256];
402
403 char renamefile[/*FILE_MAXFILE*/ 256];
405 char _pad[4];
409 const ID *rename_id;
410 void *_pad3;
411
413 char filter_glob[/*FILE_MAXFILE*/ 256];
414
419
427 unsigned short thumbnail_size;
428 unsigned short list_thumbnail_size;
429 unsigned short list_column_size;
430
431 /* short */
433 short type; /* eFileSelectType */
435 short flag;
437 short sort;
439 short display;
442 char _pad1;
443
446
449
450 char _pad2[2];
452
456typedef struct FileAssetSelectParams {
458
460 short asset_catalog_visibility; /* eFileSel_Params_AssetCatalogVisibility */
461 char _pad[6];
465
466 short import_method; /* eFileAssetImportMethod */
467 short import_flags; /* eFileImportFlags */
468 char _pad2[4];
470
475typedef struct FileFolderHistory {
476 struct FileFolderLists *next, *prev;
477
479 char browse_mode; /* eFileBrowse_Mode */
480 char _pad[7];
481
487
489typedef struct SpaceFile {
495 char _pad0[6];
496 /* End 'SpaceLink' header. */
497
499 char browse_mode; /* eFileBrowse_Mode */
500 char _pad1[1];
501
502 short tags;
503
505
509
510 void *_pad2;
511
517
527
532 ListBase folder_histories; /* FileFolderHistory */
533
538 struct wmOperator *op;
539
542
544
547
550
551/* ***** Related to file browser, but never saved in DNA, only here to help with RNA. ***** */
552
553#
554#
555typedef struct FileDirEntry {
557
558 uint32_t uid; /* FileUID */
559 /* Name needs freeing if FILE_ENTRY_NAME_FREE is set. Otherwise this is a direct pointer to a
560 * name buffer. */
561 const char *name;
562
565
566 struct {
567 /* Temp caching of UI-generated strings. */
568 char size_str[16];
569 char datetime_str[16 + 8];
570 } draw_data;
571
576
577 /* Path to item that is relative to current folder root. To get the full path, use
578 * #filelist_file_get_full_path() */
579 char *relpath;
582
590
591 /* The icon_id for the preview image. */
593
594 short flags;
595 /* eFileAttributes defined in BLI_fileops.h */
598
605#
606#
614
616
617/* -------------------------------------------------------------------- */
620
621/* Image/UV Editor */
622
627
628typedef struct SpaceImage {
634 char _pad0[6];
635 /* End 'SpaceLink' header. */
636
637 struct Image *image;
639
644
646 struct bGPdata *gpd;
647
649 float cursor[2];
651 float xof, yof;
653 float zoom;
655 float centx, centy;
656
658 char mode;
659 /* Storage for sub-space types. */
661
662 char pin;
663
665
666 char lock;
668 char dt_uv;
671 char around;
672
674
676 char _pad1[6];
677
678 int flag;
679
682 char _pad2[4];
683
685
692
696
698
699/* -------------------------------------------------------------------- */
702
704typedef struct SpaceText {
710 char _pad0[6];
711 /* End 'SpaceLink' header. */
712
713 struct Text *text;
714
716 int top;
717
719 int left;
720 char _pad1[4];
721
722 short flags;
723
725 short lheight;
726
728
729 /* Booleans */
738 char _pad2[1];
739
740 char findstr[/*ST_MAX_FIND_STR*/ 256];
741 char replacestr[/*ST_MAX_FIND_STR*/ 256];
742
745 char _pad3[2];
746
750
752
753/* -------------------------------------------------------------------- */
756
758typedef struct Script {
760
761 void *py_draw;
762 void *py_event;
766
772 char scriptname[/*FILE_MAX*/ 1024];
773 char scriptarg[/*FILE_MAXFILE*/ 256];
775#define SCRIPT_SET_NULL(_script) \
776 _script->py_draw = _script->py_event = _script->py_button = _script->py_browsercallback = \
777 _script->py_globaldict = NULL; \
778 _script->flags = 0
779
781typedef struct SpaceScript {
787 char _pad0[6];
788 /* End 'SpaceLink' header. */
789
790 struct Script *script;
791
792 short flags, menunr;
793 char _pad1[4];
794
795 void *but_refs;
797
799
800/* -------------------------------------------------------------------- */
803
804typedef struct bNodeTreePath {
806
810 char _pad[4];
812 float view_center[2];
813
814 char node_name[/*MAX_NAME*/ 64];
815 char display_name[/*MAX_NAME*/ 64];
817
818typedef struct SpaceNodeOverlay {
819 /* eSpaceNodeOverlay_Flag */
820 int flag;
821 /* eSpaceNodeOverlay_preview_shape */
824
825typedef struct SpaceNode {
831 char _pad0[6];
832 /* End 'SpaceLink' header. */
833
836
838 struct ID *id, *from;
839
840 short flag;
841
844 char _pad1;
845
847 float xof, yof;
849 float zoom;
850
859
860 /* The tree farthest down in the group hierarchy. */
862
864
865 /* tree type for the current node tree */
866 char tree_idname[64];
868 int treetype DNA_DEPRECATED;
869
871 short texfrom;
879
887
889 struct bGPdata *gpd;
890
892 char _pad2[7];
893
895
898
900
901/* -------------------------------------------------------------------- */
904
906typedef struct ConsoleLine {
908
909 /* Keep these 3 vars so as to share free, realloc functions. */
913 int len;
914 char *line;
915
918 int type;
920
922typedef struct SpaceConsole {
928 char _pad0[6];
929 /* End 'SpaceLink' header. */
930
931 /* Space variables. */
932
937 char prompt[256];
939 char language[32];
940
942
945
950
952
953/* -------------------------------------------------------------------- */
956
957typedef struct SpaceUserPref {
963 char _pad0[6];
964 /* End 'SpaceLink' header. */
965
966 char _pad1[7];
969 char filter[64];
971
973
974/* -------------------------------------------------------------------- */
977
978typedef struct SpaceClipOverlay {
979 /* eSpaceClipOverlay_Flag */
980 int flag;
981 char _pad0[4];
983
985typedef struct SpaceClip {
991 char _pad0[6];
992 /* End 'SpaceLink' header. */
993
995 char _pad1[3];
996
998 float xof, yof;
1002 float zoom;
1003
1010
1012 int flag;
1014 short mode;
1016 short view;
1017
1020
1021 /* current stabilization data */
1023 float loc[2], scale, angle;
1024 char _pad[4];
1029 float stabmat[4][4], unistabmat[4][4];
1030
1033
1034 /* grease pencil */
1036 char _pad2[2];
1037
1040 char _pad4[4];
1041
1043 float cursor[2];
1044
1048
1050
1051/* -------------------------------------------------------------------- */
1054
1055typedef struct SpaceTopBar {
1061 char _pad0[6];
1062 /* End 'SpaceLink' header. */
1064
1066
1067/* -------------------------------------------------------------------- */
1070
1071typedef struct SpaceStatusBar {
1077 char _pad0[6];
1078 /* End 'SpaceLink' header. */
1080
1082
1083/* -------------------------------------------------------------------- */
1086
1090
1091typedef struct SpreadsheetColumn {
1098
1103 uint8_t data_type;
1104 char _pad0[3];
1106 uint32_t flag;
1108 float width;
1109
1114 uint32_t last_used;
1115
1121
1123
1124#ifdef __cplusplus
1125 bool is_available() const
1126 {
1128 }
1129#endif
1131
1134
1135#ifdef __cplusplus
1136 uint64_t hash() const;
1137 friend bool operator==(const SpreadsheetInstanceID &a, const SpreadsheetInstanceID &b);
1138 friend bool operator!=(const SpreadsheetInstanceID &a, const SpreadsheetInstanceID &b);
1139#endif
1141
1146
1149#ifdef __cplusplus
1152#endif
1154
1160
1197
1217
1255
1256typedef struct SpreadsheetRowFilter {
1258
1259 char column_name[/*MAX_NAME*/ 64];
1260
1261 /* eSpreadsheetFilterOperation. */
1262 uint8_t operation;
1263 /* eSpaceSpreadsheet_RowFilterFlag. */
1264 uint8_t flag;
1265
1266 char _pad0[6];
1267
1276 float value_color[4];
1277 char _pad1[4];
1279
BLI_INLINE bool operator!=(const ListBase &a, const ListBase &b)
#define DNA_DEFINE_CXX_METHODS(class_name)
Definition DNA_defs.h:66
These structs are the foundation for all linked lists in the library system.
@ SPREADSHEET_COLUMN_FLAG_UNAVAILABLE
struct FileDirEntryArr FileDirEntryArr
struct SpreadsheetRowFilter SpreadsheetRowFilter
struct SpaceNode SpaceNode
struct bNodeTreePath bNodeTreePath
struct SpaceNodeOverlay SpaceNodeOverlay
struct SpaceUserPref SpaceUserPref
struct SpaceNode_Runtime SpaceNode_Runtime
struct SpaceGraph_Runtime SpaceGraph_Runtime
struct SpreadsheetColumn SpreadsheetColumn
struct SpreadsheetTableIDGeometry SpreadsheetTableIDGeometry
struct SpaceStatusBar SpaceStatusBar
struct FileSelectParams FileSelectParams
struct SpaceSpreadsheet_Runtime SpaceSpreadsheet_Runtime
struct SpaceTopBar SpaceTopBar
struct ConsoleLine ConsoleLine
struct SpaceNla SpaceNla
struct SpaceText_Runtime SpaceText_Runtime
struct SpreadsheetColumnID SpreadsheetColumnID
struct SpaceFile SpaceFile
struct SpaceImageOverlay SpaceImageOverlay
struct SpaceSeq_Runtime SpaceSeq_Runtime
struct SpaceProperties_Runtime SpaceProperties_Runtime
struct SpreadsheetTableID SpreadsheetTableID
struct Script Script
struct SpaceImage SpaceImage
struct SequencerPreviewOverlay SequencerPreviewOverlay
struct SpaceGraph SpaceGraph
struct FileFolderHistory FileFolderHistory
SpreadsheetClosureInputOutput
@ SPREADSHEET_CLOSURE_INPUT
@ SPREADSHEET_CLOSURE_OUTPUT
@ SPREADSHEET_CLOSURE_NONE
struct FileAssetSelectParams FileAssetSelectParams
struct SpreadsheetInstanceID SpreadsheetInstanceID
struct SpaceSeq SpaceSeq
struct SpaceOutliner_Runtime SpaceOutliner_Runtime
struct AssetRepresentationHandle AssetRepresentationHandle
struct SpaceOutliner SpaceOutliner
struct SequencerCacheOverlay SequencerCacheOverlay
struct FileDirEntry FileDirEntry
struct MaskSpaceInfo MaskSpaceInfo
struct SpaceScript SpaceScript
struct SpaceClip SpaceClip
struct SpaceText SpaceText
struct SpaceConsole SpaceConsole
struct SpaceFile_Runtime SpaceFile_Runtime
struct SpreadsheetColumnRuntime SpreadsheetColumnRuntime
struct SpaceSpreadsheet SpaceSpreadsheet
struct SpreadsheetTable SpreadsheetTable
struct SpreadsheetBundlePathElem SpreadsheetBundlePathElem
struct SpaceClipOverlay SpaceClipOverlay
struct SequencerTimelineOverlay SequencerTimelineOverlay
bool operator==(const AssetWeakReference &a, const AssetWeakReference &b)
long long int int64_t
unsigned long long int uint64_t
#define typedef
#define hash
Definition noise_c.cc:154
struct ConsoleLine * next
struct ConsoleLine * prev
AssetLibraryReference asset_library_ref
FileSelectParams base_params
char datetime_str[16+8]
struct FileDirEntry * next
AssetRepresentationHandle * asset
char * redirection_path
const char * name
struct FileDirEntry * prev
struct FileFolderLists * prev
struct FileFolderLists * next
unsigned short list_column_size
unsigned short list_thumbnail_size
unsigned short thumbnail_size
Definition DNA_ID.h:414
struct Mask * mask
void * py_button
void * py_event
void * py_globaldict
char scriptarg[256]
char scriptname[1024]
void * py_browsercallback
void * py_draw
struct SpaceClipOverlay overlay
ListBase regionbase
SpaceLink * prev
struct MovieClipUser user
float cursor[2]
float stabmat[4][4]
struct MovieClipScopes scopes
float unistabmat[4][4]
SpaceLink * next
struct MovieClip * clip
MaskSpaceInfo mask_info
SpaceLink * prev
ListBase regionbase
ListBase scrollback
SpaceLink * next
SpaceLink * prev
struct wmTimer * smoothscroll_timer
struct FileLayout * layout
ListBase regionbase
struct wmOperator * op
ListBase * folders_prev
short system_bookmarknr
struct FileList * files
FileSelectParams * params
struct wmTimer * previews_timer
FileAssetSelectParams * asset_params
ListBase * folders_next
ListBase folder_histories
SpaceFile_Runtime * runtime
SpaceLink * next
struct bDopeSheet * ads
SpaceLink * prev
SpaceLink * next
SpaceGraph_Runtime runtime
ListBase regionbase
View2D v2d DNA_DEPRECATED
struct Scopes scopes
SpaceLink * next
float uv_face_opacity
float cursor[2]
int tile_grid_shape[2]
SpaceImageOverlay overlay
MaskSpaceInfo mask_info
struct Histogram sample_line_hist
int custom_grid_subdiv[2]
struct ImageUser iuser
struct bGPdata * gpd
struct Image * image
SpaceLink * prev
ListBase regionbase
float stretch_opacity
ListBase regionbase
SpaceLink * prev
SpaceLink * next
char _pad0[6]
struct SpaceLink * prev
struct SpaceLink * next
ListBase regionbase
short autosnap DNA_DEPRECATED
struct bDopeSheet * ads
struct bNodeTree * selected_node_group
char tree_idname[64]
SpaceNode_Runtime * runtime
struct ID * from
ListBase regionbase
char node_tree_sub_type
struct bGPdata * gpd
SpaceLink * next
ListBase treepath
struct bNodeTree * edittree
struct ID * id
SpaceNodeOverlay overlay
struct bNodeTree * nodetree
View2D v2d DNA_DEPRECATED
SpaceLink * prev
char search_string[64]
short lib_override_view_mode
SpaceLink * prev
View2D v2d DNA_DEPRECATED
SpaceOutliner_Runtime * runtime
struct BLI_mempool * treestore
SpaceLink * next
struct SpaceProperties_Runtime * runtime
View2D v2d DNA_DEPRECATED
SpaceLink * prev
struct Script * script
SpaceLink * next
ListBase regionbase
char overlay_frame_type
View2D v2d DNA_DEPRECATED
float cursor[2]
struct bGPdata * gpd
struct SequencerCacheOverlay cache_overlay
char _pad0[6]
SpaceLink * next
struct SequencerTimelineOverlay timeline_overlay
SpaceLink * prev
ListBase regionbase
short render_size
SpaceSeq_Runtime * runtime
char _pad2[7]
struct SequencerPreviewOverlay preview_overlay
SpreadsheetTableIDGeometry geometry_id
SpreadsheetTable ** tables
SpaceSpreadsheet_Runtime * runtime
char replacestr[256]
ListBase regionbase
SpaceLink * next
SpaceText_Runtime * runtime
short margin_column
SpaceLink * prev
struct Text * text
char findstr[256]
SpaceLink * next
ListBase regionbase
SpaceLink * prev
SpaceLink * prev
SpaceLink * next
SpreadsheetColumnID * id
SpreadsheetColumnRuntime * runtime
struct SpreadsheetRowFilter * prev
struct SpreadsheetRowFilter * next
SpreadsheetBundlePathElem * bundle_path
SpreadsheetInstanceID * instance_ids
SpreadsheetColumn ** columns
SpreadsheetTableID * id
struct bNodeTree * nodetree
struct bNodeTreePath * next
struct bNodeTreePath * prev
bNodeInstanceKey parent_key
char display_name[64]
Universally Unique Identifier according to RFC4122.