Blender V4.5
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
374
375typedef struct MaskSpaceInfo {
376 /* **** mask editing **** */
377 struct Mask *mask;
378 /* draw options */
382 char _pad3[1];
385
387
388/* -------------------------------------------------------------------- */
391
393typedef struct FileSelectParams {
395 char title[96];
402 char dir[/*FILE_MAX_LIBEXTRA*/ 1090];
403 char file[/*FILE_MAXFILE*/ 256];
404
405 char renamefile[/*FILE_MAXFILE*/ 256];
407 char _pad[4];
411 const ID *rename_id;
412 void *_pad3;
413
415 char filter_glob[/*FILE_MAXFILE*/ 256];
416
421
429 unsigned short thumbnail_size;
430 unsigned short list_thumbnail_size;
431 unsigned short list_column_size;
432
433 /* short */
435 short type; /* eFileSelectType */
437 short flag;
439 short sort;
441 short display;
444 char _pad1;
445
448
451
452 char _pad2[2];
454
458typedef struct FileAssetSelectParams {
460
462 short asset_catalog_visibility; /* eFileSel_Params_AssetCatalogVisibility */
463 char _pad[6];
467
468 short import_method; /* eFileAssetImportMethod */
469 short import_flags; /* eFileImportFlags */
470 char _pad2[4];
472
477typedef struct FileFolderHistory {
478 struct FileFolderLists *next, *prev;
479
481 char browse_mode; /* eFileBrowse_Mode */
482 char _pad[7];
483
489
491typedef struct SpaceFile {
497 char _pad0[6];
498 /* End 'SpaceLink' header. */
499
501 char browse_mode; /* eFileBrowse_Mode */
502 char _pad1[1];
503
504 short tags;
505
507
511
512 void *_pad2;
513
519
529
534 ListBase folder_histories; /* FileFolderHistory */
535
540 struct wmOperator *op;
541
544
546
549
552
553/* ***** Related to file browser, but never saved in DNA, only here to help with RNA. ***** */
554
555#
556#
557typedef struct FileDirEntry {
559
560 uint32_t uid; /* FileUID */
561 /* Name needs freeing if FILE_ENTRY_NAME_FREE is set. Otherwise this is a direct pointer to a
562 * name buffer. */
563 const char *name;
564
567
568 struct {
569 /* Temp caching of UI-generated strings. */
570 char size_str[16];
571 char datetime_str[16 + 8];
572 } draw_data;
573
578
579 /* Path to item that is relative to current folder root. To get the full path, use
580 * #filelist_file_get_full_path() */
581 char *relpath;
584
592
593 /* The icon_id for the preview image. */
595
596 short flags;
597 /* eFileAttributes defined in BLI_fileops.h */
600
607#
608#
616
618
619/* -------------------------------------------------------------------- */
622
623/* Image/UV Editor */
624
629
630typedef struct SpaceImage {
636 char _pad0[6];
637 /* End 'SpaceLink' header. */
638
639 struct Image *image;
641
646
648 struct bGPdata *gpd;
649
651 float cursor[2];
653 float xof, yof;
655 float zoom;
657 float centx, centy;
658
660 char mode;
661 /* Storage for sub-space types. */
663
664 char pin;
665
667
668 char lock;
670 char dt_uv;
673 char around;
674
676
678 char _pad1[6];
679
680 int flag;
681
684 char _pad2[4];
685
687
694
698
700
701/* -------------------------------------------------------------------- */
704
706typedef struct SpaceText {
712 char _pad0[6];
713 /* End 'SpaceLink' header. */
714
715 struct Text *text;
716
718 int top;
719
721 int left;
722 char _pad1[4];
723
724 short flags;
725
727 short lheight;
728
730
731 /* Booleans */
740 char _pad2[1];
741
742 char findstr[/*ST_MAX_FIND_STR*/ 256];
743 char replacestr[/*ST_MAX_FIND_STR*/ 256];
744
747 char _pad3[2];
748
752
754
755/* -------------------------------------------------------------------- */
758
760typedef struct Script {
762
763 void *py_draw;
764 void *py_event;
768
774 char scriptname[/*FILE_MAX*/ 1024];
775 char scriptarg[/*FILE_MAXFILE*/ 256];
777#define SCRIPT_SET_NULL(_script) \
778 _script->py_draw = _script->py_event = _script->py_button = _script->py_browsercallback = \
779 _script->py_globaldict = NULL; \
780 _script->flags = 0
781
783typedef struct SpaceScript {
789 char _pad0[6];
790 /* End 'SpaceLink' header. */
791
792 struct Script *script;
793
794 short flags, menunr;
795 char _pad1[4];
796
797 void *but_refs;
799
801
802/* -------------------------------------------------------------------- */
805
806typedef struct bNodeTreePath {
808
812 char _pad[4];
814 float view_center[2];
815
816 char node_name[/*MAX_NAME*/ 64];
817 char display_name[/*MAX_NAME*/ 64];
819
820typedef struct SpaceNodeOverlay {
821 /* eSpaceNodeOverlay_Flag */
822 int flag;
823 /* eSpaceNodeOverlay_preview_shape */
826
827typedef struct SpaceNode {
833 char _pad0[6];
834 /* End 'SpaceLink' header. */
835
838
840 struct ID *id, *from;
841
842 short flag;
843
846 char _pad1;
847
849 float xof, yof;
851 float zoom;
852
861
862 /* The tree farthest down in the group hierarchy. */
864
866
867 /* tree type for the current node tree */
868 char tree_idname[64];
870 int treetype DNA_DEPRECATED;
871
873 short texfrom;
881
888
890 struct bGPdata *gpd;
891
893 char _pad2[7];
894
896
899
901
902/* -------------------------------------------------------------------- */
905
907typedef struct ConsoleLine {
909
910 /* Keep these 3 vars so as to share free, realloc functions. */
914 int len;
915 char *line;
916
919 int type;
921
923typedef struct SpaceConsole {
929 char _pad0[6];
930 /* End 'SpaceLink' header. */
931
932 /* Space variables. */
933
938 char prompt[256];
940 char language[32];
941
943
946
951
953
954/* -------------------------------------------------------------------- */
957
958typedef struct SpaceUserPref {
964 char _pad0[6];
965 /* End 'SpaceLink' header. */
966
967 char _pad1[7];
970 char filter[64];
972
974
975/* -------------------------------------------------------------------- */
978
980typedef struct SpaceClip {
986 char _pad0[6];
987 /* End 'SpaceLink' header. */
988
990 char _pad1[3];
991
993 float xof, yof;
997 float zoom;
998
1005
1007 int flag;
1009 short mode;
1011 short view;
1012
1015
1016 /* current stabilization data */
1018 float loc[2], scale, angle;
1019 char _pad[4];
1024 float stabmat[4][4], unistabmat[4][4];
1025
1028
1029 /* grease pencil */
1031 char _pad2[2];
1032
1035 char _pad4[4];
1036
1038 float cursor[2];
1039
1042
1044
1045/* -------------------------------------------------------------------- */
1048
1049typedef struct SpaceTopBar {
1055 char _pad0[6];
1056 /* End 'SpaceLink' header. */
1058
1060
1061/* -------------------------------------------------------------------- */
1064
1065typedef struct SpaceStatusBar {
1071 char _pad0[6];
1072 /* End 'SpaceLink' header. */
1074
1076
1077/* -------------------------------------------------------------------- */
1080
1084
1085typedef struct SpreadsheetColumn {
1092
1097 uint8_t data_type;
1098 char _pad0[3];
1100 uint32_t flag;
1102 float width;
1103
1108 uint32_t last_used;
1109
1115
1117
1118#ifdef __cplusplus
1119 bool is_available() const
1120 {
1122 }
1123#endif
1125
1128
1129#ifdef __cplusplus
1130 uint64_t hash() const;
1131 friend bool operator==(const SpreadsheetInstanceID &a, const SpreadsheetInstanceID &b);
1132 friend bool operator!=(const SpreadsheetInstanceID &a, const SpreadsheetInstanceID &b);
1133#endif
1135
1140
1166
1186
1224
1225typedef struct SpreadsheetRowFilter {
1227
1228 char column_name[/*MAX_NAME*/ 64];
1229
1230 /* eSpreadsheetFilterOperation. */
1231 uint8_t operation;
1232 /* eSpaceSpreadsheet_RowFilterFlag. */
1233 uint8_t flag;
1234
1235 char _pad0[2];
1236
1244 float value_color[4];
1245 char _pad1[4];
1247
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
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 SequencerTimelineOverlay SequencerTimelineOverlay
bool operator==(const AssetWeakReference &a, const AssetWeakReference &b)
long long int int64_t
unsigned long long int uint64_t
#define typedef
#define DNA_DEFINE_CXX_METHODS(class_name)
#define hash
Definition noise_c.cc:154
bool operator!=(const SpreadsheetInstanceID &a, const SpreadsheetInstanceID &b)
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:404
struct Mask * mask
void * py_button
void * py_event
void * py_globaldict
char scriptarg[256]
char scriptname[1024]
void * py_browsercallback
void * py_draw
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
char tree_idname[64]
SpaceNode_Runtime * runtime
struct ID * from
ListBase regionbase
struct bGPdata * gpd
SpaceLink * next
ListBase treepath
struct bNodeTree * edittree
struct ID * id
struct bNodeTree * geometry_nodes_tool_tree
SpaceNodeOverlay overlay
struct bNodeTree * nodetree
View2D v2d DNA_DEPRECATED
char geometry_nodes_type
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
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.