Blender V5.0
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
108 /* Used to restore after SCREENFULL state. */
110 char _pad2[6];
111
114
117
118typedef struct ScrVert {
119 struct ScrVert *next, *prev, *newv;
121 /* first one used internally, second one for tools */
124
125typedef struct ScrEdge {
126 struct ScrEdge *next, *prev;
129 short border;
130 short flag;
131 char _pad[4];
133
134typedef struct ScrAreaMap {
135 /* ** NOTE: KEEP ORDER IN SYNC WITH LISTBASES IN bScreen! ** */
136
144
145typedef struct LayoutPanelState {
148 char *idname;
149 uint8_t flag;
150 char _pad[3];
155 uint32_t last_used;
157
162
207
234
250
251/* region level tabs */
252#
253#
259
265
266typedef void (*uiListFreeRuntimeDataFunc)(struct uiList *ui_list);
267
268/* uiList dynamic data... */
269/* These two lines with # tell `makesdna` this struct can be excluded. */
270#
271#
272typedef struct uiListDyn {
275
282
285
290
291 /* Those are temp data used during drag-resize with GRIP button
292 * (they are in pixels, the meaningful data is the
293 * difference between resize_prev and resize)...
294 */
297
300
301 /* Filtering data. */
308
311
312typedef struct uiList { /* some list UI data need to be saved in file */
313 struct uiList *next, *prev;
314
317
318 char list_id[/*UI_MAX_NAME_STR*/ 256];
319
322 int flag;
323
328
329 /* Filtering data. */
331 char filter_byname[/*UI_MAX_NAME_STR*/ 256];
334
337
341
345
347typedef struct uiViewState {
359 uint16_t flag; /* #uiViewStateFlag */
360 char _pad[6];
361
362 char search_string[/*UI_MAX_NAME_STR*/ 256];
364
372typedef struct uiViewStateLink {
374
375 char idname[/*BKE_ST_MAXNAME*/ 64];
376
379
380typedef struct TransformOrientation {
382 char name[/*MAX_NAME*/ 64];
383 float mat[3][3];
384 char _pad[4];
386
388typedef struct uiPreview {
389 struct uiPreview *next, *prev;
390
391 char preview_id[/*BKE_ST_MAXNAME*/ 64];
392 short height;
393
394 /* Unset on file read. */
395 short tag; /* #uiPreviewTag */
396
398 unsigned int id_session_uid;
400
405
425
429
434
440
508
563
565enum {
567// AREA_FLAG_UNUSED_1 = (1 << 1),
568// AREA_FLAG_UNUSED_2 = (1 << 2),
570 AREA_TEMP_INFO = (1 << 3), /* versioned to make slot reusable */
571#endif
575 // AREA_FLAG_UNUSED_5 = (1 << 5),
576
577 AREA_FLAG_UNUSED_6 = (1 << 6), /* cleared */
578
588};
589
590#define AREAGRID 1
591#define AREAMINX 29
592#define HEADER_PADDING_Y 6
593#define HEADERY (20 + HEADER_PADDING_Y)
594
596enum {
599};
600
602enum {
613};
614
621
624 TIME_REGION = (1 << 0),
625 TIME_ALL_3D_WIN = (1 << 1),
628 // TIME_WITH_SEQ_AUDIO = (1 << 4), /* DEPRECATED */
629 TIME_SEQ = (1 << 5),
631 // TIME_CONTINUE_PHYSICS = (1 << 7), /* UNUSED */
632 TIME_NODES = (1 << 8),
633 TIME_CLIPS = (1 << 9),
634 TIME_SPREADSHEETS = (1 << 10),
635
636 TIME_FOLLOW = (1 << 15),
638
640enum {
641 PNL_SELECT = (1 << 0),
642 PNL_UNUSED_1 = (1 << 1), /* Cleared */
643 PNL_CLOSED = (1 << 2),
644 // PNL_TABBED = (1 << 3), /* UNUSED */
645 // PNL_OVERLAP = (1 << 4), /* UNUSED */
646 PNL_PIN = (1 << 5),
647 PNL_POPOVER = (1 << 6),
650};
651
653#define PNL_CATEGORY_FALLBACK "Misc"
654
656enum {
660};
661
663enum {
666};
667
669#define UI_LIST_AUTO_SIZE_THRESHOLD 1
670
678enum {
679 /* Don't use (1 << 0) to (1 << 15) here! See warning above. */
680
681 /* Filtering returned #UI_LIST_ITEM_NEVER_SHOW. */
683 UILST_FLT_ITEM = 1 << 30, /* This item has passed the filter process successfully. */
684};
685
687enum {
688 UILST_FLT_SHOW = 1 << 0, /* Show filtering UI. */
689 UILST_FLT_EXCLUDE = UILST_FLT_ITEM, /* Exclude filtered items, *must* use this same value. */
690};
691
693enum {
694 /* Plain values (only one is valid at a time, once masked with UILST_FLT_SORT_MASK. */
696 /* UILST_FLT_SORT_INDEX = 0, */ /* UNUSED */
698
699 /* Bitflags affecting behavior of any kind of sorting. */
704};
705
706#define UILST_FLT_SORT_MASK (((unsigned int)(UILST_FLT_SORT_REVERSE | UILST_FLT_SORT_LOCK)) - 1)
707
712typedef enum eRegion_Type {
722 /* Region to navigate the main region from (RGN_TYPE_WINDOW). */
724 /* A place for buttons to trigger execution of something that was set up in other regions. */
728 /* Region type used exclusively by internal code and add-ons to register draw callbacks to the XR
729 * context (surface, mirror view). Does not represent any real region. */
733
734#define RGN_TYPE_NUM (RGN_TYPE_ASSET_SHELF_HEADER + 1)
736
738#define RGN_TYPE_ANY -1
739
741#define RGN_TYPE_HAS_CATEGORY_MASK (1 << RGN_TYPE_UI)
742
744#define RGN_TYPE_IS_HEADER_ANY(regiontype) \
745 (((1 << (regiontype)) & ((1 << RGN_TYPE_HEADER) | 1 << (RGN_TYPE_TOOL_HEADER) | \
746 (1 << RGN_TYPE_FOOTER) | (1 << RGN_TYPE_ASSET_SHELF_HEADER))) != 0)
747
749enum {
759 /* Maximum 15. */
760
761 /* Flags start here. */
772};
773
775#define RGN_ALIGN_ENUM_FROM_MASK(align) ((align) & ((1 << 4) - 1))
776#define RGN_ALIGN_FLAG_FROM_MASK(align) ((align) & ~((1 << 4) - 1))
777
779enum {
780 RGN_FLAG_HIDDEN = (1 << 0),
808};
809
811enum {
825
830
833};
834
835typedef struct AssetShelfSettings {
837
838 ListBase enabled_catalog_paths; /* #AssetCatalogPathLink */
841
844
846 short display_flag; /* #AssetShelfSettings_DisplayFlag */
847 char _pad1[4];
848
849#ifdef __cplusplus
850 /* Zero initializes. */
852 /* Proper deep copy. */
856#endif
858
877
893 AssetShelf *active_shelf; /* Non-owning. */
894#ifdef __cplusplus
895 static RegionAssetShelf *get_from_asset_shelf_region(const ARegion &region);
897 static RegionAssetShelf *ensure_from_asset_shelf_region(ARegion &region);
898#endif
900
901/* #AssetShelfSettings.display_flag */
906
907/* #AssetShelfSettings.instance_flag */
917
#define ENUM_OPERATORS(_type, _max)
ID and Library types, which are fundamental for SDNA.
ID_Type
@ ID_SCR
#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.
LayoutPanelStateFlag
@ LAYOUT_PANEL_STATE_FLAG_OPEN
@ 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
@ PNL_SELECT
@ PNL_PIN
@ PNL_UNUSED_1
@ PNL_CLOSED
@ PNL_POPOVER
@ PNL_INSTANCED_LIST_ORDER_CHANGED
@ UILST_FLT_EXCLUDE
@ UILST_FLT_SHOW
@ UILST_FLT_ITEM
@ UILST_FLT_ITEM_NEVER_SHOW
@ UILST_LAYOUT_COMPACT
@ UILST_LAYOUT_DEFAULT
@ UILST_LAYOUT_BIG_PREVIEW_GRID
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
@ RGN_DRAW_NO_REBUILD
@ RGN_DRAW_PARTIAL
@ RGN_DRAWING
@ RGN_DRAW
@ RGN_REFRESH_UI
@ RGN_DRAW_EDITOR_OVERLAYS
@ UILST_SCROLL_TO_ACTIVE_ITEM
GlobalAreaFlag
@ GLOBAL_AREA_IS_HIDDEN
@ 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
AssetShelfSettings_DisplayFlag
@ ASSETSHELF_SHOW_NAMES
@ SCREENFULL
@ SCREENMAXIMIZED
@ SCREENNORMAL
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
@ SCREEN_COLLAPSE_STATUSBAR
@ SCREEN_DEPRECATED
struct FileHandlerTypeHandle FileHandlerTypeHandle
uiViewStateFlag
@ UI_VIEW_SHOW_FILTER_OPTIONS
struct ARegionRuntimeHandle ARegionRuntimeHandle
@ 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_INDICATE_OVERFLOW
@ RGN_FLAG_POLL_FAILED
@ RGN_FLAG_TOO_SMALL
@ RGN_FLAG_TEMP_REGIONDATA
@ RGN_FLAG_SEARCH_FILTER_ACTIVE
@ RGN_FLAG_HIDDEN_BY_USER
void(* uiListFreeRuntimeDataFunc)(struct uiList *ui_list)
struct RegionAssetShelf RegionAssetShelf
eScreen_Fullscreen_Flag
@ FULLSCREEN_RESTORE_STATS
@ FULLSCREEN_RESTORE_GIZMO_NAVIGATE
@ FULLSCREEN_RESTORE_TEXT
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
@ UILST_FLT_SORT_LOCK
@ UILST_FLT_SORT_ALPHA
@ UILST_FLT_SORT_REVERSE
GlobalAreaAlign
@ GLOBAL_AREA_ALIGN_BOTTOM
@ GLOBAL_AREA_ALIGN_TOP
struct AssetShelfSettings AssetShelfSettings
struct ARegion ARegion
btGeneric6DofConstraint & operator=(btGeneric6DofConstraint &other)
#define typedef
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:414
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 _pad2[6]
char do_draw_paintcursor
struct wmTimer * animtimer
short fullscreen_flag
char do_draw_gesture
ListBase areabase
struct ARegion * active_region
uiListFreeRuntimeDataFunc free_runtime_data_fn
int * items_filter_neworder
struct wmOperatorType * custom_drag_optype
int * items_filter_flags
IDProperty * properties
int filter_sort_flag
uiListDyn * dyn_data
int list_last_activei
struct uiList * next
struct uiListType * type
struct uiList * prev
char list_id[256]
char filter_byname[256]
char preview_id[64]
struct uiPreview * next
struct uiPreview * prev
unsigned int id_session_uid
char search_string[256]
#define DNA_DEPRECATED_ALLOW
Definition versioning.cc:11