Blender
V4.3
source
blender
editors
util
gizmo_utils.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2023 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
11
#include <cstring>
12
13
#include "
BLI_utildefines.h
"
14
15
#include "
BKE_context.hh
"
16
17
#include "
DNA_workspace_types.h
"
18
19
#include "
WM_api.hh
"
20
#include "
WM_toolsystem.hh
"
21
#include "
WM_types.hh
"
22
23
#include "
ED_gizmo_utils.hh
"
24
25
bool
ED_gizmo_poll_or_unlink_delayed_from_operator
(
const
bContext
*C,
26
wmGizmoGroupType
*gzgt,
27
const
char
*idname)
28
{
29
#if 0
30
/* Causes selection to continue showing the last gizmo. */
31
wmOperator
*op =
WM_operator_last_redo
(C);
32
#else
33
wmWindowManager
*wm =
CTX_wm_manager
(C);
34
wmOperator
*op =
static_cast<
wmOperator
*
>
(wm->
operators
.
last
);
35
#endif
36
37
if
(op ==
nullptr
|| !
STREQ
(op->
type
->
idname
, idname)) {
38
WM_gizmo_group_type_unlink_delayed_ptr
(gzgt);
39
return
false
;
40
}
41
return
true
;
42
}
43
44
bool
ED_gizmo_poll_or_unlink_delayed_from_tool_ex
(
const
bContext
*C,
45
wmGizmoGroupType
*gzgt,
46
const
char
*gzgt_idname)
47
{
48
bToolRef_Runtime
*tref_rt =
WM_toolsystem_runtime_from_context
((
bContext
*)C);
49
if
((tref_rt ==
nullptr
) || !
STREQ
(gzgt_idname, tref_rt->
gizmo_group
)) {
50
ScrArea
*area =
CTX_wm_area
(C);
51
wmGizmoMapType
*gzmap_type =
WM_gizmomaptype_ensure
(&gzgt->
gzmap_params
);
52
WM_gizmo_group_unlink_delayed_ptr_from_space
(gzgt, gzmap_type, area);
53
if
(gzgt->
users
== 0) {
54
WM_gizmo_group_type_unlink_delayed_ptr
(gzgt);
55
}
56
return
false
;
57
}
58
return
true
;
59
}
60
61
bool
ED_gizmo_poll_or_unlink_delayed_from_tool
(
const
bContext
*C,
wmGizmoGroupType
*gzgt)
62
{
63
return
ED_gizmo_poll_or_unlink_delayed_from_tool_ex
(C, gzgt, gzgt->
idname
);
64
}
BKE_context.hh
CTX_wm_area
ScrArea * CTX_wm_area(const bContext *C)
Definition
blenkernel/intern/context.cc:751
CTX_wm_manager
wmWindowManager * CTX_wm_manager(const bContext *C)
Definition
blenkernel/intern/context.cc:724
BLI_utildefines.h
STREQ
#define STREQ(a, b)
Definition
BLI_utildefines.h:450
DNA_workspace_types.h
ED_gizmo_utils.hh
WM_api.hh
WM_toolsystem.hh
WM_types.hh
ED_gizmo_poll_or_unlink_delayed_from_tool
bool ED_gizmo_poll_or_unlink_delayed_from_tool(const bContext *C, wmGizmoGroupType *gzgt)
Definition
gizmo_utils.cc:61
ED_gizmo_poll_or_unlink_delayed_from_operator
bool ED_gizmo_poll_or_unlink_delayed_from_operator(const bContext *C, wmGizmoGroupType *gzgt, const char *idname)
Definition
gizmo_utils.cc:25
ED_gizmo_poll_or_unlink_delayed_from_tool_ex
bool ED_gizmo_poll_or_unlink_delayed_from_tool_ex(const bContext *C, wmGizmoGroupType *gzgt, const char *gzgt_idname)
Definition
gizmo_utils.cc:44
ListBase::last
void * last
Definition
DNA_listBase.h:33
ScrArea
Definition
DNA_screen_types.h:385
bContext
Definition
blenkernel/intern/context.cc:61
bToolRef_Runtime
Definition
DNA_workspace_types.h:38
bToolRef_Runtime::gizmo_group
char gizmo_group[64]
Definition
DNA_workspace_types.h:43
wmGizmoGroupType
Definition
WM_gizmo_types.hh:416
wmGizmoGroupType::users
int users
Definition
WM_gizmo_types.hh:469
wmGizmoGroupType::idname
const char * idname
Definition
WM_gizmo_types.hh:417
wmGizmoGroupType::gzmap_params
wmGizmoMapType_Params gzmap_params
Definition
WM_gizmo_types.hh:463
wmGizmoMapType
Definition
wm_gizmo_intern.hh:130
wmOperatorType::idname
const char * idname
Definition
WM_types.hh:992
wmOperator
Definition
DNA_windowmanager_types.h:623
wmOperator::type
struct wmOperatorType * type
Definition
DNA_windowmanager_types.h:634
wmWindowManager
Definition
DNA_windowmanager_types.h:146
wmWindowManager::operators
ListBase operators
Definition
DNA_windowmanager_types.h:172
WM_gizmo_group_type_unlink_delayed_ptr
void WM_gizmo_group_type_unlink_delayed_ptr(wmGizmoGroupType *gzgt)
Definition
wm_gizmo_group.cc:1197
WM_gizmo_group_unlink_delayed_ptr_from_space
void WM_gizmo_group_unlink_delayed_ptr_from_space(wmGizmoGroupType *gzgt, wmGizmoMapType *gzmap_type, ScrArea *area)
Definition
wm_gizmo_group.cc:1210
WM_gizmomaptype_ensure
wmGizmoMapType * WM_gizmomaptype_ensure(const wmGizmoMapType_Params *gzmap_params)
Definition
wm_gizmo_map.cc:1252
WM_operator_last_redo
wmOperator * WM_operator_last_redo(const bContext *C)
Definition
wm_operators.cc:1293
WM_toolsystem_runtime_from_context
bToolRef_Runtime * WM_toolsystem_runtime_from_context(const bContext *C)
Definition
wm_toolsystem.cc:84
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0