Blender V4.5
DNA_screen_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 */
4
8
9#pragma once
10
11#include "BLI_utildefines.h"
12
13#include "DNA_asset_types.h"
14#include "DNA_defs.h"
15#include "DNA_listBase.h"
16#include "DNA_vec_types.h"
17#include "DNA_view2d_types.h"
18
19#include "DNA_ID.h"
20
21struct ARegion;
22struct ARegionType;
23struct PanelType;
24struct PointerRNA;
25struct Scene;
26struct SpaceLink;
27struct SpaceType;
28struct uiBlock;
29struct uiLayout;
30struct uiList;
31struct uiListType;
32struct wmDrawBuffer;
33struct wmTimer;
34struct wmTooltipState;
35struct Panel_Runtime;
36#ifdef __cplusplus
37namespace blender::bke {
38struct ARegionRuntime;
39struct FileHandlerType;
40} // namespace blender::bke
43#else
46#endif
47
48/* TODO: Doing this is quite ugly :)
49 * Once the top-bar is merged bScreen should be refactored to use ScrAreaMap. */
50#define AREAMAP_FROM_SCREEN(screen) ((ScrAreaMap *)&(screen)->vertbase)
51
52typedef struct bScreen {
53#ifdef __cplusplus
55 static constexpr ID_Type id_type = ID_SCR;
56#endif
57
59
60 /* TODO: Should become ScrAreaMap now.
61 * NOTE: KEEP ORDER IN SYNC WITH #ScrAreaMap! (see AREAMAP_FROM_SCREEN macro above). */
66 /* End variables that must be in sync with #ScrAreaMap. */
67
70
71 struct Scene *scene DNA_DEPRECATED;
72
74 short flag;
76 short winid;
79
81 char temp;
83 char state;
85 char do_draw;
98 char _pad[1];
99
102
106 void /*bContextDataCallback*/ *context;
107
110
113
114typedef struct ScrVert {
115 struct ScrVert *next, *prev, *newv;
117 /* first one used internally, second one for tools */
120
121typedef struct ScrEdge {
122 struct ScrEdge *next, *prev;
125 short border;
126 short flag;
127 char _pad[4];
129
130typedef struct ScrAreaMap {
131 /* ** NOTE: KEEP ORDER IN SYNC WITH LISTBASES IN bScreen! ** */
132
140
141typedef struct LayoutPanelState {
144 char *idname;
145 uint8_t flag;
146 char _pad[3];
151 uint32_t last_used;
153
158
203
230
246
247/* region level tabs */
248#
249#
255
261
262typedef void (*uiListFreeRuntimeDataFunc)(struct uiList *ui_list);
263
264/* uiList dynamic data... */
265/* These two lines with # tell `makesdna` this struct can be excluded. */
266#
267#
268typedef struct uiListDyn {
271
278
281
286
287 /* Those are temp data used during drag-resize with GRIP button
288 * (they are in pixels, the meaningful data is the
289 * difference between resize_prev and resize)...
290 */
293
296
297 /* Filtering data. */
304
310
311typedef struct uiList { /* some list UI data need to be saved in file */
312 struct uiList *next, *prev;
313
316
317 char list_id[/*UI_MAX_NAME_STR*/ 128];
318
321 int flag;
322
327
328 /* Filtering data. */
330 char filter_byname[/*UI_MAX_NAME_STR*/ 128];
333
336
340
355
363typedef struct uiViewStateLink {
365
366 char idname[/*BKE_ST_MAXNAME*/ 64];
367
370
371typedef struct TransformOrientation {
373 char name[/*MAX_NAME*/ 64];
374 float mat[3][3];
375 char _pad[4];
377
379typedef struct uiPreview {
380 struct uiPreview *next, *prev;
381
382 char preview_id[/*BKE_ST_MAXNAME*/ 64];
383 short height;
384
385 /* Unset on file read. */
386 short tag; /* #uiPreviewTag */
387
389 unsigned int id_session_uid;
391
396
416
420
425
431
499
554
556enum {
558// AREA_FLAG_UNUSED_1 = (1 << 1),
559// AREA_FLAG_UNUSED_2 = (1 << 2),
561 AREA_TEMP_INFO = (1 << 3), /* versioned to make slot reusable */
562#endif
566 // AREA_FLAG_UNUSED_5 = (1 << 5),
567
568 AREA_FLAG_UNUSED_6 = (1 << 6), /* cleared */
569
579};
580
581#define AREAGRID 1
582#define AREAMINX 29
583#define HEADER_PADDING_Y 6
584#define HEADERY (20 + HEADER_PADDING_Y)
585
587enum {
590};
591
593enum {
599};
600
603 TIME_REGION = (1 << 0),
604 TIME_ALL_3D_WIN = (1 << 1),
607 // TIME_WITH_SEQ_AUDIO = (1 << 4), /* DEPRECATED */
608 TIME_SEQ = (1 << 5),
610 // TIME_CONTINUE_PHYSICS = (1 << 7), /* UNUSED */
611 TIME_NODES = (1 << 8),
612 TIME_CLIPS = (1 << 9),
613 TIME_SPREADSHEETS = (1 << 10),
614
615 TIME_FOLLOW = (1 << 15),
617
619enum {
620 PNL_SELECT = (1 << 0),
621 PNL_UNUSED_1 = (1 << 1), /* Cleared */
622 PNL_CLOSED = (1 << 2),
623 // PNL_TABBED = (1 << 3), /* UNUSED */
624 // PNL_OVERLAP = (1 << 4), /* UNUSED */
625 PNL_PIN = (1 << 5),
626 PNL_POPOVER = (1 << 6),
629};
630
632#define PNL_CATEGORY_FALLBACK "Misc"
633
635enum {
640};
641
643enum {
646};
647
649#define UI_LIST_AUTO_SIZE_THRESHOLD 1
650
658enum {
659 /* Don't use (1 << 0) to (1 << 15) here! See warning above. */
660
661 /* Filtering returned #UI_LIST_ITEM_NEVER_SHOW. */
663 UILST_FLT_ITEM = 1 << 30, /* This item has passed the filter process successfully. */
664};
665
667enum {
668 UILST_FLT_SHOW = 1 << 0, /* Show filtering UI. */
669 UILST_FLT_EXCLUDE = UILST_FLT_ITEM, /* Exclude filtered items, *must* use this same value. */
670};
671
673enum {
674 /* Plain values (only one is valid at a time, once masked with UILST_FLT_SORT_MASK. */
676 /* UILST_FLT_SORT_INDEX = 0, */ /* UNUSED */
678
679 /* Bitflags affecting behavior of any kind of sorting. */
684};
685
686#define UILST_FLT_SORT_MASK (((unsigned int)(UILST_FLT_SORT_REVERSE | UILST_FLT_SORT_LOCK)) - 1)
687
692typedef enum eRegion_Type {
702 /* Region to navigate the main region from (RGN_TYPE_WINDOW). */
704 /* A place for buttons to trigger execution of something that was set up in other regions. */
708 /* Region type used exclusively by internal code and add-ons to register draw callbacks to the XR
709 * context (surface, mirror view). Does not represent any real region. */
713
714#define RGN_TYPE_NUM (RGN_TYPE_ASSET_SHELF_HEADER + 1)
716
718#define RGN_TYPE_ANY -1
719
721#define RGN_TYPE_HAS_CATEGORY_MASK (1 << RGN_TYPE_UI)
722
724#define RGN_TYPE_IS_HEADER_ANY(regiontype) \
725 (((1 << (regiontype)) & ((1 << RGN_TYPE_HEADER) | 1 << (RGN_TYPE_TOOL_HEADER) | \
726 (1 << RGN_TYPE_FOOTER) | (1 << RGN_TYPE_ASSET_SHELF_HEADER))) != 0)
727
729enum {
739 /* Maximum 15. */
740
741 /* Flags start here. */
752};
753
755#define RGN_ALIGN_ENUM_FROM_MASK(align) ((align) & ((1 << 4) - 1))
756#define RGN_ALIGN_FLAG_FROM_MASK(align) ((align) & ~((1 << 4) - 1))
757
759enum {
760 RGN_FLAG_HIDDEN = (1 << 0),
787};
788
790enum {
804
809
812};
813
814typedef struct AssetShelfSettings {
816
817 ListBase enabled_catalog_paths; /* #AssetCatalogPathLink */
820
823
825 short display_flag; /* #AssetShelfSettings_DisplayFlag */
826 char _pad1[4];
827
828#ifdef __cplusplus
829 /* Zero initializes. */
831 /* Proper deep copy. */
835#endif
837
856
872 AssetShelf *active_shelf; /* Non-owning. */
873#ifdef __cplusplus
874 static RegionAssetShelf *get_from_asset_shelf_region(const ARegion &region);
876 static RegionAssetShelf *ensure_from_asset_shelf_region(ARegion &region);
877#endif
879
880/* #AssetShelfSettings.display_flag */
885
886/* #AssetShelfSettings.instance_flag */
896
#define ENUM_OPERATORS(_type, _max)
ID and Library types, which are fundamental for SDNA.
ID_Type
@ ID_SCR
These structs are the foundation for all linked lists in the library system.
LayoutPanelStateFlag
@ LAYOUT_PANEL_STATE_FLAG_OPEN
@ UILST_SCROLL_TO_ACTIVE_ITEM
@ UILST_FLT_EXCLUDE
@ UILST_FLT_SHOW
@ UILST_FLT_SORT_LOCK
@ UILST_FLT_SORT_ALPHA
@ UILST_FLT_SORT_REVERSE
@ PNL_SELECT
@ PNL_PIN
@ PNL_UNUSED_1
@ PNL_CLOSED
@ PNL_POPOVER
@ PNL_INSTANCED_LIST_ORDER_CHANGED
@ SCREENFULL
@ SCREENMAXIMIZED
@ SCREENNORMAL
uiPanelDataExpansion
@ UI_SUBPANEL_DATA_EXPAND_14
@ UI_SUBPANEL_DATA_EXPAND_7
@ UI_SUBPANEL_DATA_EXPAND_10
@ UI_PANEL_DATA_EXPAND_ROOT
@ UI_SUBPANEL_DATA_EXPAND_8
@ UI_SUBPANEL_DATA_EXPAND_11
@ UI_SUBPANEL_DATA_EXPAND_2
@ UI_SUBPANEL_DATA_EXPAND_1
@ UI_SUBPANEL_DATA_EXPAND_9
@ UI_SUBPANEL_DATA_EXPAND_5
@ UI_SUBPANEL_DATA_EXPAND_4
@ UI_SUBPANEL_DATA_EXPAND_3
@ UI_SUBPANEL_DATA_EXPAND_12
@ UI_SUBPANEL_DATA_EXPAND_13
@ UI_SUBPANEL_DATA_EXPAND_6
@ UI_SUBPANEL_DATA_EXPAND_15
@ UILST_LAYOUT_COMPACT
@ UILST_LAYOUT_DEFAULT
@ UILST_LAYOUT_BIG_PREVIEW_GRID
@ UILST_LAYOUT_GRID
@ RGN_DRAW_NO_REBUILD
@ RGN_DRAW_PARTIAL
@ RGN_DRAWING
@ RGN_DRAW
@ RGN_REFRESH_UI
@ RGN_DRAW_EDITOR_OVERLAYS
GlobalAreaFlag
@ GLOBAL_AREA_IS_HIDDEN
AssetShelfSettings_DisplayFlag
@ ASSETSHELF_SHOW_NAMES
eRegion_Type
@ RGN_TYPE_CHANNELS
@ RGN_TYPE_TOOL_HEADER
@ RGN_TYPE_EXECUTE
@ RGN_TYPE_UI
@ RGN_TYPE_TEMPORARY
@ RGN_TYPE_ASSET_SHELF_HEADER
@ RGN_TYPE_WINDOW
@ RGN_TYPE_ASSET_SHELF
@ RGN_TYPE_HUD
@ RGN_TYPE_PREVIEW
@ RGN_TYPE_NAV_BAR
@ RGN_TYPE_FOOTER
@ RGN_TYPE_HEADER
@ RGN_TYPE_XR
@ RGN_TYPE_TOOLS
@ RGN_TYPE_TOOL_PROPS
struct FileHandlerTypeHandle FileHandlerTypeHandle
struct ARegionRuntimeHandle ARegionRuntimeHandle
@ SCREEN_COLLAPSE_STATUSBAR
@ SCREEN_DEPRECATED
void(* uiListFreeRuntimeDataFunc)(struct uiList *ui_list)
struct RegionAssetShelf RegionAssetShelf
@ UILST_FLT_ITEM
@ UILST_FLT_ITEM_NEVER_SHOW
AssetShelf_InstanceFlag
@ ASSETSHELF_REGION_IS_HIDDEN
eScreen_Redraws_Flag
@ TIME_SEQ
@ TIME_ALL_IMAGE_WIN
@ TIME_ALL_BUTS_WIN
@ TIME_FOLLOW
@ TIME_REGION
@ TIME_ALL_3D_WIN
@ TIME_SPREADSHEETS
@ TIME_CLIPS
@ TIME_NODES
@ TIME_ALL_ANIM_WIN
uiPreviewTag
@ UI_PREVIEW_TAG_DIRTY
@ RGN_FLAG_SEARCH_FILTER_UPDATE
@ RGN_FLAG_DYNAMIC_SIZE
@ RGN_FLAG_SIZE_CLAMP_X
@ RGN_FLAG_RESIZE_RESPECT_BUTTON_SECTIONS
@ RGN_FLAG_HIDDEN
@ RGN_FLAG_SIZE_CLAMP_Y
@ RGN_FLAG_NO_USER_RESIZE
@ RGN_FLAG_POLL_FAILED
@ RGN_FLAG_TOO_SMALL
@ RGN_FLAG_TEMP_REGIONDATA
@ RGN_FLAG_SEARCH_FILTER_ACTIVE
@ RGN_FLAG_HIDDEN_BY_USER
@ AREA_FLAG_ACTIVE_TOOL_UPDATE
@ AREA_FLAG_OFFSCREEN
@ AREA_FLAG_REGION_SIZE_UPDATE
@ AREA_FLAG_UNUSED_6
@ AREA_FLAG_STACKED_FULLSCREEN
@ AREA_FLAG_ACTIONZONES_UPDATE
@ HEADER_NO_PULLDOWN
GlobalAreaAlign
@ GLOBAL_AREA_ALIGN_BOTTOM
@ GLOBAL_AREA_ALIGN_TOP
struct AssetShelfSettings AssetShelfSettings
@ RGN_SPLIT_SCALE_PREV
@ RGN_ALIGN_HIDE_WITH_PREV
@ RGN_ALIGN_BOTTOM
@ RGN_ALIGN_LEFT
@ RGN_ALIGN_TOP
@ RGN_ALIGN_RIGHT
@ RGN_SPLIT_PREV
@ RGN_ALIGN_HSPLIT
@ RGN_ALIGN_VSPLIT
@ RGN_ALIGN_NONE
@ RGN_ALIGN_FLOAT
@ RGN_ALIGN_QSPLIT
struct ARegion ARegion
btGeneric6DofConstraint & operator=(btGeneric6DofConstraint &other)
#define typedef
#define DNA_DEFINE_CXX_METHODS(class_name)
void * regiondata
struct ARegion * prev
ListBase panels_category_active
ListBase ui_previews
short flagfullscreen
ARegionRuntimeHandle * runtime
struct ARegion * next
ListBase panels
ListBase ui_lists
ListBase view_states
AssetLibraryReference asset_library_reference
const char * active_catalog_path
struct AssetShelf * prev
struct AssetShelf * next
struct AssetShelfType * type
AssetShelfSettings settings
short preferred_row_count
FileHandlerTypeHandle * type
Definition DNA_ID.h:404
struct LayoutPanelState * next
struct LayoutPanelState * prev
struct PanelCategoryDyn * next
struct PanelCategoryDyn * prev
struct PanelCategoryStack * prev
struct PanelCategoryStack * next
struct PanelType * type
ListBase layout_panel_states
short labelofs
char _pad2[4]
struct Panel_Runtime * runtime
struct uiLayout * layout
uint32_t layout_panel_states_clock
char _pad[6]
void * activedata
short runtime_flag
char * drawname
char panelname[64]
struct Panel * prev
struct Panel * next
ListBase children
AssetShelf * active_shelf
ListBase vertbase
ListBase edgebase
ListBase areabase
struct bToolRef * tool
ListBase handlers
ScrVert * v2
ListBase actionzones
ScrVert * v3
ListBase spacedata
short butspacetype_subtype
short region_active_win
struct SpaceType * type
bScreen * full
ScrArea_Runtime runtime
ScrVert * v1
struct ScrArea * next
ListBase regionbase
ScrGlobalAreaData * global
ScrVert * v4
char headertype DNA_DEPRECATED
struct ScrArea * prev
ScrVert * v1
struct ScrEdge * next
struct ScrEdge * prev
ScrVert * v2
struct ScrVert * prev
struct ScrVert * next
struct ScrVert * newv
struct TransformOrientation * next
struct TransformOrientation * prev
char do_draw_drag
struct Scene *scene DNA_DEPRECATED
ListBase edgebase
short redraws_flag
char _pad[1]
PreviewImage * preview
ListBase regionbase
char skip_handling
struct wmTooltipState * tool_tip
ListBase vertbase
char do_draw_paintcursor
struct wmTimer * animtimer
char do_draw_gesture
ListBase areabase
struct ARegion * active_region
struct wmOperatorType * custom_activate_optype
struct PointerRNA * custom_drag_opptr
uiListFreeRuntimeDataFunc free_runtime_data_fn
int * items_filter_neworder
struct wmOperatorType * custom_drag_optype
int * items_filter_flags
struct PointerRNA * custom_activate_opptr
char filter_byname[128]
IDProperty * properties
int filter_sort_flag
char list_id[128]
uiListDyn * dyn_data
int list_last_activei
struct uiList * next
struct uiListType * type
struct uiList * prev
char preview_id[64]
struct uiPreview * next
struct uiPreview * prev
unsigned int id_session_uid
#define DNA_DEPRECATED_ALLOW
Definition versioning.cc:11