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 */
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 {
47class AssetRepresentation;
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/* -------------------------------------------------------------------- */
113
116/* -------------------------------------------------------------------- */
121typedef struct SpaceInfo {
127 char _pad0[6];
128 /* End 'SpaceLink' header. */
129
131 char _pad[7];
133
136/* -------------------------------------------------------------------- */
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
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
182/* -------------------------------------------------------------------- */
229
232/* -------------------------------------------------------------------- */
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
281/* -------------------------------------------------------------------- */
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
307/* -------------------------------------------------------------------- */
315
320
321typedef struct SequencerCacheOverlay {
322 int flag;
323 char _pad0[4];
325
327typedef struct SpaceSeq {
333 char _pad0[6];
334 /* End 'SpaceLink' header. */
335
338
342 short mainb;
346 short zebra;
347 int flag;
349 float zoom DNA_DEPRECATED;
351 char view;
356 char _pad[4];
357
359 float cursor[2];
360
362 struct bGPdata *gpd;
363
364 struct SequencerPreviewOverlay preview_overlay;
365 struct SequencerTimelineOverlay timeline_overlay;
366 struct SequencerCacheOverlay cache_overlay;
367
370 char _pad2[7];
371
374
375typedef struct MaskSpaceInfo {
376 /* **** mask editing **** */
377 struct Mask *mask;
378 /* draw options */
382 char _pad3[1];
385
388/* -------------------------------------------------------------------- */
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
418 char filter_search[64];
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
547 short recentnr, bookmarknr;
548 short systemnr, system_bookmarknr;
549
552
553/* ***** Related to file browser, but never saved in DNA, only here to help with RNA. ***** */
554
555#
556#
557typedef struct FileDirEntry {
558 struct FileDirEntry *next, *prev;
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#
609typedef struct FileDirEntryArr {
613
614 char root[/*FILE_MAX*/ 1024];
616
619/* -------------------------------------------------------------------- */
623/* Image/UV Editor */
624
629
630typedef struct SpaceImage {
636 char _pad0[6];
637 /* End 'SpaceLink' header. */
638
639 struct Image *image;
640 struct ImageUser iuser;
641
643 struct Scopes scopes;
645 struct Histogram sample_line_hist;
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
688 int tile_grid_shape[2];
693 int custom_grid_subdiv[2];
694
698
701/* -------------------------------------------------------------------- */
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
755/* -------------------------------------------------------------------- */
760typedef struct Script {
762
763 void *py_draw;
764 void *py_event;
768
769 int flags, lastspace;
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
802/* -------------------------------------------------------------------- */
806typedef struct bNodeTreePath {
807 struct bNodeTreePath *next, *prev;
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
902/* -------------------------------------------------------------------- */
907typedef struct ConsoleLine {
908 struct ConsoleLine *next, *prev;
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
954/* -------------------------------------------------------------------- */
958typedef struct SpaceUserPref {
964 char _pad0[6];
965 /* End 'SpaceLink' header. */
966
967 char _pad1[7];
970 char filter[64];
972
975/* -------------------------------------------------------------------- */
980typedef struct SpaceClip {
986 char _pad0[6];
987 /* End 'SpaceLink' header. */
988
990 char _pad1[3];
991
993 float xof, yof;
995 float xlockof, ylockof;
997 float zoom;
998
1000 struct MovieClipUser user;
1004 struct MovieClipScopes scopes;
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
1045/* -------------------------------------------------------------------- */
1049typedef struct SpaceTopBar {
1055 char _pad0[6];
1056 /* End 'SpaceLink' header. */
1058
1061/* -------------------------------------------------------------------- */
1065typedef struct SpaceStatusBar {
1071 char _pad0[6];
1072 /* End 'SpaceLink' header. */
1074
1077/* -------------------------------------------------------------------- */
1084
1085typedef struct SpreadsheetColumn {
1092
1098 char _pad0[3];
1102 float width;
1103
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. */
1232 /* eSpaceSpreadsheet_RowFilterFlag. */
1234
1235 char _pad0[2];
1236
1238 int value_int2[2];
1242 float value_float2[2];
1243 float value_float3[3];
1244 float value_color[4];
1245 char _pad1[4];
1247
enum eAnimEdit_AutoSnap DNA_DEPRECATED
#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 SpreadsheetTableID SpreadsheetTableID
struct SpaceInfo SpaceInfo
struct Script Script
struct SpaceImage SpaceImage
struct SpaceLink SpaceLink
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 SpreadsheetColumnRuntime SpreadsheetColumnRuntime
struct SpaceSpreadsheet SpaceSpreadsheet
struct SpreadsheetTable SpreadsheetTable
struct SequencerTimelineOverlay SequencerTimelineOverlay
bool operator==(const AssetWeakReference &a, const AssetWeakReference &b)
FILE * file
unsigned int uint32_t
#define typedef
#define filter
#define hash
Definition noise_c.cc:154
bool operator!=(const SpreadsheetInstanceID &a, const SpreadsheetInstanceID &b)
__int64 int64_t
Definition stdint.h:89
unsigned char uint8_t
Definition stdint.h:78
unsigned __int64 uint64_t
Definition stdint.h:90
struct ConsoleLine * next
AssetLibraryReference asset_library_ref
FileSelectParams base_params
struct FileDirEntry * next
AssetRepresentationHandle * asset
char * redirection_path
const char * name
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
void * py_browsercallback
void * py_draw
ListBase regionbase
SpaceLink * next
struct MovieClip * clip
MaskSpaceInfo mask_info
ListBase regionbase
ListBase scrollback
SpaceLink * next
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 * next
SpaceGraph_Runtime runtime
short autosnap DNA_DEPRECATED
ListBase regionbase
View2D v2d DNA_DEPRECATED
SpaceLink * next
float uv_face_opacity
SpaceImageOverlay overlay
MaskSpaceInfo mask_info
struct bGPdata * gpd
struct Image * image
ListBase regionbase
float stretch_opacity
ListBase regionbase
SpaceLink * prev
SpaceLink * next
View2D v2d DNA_DEPRECATED
struct SpaceLink * next
ListBase regionbase
short autosnap DNA_DEPRECATED
struct bDopeSheet * ads
SpaceNode_Runtime * runtime
struct ID * from
ListBase regionbase
struct bGPdata * gpd
SpaceLink * next
ListBase treepath
struct bNodeTree * edittree
struct bNodeTree * geometry_nodes_tool_tree
SpaceNodeOverlay overlay
struct bNodeTree * nodetree
View2D v2d DNA_DEPRECATED
int treetype DNA_DEPRECATED
char geometry_nodes_type
short lib_override_view_mode
View2D v2d DNA_DEPRECATED
SpaceOutliner_Runtime * runtime
struct BLI_mempool * treestore
SpaceLink * next
struct SpaceProperties_Runtime * runtime
struct Script * script
SpaceLink * next
ListBase regionbase
char overlay_frame_type
View2D v2d DNA_DEPRECATED
float zoom DNA_DEPRECATED
struct bGPdata * gpd
SpaceLink * next
ListBase regionbase
float xof DNA_DEPRECATED
short render_size
SpaceSeq_Runtime * runtime
SpreadsheetTableIDGeometry geometry_id
SpreadsheetTable ** tables
SpaceSpreadsheet_Runtime * runtime
ListBase regionbase
SpaceLink * next
SpaceText_Runtime * runtime
short margin_column
struct Text * text
SpaceLink * next
ListBase regionbase
SpaceLink * next
SpreadsheetColumnID * id
SpreadsheetColumnRuntime * runtime
struct SpreadsheetRowFilter * next
SpreadsheetInstanceID * instance_ids
SpreadsheetColumn ** columns
SpreadsheetTableID * id
struct bNodeTree * nodetree
struct bNodeTreePath * next
bNodeInstanceKey parent_key
Universally Unique Identifier according to RFC4122.