Go to the source code of this file.
Use API in BKE_workspace.hh to edit these.
Definition in file DNA_workspace_types.h.
◆ bToolRef
| typedef struct bToolRef bToolRef |
◆ bToolRef_Runtime
| typedef struct bToolRef_Runtime bToolRef_Runtime |
◆ eWorkSpaceFlags
◆ wmOwnerID
| typedef struct wmOwnerID wmOwnerID |
Optional tags, which features to use, aligned with bAddon names by convention.
◆ WorkSpace
| typedef struct WorkSpace WorkSpace |
◆ WorkSpaceDataRelation
| typedef struct WorkSpaceDataRelation WorkSpaceDataRelation |
Generic (and simple/primitive) struct for storing a history of assignments/relations of workspace data to non-workspace data in a listbase inside the workspace.
Using this we can restore the old state of a workspace if the user switches back to it.
Usage
When activating a workspace, it should activate the screen-layout that was active in that workspace before in this window. More concretely:
- There are two windows, win1 and win2.
- Both show workspace ws1, but both also had workspace ws2 activated at some point before.
- Last time ws2 was active in win1, screen-layout sl1 was activated.
- Last time ws2 was active in win2, screen-layout sl2 was activated.
- When changing from ws1 to ws2 in win1, screen-layout sl1 should be activated again.
- When changing from ws1 to ws2 in win2, screen-layout sl2 should be activated again. So that means we have to store the active screen-layout in a per workspace, per window relation. This struct is used to store an active screen-layout for each window within the workspace. To find the screen-layout to activate for this window-workspace combination, simply lookup the WorkSpaceDataRelation with the workspace-hook of the window set as parent.
◆ WorkSpaceInstanceHook
| typedef struct WorkSpaceInstanceHook WorkSpaceInstanceHook |
Little wrapper to store data that is going to be per window, but coming from the workspace. It allows us to keep workspace and window data completely separate.
◆ WorkSpaceLayout
| typedef struct WorkSpaceLayout WorkSpaceLayout |
Wrapper for bScreen.
#bScreens are IDs and thus stored in a main list-base. We also want to store a list-base of them within the workspace (so each workspace can have its own set of screen-layouts) which would mess with the next/prev pointers. So we use this struct to wrap a bScreen pointer with another pair of next/prev pointers.
◆ WorkSpaceRuntimeHandle
◆ anonymous enum
bToolRef_Runtime.flag
| Enumerator |
|---|
| TOOLREF_FLAG_FALLBACK_KEYMAP | This tool should use the fallback key-map. Typically gizmos handle this but some tools (such as the knife tool) don't use a gizmo.
|
| TOOLREF_FLAG_USE_BRUSHES | |
Definition at line 27 of file DNA_workspace_types.h.
◆ eWorkSpaceFlags