Blender  V3.3
Classes | Macros | Typedefs | Enumerations
DNA_screen_types.h File Reference
#include "DNA_defs.h"
#include "DNA_listBase.h"
#include "DNA_vec_types.h"
#include "DNA_view2d_types.h"
#include "DNA_ID.h"

Go to the source code of this file.

Classes

struct  bScreen
 
struct  ScrVert
 
struct  ScrEdge
 
struct  ScrAreaMap
 
struct  Panel_Runtime
 
struct  Panel
 
struct  PanelCategoryDyn
 
struct  PanelCategoryStack
 
struct  uiListDyn
 
struct  uiList
 
struct  TransformOrientation
 
struct  uiPreview
 
struct  ScrGlobalAreaData
 
struct  ScrArea_Runtime
 
struct  ScrArea
 
struct  ARegion_Runtime
 
struct  ARegion
 

Macros

#define AREAMAP_FROM_SCREEN(screen)   ((ScrAreaMap *)&(screen)->vertbase)
 
#define AREAGRID   4
 
#define AREAMINX   32
 
#define HEADER_PADDING_Y   6
 
#define HEADERY   (20 + HEADER_PADDING_Y)
 
#define PNL_CATEGORY_FALLBACK   "Misc"
 
#define UI_LIST_AUTO_SIZE_THRESHOLD   1
 
#define UILST_FLT_SORT_MASK   (((unsigned int)(UILST_FLT_SORT_REVERSE | UILST_FLT_SORT_LOCK)) - 1)
 
#define RGN_TYPE_NUM   (RGN_TYPE_XR + 1)
 
#define RGN_TYPE_ANY   -1
 
#define RGN_TYPE_HAS_CATEGORY_MASK   (1 << RGN_TYPE_UI)
 
#define RGN_TYPE_IS_HEADER_ANY(regiontype)
 
#define RGN_ALIGN_ENUM_FROM_MASK(align)   ((align) & ((1 << 4) - 1))
 
#define RGN_ALIGN_FLAG_FROM_MASK(align)   ((align) & ~((1 << 4) - 1))
 

Typedefs

typedef struct bScreen bScreen
 
typedef struct ScrVert ScrVert
 
typedef struct ScrEdge ScrEdge
 
typedef struct ScrAreaMap ScrAreaMap
 
typedef struct Panel_Runtime Panel_Runtime
 
typedef struct Panel Panel
 
typedef enum uiPanelDataExpansion uiPanelDataExpansion
 
typedef struct PanelCategoryDyn PanelCategoryDyn
 
typedef struct PanelCategoryStack PanelCategoryStack
 
typedef void(* uiListFreeRuntimeDataFunc) (struct uiList *ui_list)
 
typedef struct uiListDyn uiListDyn
 
typedef struct uiList uiList
 
typedef struct TransformOrientation TransformOrientation
 
typedef struct uiPreview uiPreview
 
typedef struct ScrGlobalAreaData ScrGlobalAreaData
 
typedef enum GlobalAreaAlign GlobalAreaAlign
 
typedef struct ScrArea_Runtime ScrArea_Runtime
 
typedef struct ScrArea ScrArea
 
typedef struct ARegion_Runtime ARegion_Runtime
 
typedef struct ARegion ARegion
 
typedef enum eScreen_Redraws_Flag eScreen_Redraws_Flag
 
typedef enum eRegion_Type eRegion_Type
 

Enumerations

enum  uiPanelDataExpansion {
  UI_PANEL_DATA_EXPAND_ROOT = (1 << 0) , UI_SUBPANEL_DATA_EXPAND_1 = (1 << 1) , UI_SUBPANEL_DATA_EXPAND_2 = (1 << 2) , UI_SUBPANEL_DATA_EXPAND_3 = (1 << 3) ,
  UI_SUBPANEL_DATA_EXPAND_4 = (1 << 4) , UI_SUBPANEL_DATA_EXPAND_5 = (1 << 5) , UI_SUBPANEL_DATA_EXPAND_6 = (1 << 6) , UI_SUBPANEL_DATA_EXPAND_7 = (1 << 7) ,
  UI_SUBPANEL_DATA_EXPAND_8 = (1 << 8) , UI_SUBPANEL_DATA_EXPAND_9 = (1 << 9) , UI_SUBPANEL_DATA_EXPAND_10 = (1 << 10) , UI_SUBPANEL_DATA_EXPAND_11 = (1 << 11) ,
  UI_SUBPANEL_DATA_EXPAND_12 = (1 << 12) , UI_SUBPANEL_DATA_EXPAND_13 = (1 << 13) , UI_SUBPANEL_DATA_EXPAND_14 = (1 << 14) , UI_SUBPANEL_DATA_EXPAND_15 = (1 << 15) ,
  UI_SUBPANEL_DATA_EXPAND_16 = (1 << 16)
}
 
enum  GlobalAreaFlag { GLOBAL_AREA_IS_HIDDEN = (1 << 0) }
 
enum  GlobalAreaAlign { GLOBAL_AREA_ALIGN_TOP = 0 , GLOBAL_AREA_ALIGN_BOTTOM = 1 }
 
enum  {
  HEADER_NO_PULLDOWN = (1 << 0) , AREA_FLAG_REGION_SIZE_UPDATE = (1 << 3) , AREA_FLAG_ACTIVE_TOOL_UPDATE = (1 << 4) , AREA_FLAG_UNUSED_6 = (1 << 6) ,
  AREA_FLAG_STACKED_FULLSCREEN = (1 << 7) , AREA_FLAG_ACTIONZONES_UPDATE = (1 << 8) , AREA_FLAG_OFFSCREEN = (1 << 9)
}
 
enum  { SCREEN_DEPRECATED = 1 , SCREEN_COLLAPSE_STATUSBAR = 2 }
 
enum  { SCREENNORMAL = 0 , SCREENMAXIMIZED = 1 , SCREENFULL = 2 }
 
enum  eScreen_Redraws_Flag {
  TIME_REGION = (1 << 0) , TIME_ALL_3D_WIN = (1 << 1) , TIME_ALL_ANIM_WIN = (1 << 2) , TIME_ALL_BUTS_WIN = (1 << 3) ,
  TIME_SEQ = (1 << 5) , TIME_ALL_IMAGE_WIN = (1 << 6) , TIME_NODES = (1 << 8) , TIME_CLIPS = (1 << 9) ,
  TIME_FOLLOW = (1 << 15)
}
 
enum  {
  PNL_SELECT = (1 << 0) , PNL_UNUSED_1 = (1 << 1) , PNL_CLOSED = (1 << 2) , PNL_PIN = (1 << 5) ,
  PNL_POPOVER = (1 << 6) , PNL_INSTANCED_LIST_ORDER_CHANGED = (1 << 7)
}
 
enum  { UILST_LAYOUT_DEFAULT = 0 , UILST_LAYOUT_COMPACT = 1 , UILST_LAYOUT_GRID = 2 , UILST_LAYOUT_BIG_PREVIEW_GRID = 3 }
 
enum  { UILST_SCROLL_TO_ACTIVE_ITEM = 1 << 0 }
 
enum  { UILST_FLT_ITEM = 1 << 30 }
 
enum  { UILST_FLT_SHOW = 1 << 0 , UILST_FLT_EXCLUDE = UILST_FLT_ITEM }
 
enum  { UILST_FLT_SORT_ALPHA = 1 , UILST_FLT_SORT_LOCK = 1u << 30 , UILST_FLT_SORT_REVERSE = 1u << 31 }
 
enum  eRegion_Type {
  RGN_TYPE_WINDOW = 0 , RGN_TYPE_HEADER = 1 , RGN_TYPE_CHANNELS = 2 , RGN_TYPE_TEMPORARY = 3 ,
  RGN_TYPE_UI = 4 , RGN_TYPE_TOOLS = 5 , RGN_TYPE_TOOL_PROPS = 6 , RGN_TYPE_PREVIEW = 7 ,
  RGN_TYPE_HUD = 8 , RGN_TYPE_NAV_BAR = 9 , RGN_TYPE_EXECUTE = 10 , RGN_TYPE_FOOTER = 11 ,
  RGN_TYPE_TOOL_HEADER = 12 , RGN_TYPE_XR = 13
}
 
enum  {
  RGN_ALIGN_NONE = 0 , RGN_ALIGN_TOP = 1 , RGN_ALIGN_BOTTOM = 2 , RGN_ALIGN_LEFT = 3 ,
  RGN_ALIGN_RIGHT = 4 , RGN_ALIGN_HSPLIT = 5 , RGN_ALIGN_VSPLIT = 6 , RGN_ALIGN_FLOAT = 7 ,
  RGN_ALIGN_QSPLIT = 8 , RGN_SPLIT_PREV = 32
}
 
enum  {
  RGN_FLAG_HIDDEN = (1 << 0) , RGN_FLAG_TOO_SMALL = (1 << 1) , RGN_FLAG_DYNAMIC_SIZE = (1 << 2) , RGN_FLAG_TEMP_REGIONDATA = (1 << 3) ,
  RGN_FLAG_PREFSIZE_OR_HIDDEN = (1 << 4) , RGN_FLAG_SIZE_CLAMP_X = (1 << 5) , RGN_FLAG_SIZE_CLAMP_Y = (1 << 6) , RGN_FLAG_HIDDEN_BY_USER = (1 << 7) ,
  RGN_FLAG_SEARCH_FILTER_ACTIVE = (1 << 8) , RGN_FLAG_SEARCH_FILTER_UPDATE = (1 << 9)
}
 
enum  {
  RGN_DRAW = 1 , RGN_DRAW_PARTIAL = 2 , RGN_DRAW_NO_REBUILD = 4 , RGN_DRAWING = 8 ,
  RGN_REFRESH_UI = 16 , RGN_DRAW_EDITOR_OVERLAYS = 32
}
 

Macro Definition Documentation

◆ AREAGRID

#define AREAGRID   4

Definition at line 541 of file DNA_screen_types.h.

◆ AREAMAP_FROM_SCREEN

#define AREAMAP_FROM_SCREEN (   screen)    ((ScrAreaMap *)&(screen)->vertbase)

Definition at line 37 of file DNA_screen_types.h.

◆ AREAMINX

#define AREAMINX   32

Definition at line 542 of file DNA_screen_types.h.

◆ HEADER_PADDING_Y

#define HEADER_PADDING_Y   6

Definition at line 543 of file DNA_screen_types.h.

◆ HEADERY

#define HEADERY   (20 + HEADER_PADDING_Y)

Definition at line 544 of file DNA_screen_types.h.

◆ PNL_CATEGORY_FALLBACK

#define PNL_CATEGORY_FALLBACK   "Misc"

Definition at line 589 of file DNA_screen_types.h.

◆ RGN_ALIGN_ENUM_FROM_MASK

#define RGN_ALIGN_ENUM_FROM_MASK (   align)    ((align) & ((1 << 4) - 1))

Mask out flags so we can check the alignment.

Definition at line 693 of file DNA_screen_types.h.

◆ RGN_ALIGN_FLAG_FROM_MASK

#define RGN_ALIGN_FLAG_FROM_MASK (   align)    ((align) & ~((1 << 4) - 1))

Definition at line 694 of file DNA_screen_types.h.

◆ RGN_TYPE_ANY

#define RGN_TYPE_ANY   -1

Definition at line 665 of file DNA_screen_types.h.

◆ RGN_TYPE_HAS_CATEGORY_MASK

#define RGN_TYPE_HAS_CATEGORY_MASK   (1 << RGN_TYPE_UI)

Definition at line 668 of file DNA_screen_types.h.

◆ RGN_TYPE_IS_HEADER_ANY

#define RGN_TYPE_IS_HEADER_ANY (   regiontype)
Value:
(((1 << (regiontype)) & \
((1 << RGN_TYPE_HEADER) | 1 << (RGN_TYPE_TOOL_HEADER) | (1 << RGN_TYPE_FOOTER))) != 0)
@ RGN_TYPE_TOOL_HEADER
@ RGN_TYPE_FOOTER
@ RGN_TYPE_HEADER

Definition at line 671 of file DNA_screen_types.h.

◆ RGN_TYPE_NUM

#define RGN_TYPE_NUM   (RGN_TYPE_XR + 1)

Definition at line 661 of file DNA_screen_types.h.

◆ UI_LIST_AUTO_SIZE_THRESHOLD

#define UI_LIST_AUTO_SIZE_THRESHOLD   1

Definition at line 606 of file DNA_screen_types.h.

◆ UILST_FLT_SORT_MASK

#define UILST_FLT_SORT_MASK   (((unsigned int)(UILST_FLT_SORT_REVERSE | UILST_FLT_SORT_LOCK)) - 1)

Definition at line 635 of file DNA_screen_types.h.

Typedef Documentation

◆ ARegion

typedef struct ARegion ARegion

◆ ARegion_Runtime

◆ bScreen

typedef struct bScreen bScreen

◆ eRegion_Type

typedef enum eRegion_Type eRegion_Type

regiontype, first two are the default set.

Warning
Do NOT change order, append on end. Types are hard-coded needed.

◆ eScreen_Redraws_Flag

◆ GlobalAreaAlign

◆ Panel

typedef struct Panel Panel

The part from uiBlock that needs saved in file.

◆ Panel_Runtime

typedef struct Panel_Runtime Panel_Runtime

◆ PanelCategoryDyn

Notes on Panel Categories:

Clicking on a tab moves it to the front of region->panels_category_active, If the context changes so this tab is no longer displayed, then the first-most tab in ARegion.panels_category_active is used.

This way you can change modes and always have the tab you last clicked on.

◆ PanelCategoryStack

Region stack of active tabs.

◆ ScrArea

typedef struct ScrArea ScrArea

◆ ScrArea_Runtime

◆ ScrAreaMap

typedef struct ScrAreaMap ScrAreaMap

◆ ScrEdge

typedef struct ScrEdge ScrEdge

◆ ScrGlobalAreaData

◆ ScrVert

typedef struct ScrVert ScrVert

◆ TransformOrientation

◆ uiList

typedef struct uiList uiList

◆ uiListDyn

typedef struct uiListDyn uiListDyn

◆ uiListFreeRuntimeDataFunc

typedef void(* uiListFreeRuntimeDataFunc) (struct uiList *ui_list)

Definition at line 237 of file DNA_screen_types.h.

◆ uiPanelDataExpansion

Used for passing expansion between instanced panel data and the panels themselves. There are 16 defines because the expansion data is typically stored in a short.

Note
Expansion for instanced panels is stored in depth first order. For example, the value of UI_SUBPANEL_DATA_EXPAND_2 correspond to mean the expansion of the second subpanel or the first subpanel's first subpanel.

◆ uiPreview

typedef struct uiPreview uiPreview

Some preview UI data need to be saved in file.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

ScrArea.flag

Enumerator
HEADER_NO_PULLDOWN 
AREA_FLAG_REGION_SIZE_UPDATE 

Update size of regions within the area.

AREA_FLAG_ACTIVE_TOOL_UPDATE 
AREA_FLAG_UNUSED_6 
AREA_FLAG_STACKED_FULLSCREEN 

For temporary full-screens (file browser, image editor render) that are opened above user set full-screens.

AREA_FLAG_ACTIONZONES_UPDATE 

Update action zones (even if the mouse is not intersecting them).

AREA_FLAG_OFFSCREEN 

For off-screen areas.

Definition at line 516 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

bScreen.flag

Enumerator
SCREEN_DEPRECATED 
SCREEN_COLLAPSE_STATUSBAR 

Definition at line 547 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

bScreen.state

Enumerator
SCREENNORMAL 
SCREENMAXIMIZED 
SCREENFULL 

Definition at line 553 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

Panel.flag

Enumerator
PNL_SELECT 
PNL_UNUSED_1 
PNL_CLOSED 
PNL_PIN 
PNL_POPOVER 
PNL_INSTANCED_LIST_ORDER_CHANGED 

The panel has been drag-drop reordered and the instanced panel list needs to be rebuilt.

Definition at line 576 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

uiList.layout_type

Enumerator
UILST_LAYOUT_DEFAULT 
UILST_LAYOUT_COMPACT 
UILST_LAYOUT_GRID 
UILST_LAYOUT_BIG_PREVIEW_GRID 

Definition at line 592 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

uiList.flag

Enumerator
UILST_SCROLL_TO_ACTIVE_ITEM 

Definition at line 600 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum
Enumerator
UILST_FLT_ITEM 

Definition at line 611 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

uiList.filter_flag

Enumerator
UILST_FLT_SHOW 
UILST_FLT_EXCLUDE 

Definition at line 616 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

uiList.filter_sort_flag

Enumerator
UILST_FLT_SORT_ALPHA 

Just for sake of consistency.

UILST_FLT_SORT_LOCK 

Special flag to indicate that order is locked (not user-changeable).

UILST_FLT_SORT_REVERSE 

Special value, bit-flag used to reverse order!

Definition at line 622 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

ARegion.alignment

Enumerator
RGN_ALIGN_NONE 
RGN_ALIGN_TOP 
RGN_ALIGN_BOTTOM 
RGN_ALIGN_LEFT 
RGN_ALIGN_RIGHT 
RGN_ALIGN_HSPLIT 
RGN_ALIGN_VSPLIT 
RGN_ALIGN_FLOAT 
RGN_ALIGN_QSPLIT 
RGN_SPLIT_PREV 

Definition at line 676 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

ARegion.flag

Enumerator
RGN_FLAG_HIDDEN 
RGN_FLAG_TOO_SMALL 
RGN_FLAG_DYNAMIC_SIZE 

Force delayed reinit of region size data, so that region size is calculated just big enough to show all its content (if enough space is available). Note that only ED_region_header supports this right now.

RGN_FLAG_TEMP_REGIONDATA 

Region data is NULL'd on read, never written.

RGN_FLAG_PREFSIZE_OR_HIDDEN 

The region must either use its prefsizex/y or be hidden.

RGN_FLAG_SIZE_CLAMP_X 

Size has been clamped (floating regions only).

RGN_FLAG_SIZE_CLAMP_Y 
RGN_FLAG_HIDDEN_BY_USER 

When the user sets the region is hidden, needed for floating regions that may be hidden for other reasons.

RGN_FLAG_SEARCH_FILTER_ACTIVE 

Property search filter is active.

RGN_FLAG_SEARCH_FILTER_UPDATE 

Update the expansion of the region's panels and switch contexts. Only Set temporarily when the search filter is updated and cleared at the end of the region's layout pass. so that expansion is still interactive,

Definition at line 697 of file DNA_screen_types.h.

◆ anonymous enum

anonymous enum

ARegion.do_draw

Enumerator
RGN_DRAW 
RGN_DRAW_PARTIAL 
RGN_DRAW_NO_REBUILD 
RGN_DRAWING 
RGN_REFRESH_UI 
RGN_DRAW_EDITOR_OVERLAYS 

Definition at line 727 of file DNA_screen_types.h.

◆ eRegion_Type

regiontype, first two are the default set.

Warning
Do NOT change order, append on end. Types are hard-coded needed.
Enumerator
RGN_TYPE_WINDOW 
RGN_TYPE_HEADER 
RGN_TYPE_CHANNELS 
RGN_TYPE_TEMPORARY 
RGN_TYPE_UI 
RGN_TYPE_TOOLS 
RGN_TYPE_TOOL_PROPS 
RGN_TYPE_PREVIEW 
RGN_TYPE_HUD 
RGN_TYPE_NAV_BAR 
RGN_TYPE_EXECUTE 
RGN_TYPE_FOOTER 
RGN_TYPE_TOOL_HEADER 
RGN_TYPE_XR 

Definition at line 641 of file DNA_screen_types.h.

◆ eScreen_Redraws_Flag

bScreen.redraws_flag

Enumerator
TIME_REGION 
TIME_ALL_3D_WIN 
TIME_ALL_ANIM_WIN 
TIME_ALL_BUTS_WIN 
TIME_SEQ 
TIME_ALL_IMAGE_WIN 
TIME_NODES 
TIME_CLIPS 
TIME_FOLLOW 

Definition at line 560 of file DNA_screen_types.h.

◆ GlobalAreaAlign

Enumerator
GLOBAL_AREA_ALIGN_TOP 
GLOBAL_AREA_ALIGN_BOTTOM 

Definition at line 354 of file DNA_screen_types.h.

◆ GlobalAreaFlag

Enumerator
GLOBAL_AREA_IS_HIDDEN 

Definition at line 350 of file DNA_screen_types.h.

◆ uiPanelDataExpansion

Used for passing expansion between instanced panel data and the panels themselves. There are 16 defines because the expansion data is typically stored in a short.

Note
Expansion for instanced panels is stored in depth first order. For example, the value of UI_SUBPANEL_DATA_EXPAND_2 correspond to mean the expansion of the second subpanel or the first subpanel's first subpanel.
Enumerator
UI_PANEL_DATA_EXPAND_ROOT 
UI_SUBPANEL_DATA_EXPAND_1 
UI_SUBPANEL_DATA_EXPAND_2 
UI_SUBPANEL_DATA_EXPAND_3 
UI_SUBPANEL_DATA_EXPAND_4 
UI_SUBPANEL_DATA_EXPAND_5 
UI_SUBPANEL_DATA_EXPAND_6 
UI_SUBPANEL_DATA_EXPAND_7 
UI_SUBPANEL_DATA_EXPAND_8 
UI_SUBPANEL_DATA_EXPAND_9 
UI_SUBPANEL_DATA_EXPAND_10 
UI_SUBPANEL_DATA_EXPAND_11 
UI_SUBPANEL_DATA_EXPAND_12 
UI_SUBPANEL_DATA_EXPAND_13 
UI_SUBPANEL_DATA_EXPAND_14 
UI_SUBPANEL_DATA_EXPAND_15 
UI_SUBPANEL_DATA_EXPAND_16 

Definition at line 186 of file DNA_screen_types.h.