Blender V4.3
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
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 FileHandlerType;
39}
41#else
43#endif
44
45/* TODO: Doing this is quite ugly :)
46 * Once the top-bar is merged bScreen should be refactored to use ScrAreaMap. */
47#define AREAMAP_FROM_SCREEN(screen) ((ScrAreaMap *)&(screen)->vertbase)
48
49typedef struct bScreen {
51
52 /* TODO: Should become ScrAreaMap now.
53 * NOTE: KEEP ORDER IN SYNC WITH #ScrAreaMap! (see AREAMAP_FROM_SCREEN macro above). */
58 /* End variables that must be in sync with #ScrAreaMap. */
59
62
63 struct Scene *scene DNA_DEPRECATED;
64
66 short flag;
68 short winid;
71
73 char temp;
75 char state;
77 char do_draw;
90 char _pad[1];
91
94
98 void /*bContextDataCallback*/ *context;
99
102
105
106typedef struct ScrVert {
107 struct ScrVert *next, *prev, *newv;
109 /* first one used internally, second one for tools */
112
113typedef struct ScrEdge {
114 struct ScrEdge *next, *prev;
117 short border;
118 short flag;
119 char _pad[4];
121
122typedef struct ScrAreaMap {
123 /* ** NOTE: KEEP ORDER IN SYNC WITH LISTBASES IN bScreen! ** */
124
132
140
145
183
210
227/* region level tabs */
228#
229#
235
241
242typedef void (*uiListFreeRuntimeDataFunc)(struct uiList *ui_list);
243
244/* uiList dynamic data... */
245/* These two lines with # tell `makesdna` this struct can be excluded. */
246#
247#
248typedef struct uiListDyn {
251
258
261
266
267 /* Those are temp data used during drag-resize with GRIP button
268 * (they are in pixels, the meaningful data is the
269 * difference between resize_prev and resize)...
270 */
273
276
277 /* Filtering data. */
284
290
291typedef struct uiList { /* some list UI data need to be saved in file */
292 struct uiList *next, *prev;
293
296
298 char list_id[128];
299
302 int flag;
303
308
309 /* Filtering data. */
311 char filter_byname[128];
314
317
321
322typedef struct TransformOrientation {
325 char name[64];
326 float mat[3][3];
327 char _pad[4];
329
331typedef struct uiPreview {
332 struct uiPreview *next, *prev;
333
335 char preview_id[64];
336 short height;
337
338 /* Unset on file read. */
339 short tag; /* #uiPreviewTag */
340
342 unsigned int id_session_uid;
344
349
369
373
378
384
452
453typedef struct ARegion_Runtime {
455 const char *category;
456
463
464 /* The offset needed to not overlap with window scroll-bars. Only used by HUD regions for now. */
465 int offset_x, offset_y;
466
469
470 /* Dummy panel used in popups so they can support layout panels. */
473
547
549enum {
551// AREA_FLAG_UNUSED_1 = (1 << 1),
552// AREA_FLAG_UNUSED_2 = (1 << 2),
554 AREA_TEMP_INFO = (1 << 3), /* versioned to make slot reusable */
555#endif
559 // AREA_FLAG_UNUSED_5 = (1 << 5),
560
561 AREA_FLAG_UNUSED_6 = (1 << 6), /* cleared */
562
572};
573
574#define AREAGRID 4
575#define AREAMINX 29
576#define HEADER_PADDING_Y 6
577#define HEADERY (20 + HEADER_PADDING_Y)
578
580enum {
583};
584
586enum {
592};
593
596 TIME_REGION = (1 << 0),
597 TIME_ALL_3D_WIN = (1 << 1),
600 // TIME_WITH_SEQ_AUDIO = (1 << 4), /* DEPRECATED */
601 TIME_SEQ = (1 << 5),
603 // TIME_CONTINUE_PHYSICS = (1 << 7), /* UNUSED */
604 TIME_NODES = (1 << 8),
605 TIME_CLIPS = (1 << 9),
606 TIME_SPREADSHEETS = (1 << 10),
607
608 TIME_FOLLOW = (1 << 15),
610
612enum {
613 PNL_SELECT = (1 << 0),
614 PNL_UNUSED_1 = (1 << 1), /* Cleared */
615 PNL_CLOSED = (1 << 2),
616 // PNL_TABBED = (1 << 3), /* UNUSED */
617 // PNL_OVERLAP = (1 << 4), /* UNUSED */
618 PNL_PIN = (1 << 5),
619 PNL_POPOVER = (1 << 6),
622};
623
625#define PNL_CATEGORY_FALLBACK "Misc"
626
628enum {
633};
634
636enum {
639};
640
642#define UI_LIST_AUTO_SIZE_THRESHOLD 1
643
651enum {
652 /* Don't use (1 << 0) to (1 << 15) here! See warning above. */
653
654 /* Filtering returned #UI_LIST_ITEM_NEVER_SHOW. */
656 UILST_FLT_ITEM = 1 << 30, /* This item has passed the filter process successfully. */
657};
658
660enum {
661 UILST_FLT_SHOW = 1 << 0, /* Show filtering UI. */
662 UILST_FLT_EXCLUDE = UILST_FLT_ITEM, /* Exclude filtered items, *must* use this same value. */
663};
664
666enum {
667 /* Plain values (only one is valid at a time, once masked with UILST_FLT_SORT_MASK. */
669 /* UILST_FLT_SORT_INDEX = 0, */ /* UNUSED */
671
672 /* Bitflags affecting behavior of any kind of sorting. */
677};
678
679#define UILST_FLT_SORT_MASK (((unsigned int)(UILST_FLT_SORT_REVERSE | UILST_FLT_SORT_LOCK)) - 1)
680
685typedef enum eRegion_Type {
695 /* Region to navigate the main region from (RGN_TYPE_WINDOW). */
697 /* A place for buttons to trigger execution of something that was set up in other regions. */
701 /* Region type used exclusively by internal code and add-ons to register draw callbacks to the XR
702 * context (surface, mirror view). Does not represent any real region. */
706
707#define RGN_TYPE_NUM (RGN_TYPE_ASSET_SHELF_HEADER + 1)
709
711#define RGN_TYPE_ANY -1
712
714#define RGN_TYPE_HAS_CATEGORY_MASK (1 << RGN_TYPE_UI)
715
717#define RGN_TYPE_IS_HEADER_ANY(regiontype) \
718 (((1 << (regiontype)) & ((1 << RGN_TYPE_HEADER) | 1 << (RGN_TYPE_TOOL_HEADER) | \
719 (1 << RGN_TYPE_FOOTER) | (1 << RGN_TYPE_ASSET_SHELF_HEADER))) != 0)
720
722enum {
732 /* Maximum 15. */
733
734 /* Flags start here. */
745};
746
748#define RGN_ALIGN_ENUM_FROM_MASK(align) ((align) & ((1 << 4) - 1))
749#define RGN_ALIGN_FLAG_FROM_MASK(align) ((align) & ~((1 << 4) - 1))
750
752enum {
753 RGN_FLAG_HIDDEN = (1 << 0),
780};
781
783enum {
797
802
805};
806
807typedef struct AssetShelfSettings {
808 struct AssetShelfSettings *next, *prev;
809
811
812 ListBase enabled_catalog_paths; /* #AssetCatalogPathLink */
815
817 char search_string[64];
818
820 short display_flag; /* #AssetShelfSettings_DisplayFlag */
821 char _pad1[4];
822
823#ifdef __cplusplus
824 /* Zero initializes. */
826 /* Proper deep copy. */
830#endif
832
833typedef struct AssetShelf {
835
836 struct AssetShelf *next, *prev;
837
840 char idname[64]; /* MAX_NAME */
842 struct AssetShelfType *type;
843
845
847 short preferred_row_count;
848 short instance_flag;
849 char _pad[4];
851
859typedef struct RegionAssetShelf {
867 AssetShelf *active_shelf; /* Non-owning. */
868#ifdef __cplusplus
869 static RegionAssetShelf *get_from_asset_shelf_region(const ARegion &region);
871 static RegionAssetShelf *ensure_from_asset_shelf_region(ARegion &region);
872#endif
874
875/* #AssetShelfSettings.display_flag */
880
881/* #AssetShelfSettings.instance_flag */
891
#define ENUM_OPERATORS(_type, _max)
ID and Library types, which are fundamental for SDNA.
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.
struct TransformOrientation TransformOrientation
struct ScrAreaMap ScrAreaMap
LayoutPanelStateFlag
@ LAYOUT_PANEL_STATE_FLAG_OPEN
@ UILST_FLT_ITEM
@ UILST_FLT_ITEM_NEVER_SHOW
@ UILST_SCROLL_TO_ACTIVE_ITEM
@ SCREENFULL
@ SCREENMAXIMIZED
@ SCREENNORMAL
@ UILST_LAYOUT_COMPACT
@ UILST_LAYOUT_DEFAULT
@ UILST_LAYOUT_BIG_PREVIEW_GRID
@ UILST_LAYOUT_GRID
@ UILST_FLT_SORT_LOCK
@ UILST_FLT_SORT_ALPHA
@ UILST_FLT_SORT_REVERSE
struct PanelCategoryDyn PanelCategoryDyn
struct PanelCategoryStack PanelCategoryStack
@ 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
@ 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
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_FLT_EXCLUDE
@ UILST_FLT_SHOW
struct uiListDyn uiListDyn
struct uiPreview uiPreview
GlobalAreaFlag
@ GLOBAL_AREA_IS_HIDDEN
AssetShelfSettings_DisplayFlag
@ ASSETSHELF_SHOW_NAMES
struct uiList uiList
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
@ RGN_DRAW_NO_REBUILD
@ RGN_DRAW_PARTIAL
@ RGN_DRAWING
@ RGN_DRAW
@ RGN_REFRESH_UI
@ RGN_DRAW_EDITOR_OVERLAYS
struct FileHandlerTypeHandle FileHandlerTypeHandle
@ SCREEN_COLLAPSE_STATUSBAR
@ SCREEN_DEPRECATED
struct bScreen bScreen
void(* uiListFreeRuntimeDataFunc)(struct uiList *ui_list)
@ 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
struct RegionAssetShelf RegionAssetShelf
AssetShelf_InstanceFlag
@ ASSETSHELF_REGION_IS_HIDDEN
struct LayoutPanelState LayoutPanelState
struct ScrVert ScrVert
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
struct ScrEdge ScrEdge
GlobalAreaAlign
@ GLOBAL_AREA_ALIGN_BOTTOM
@ GLOBAL_AREA_ALIGN_TOP
struct AssetShelfSettings AssetShelfSettings
struct ARegion_Runtime ARegion_Runtime
struct Panel Panel
struct ScrGlobalAreaData ScrGlobalAreaData
@ PNL_SELECT
@ PNL_PIN
@ PNL_UNUSED_1
@ PNL_CLOSED
@ PNL_POPOVER
@ PNL_INSTANCED_LIST_ORDER_CHANGED
struct ScrArea_Runtime ScrArea_Runtime
struct ARegion ARegion
#define DNA_DEPRECATED_ALLOW
btGeneric6DofConstraint & operator=(btGeneric6DofConstraint &other)
static ulong * next
unsigned char uint8_t
Definition stdint.h:78
const char * category
struct GHash * block_name_map
short do_draw_paintcursor
struct wmTimer * regiontimer
ARegion_Runtime runtime
void * regiondata
ListBase panels_category_active
ListBase ui_previews
short flagfullscreen
char * headerstr
struct ARegion * next
ListBase panels_category
ListBase panels
ListBase ui_lists
ListBase handlers
struct wmDrawBuffer * draw_buffer
struct wmGizmoMap * gizmo_map
struct ARegionType * type
ListBase uiblocks
AssetLibraryReference asset_library_reference
struct AssetShelfSettings * next
const char * active_catalog_path
Definition DNA_ID.h:413
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
struct Panel_Runtime * runtime
struct uiLayout * layout
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
ScrArea_Runtime runtime
ScrVert * v1
struct ScrArea * next
ListBase regionbase
ScrVert * v4
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
void * context
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