Blender
V3.3
source
blender
editors
util
gizmo_utils.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
9
#include <
string.h
>
10
11
#include "
BLI_utildefines.h
"
12
13
#include "
BKE_context.h
"
14
15
#include "
DNA_workspace_types.h
"
16
17
#include "
WM_api.h
"
18
#include "
WM_toolsystem.h
"
19
#include "
WM_types.h
"
20
21
#include "
ED_gizmo_utils.h
"
22
23
bool
ED_gizmo_poll_or_unlink_delayed_from_operator
(
const
bContext
*
C
,
24
wmGizmoGroupType
*gzgt,
25
const
char
*idname)
26
{
27
#if 0
28
/* Causes selection to continue showing the last gizmo. */
29
wmOperator
*op =
WM_operator_last_redo
(
C
);
30
#else
31
wmWindowManager
*wm =
CTX_wm_manager
(
C
);
32
wmOperator
*op = wm->
operators
.
last
;
33
#endif
34
35
if
(op ==
NULL
|| !
STREQ
(op->
type
->
idname
, idname)) {
36
WM_gizmo_group_type_unlink_delayed_ptr
(gzgt);
37
return
false
;
38
}
39
return
true
;
40
}
41
42
bool
ED_gizmo_poll_or_unlink_delayed_from_tool_ex
(
const
bContext
*
C
,
43
wmGizmoGroupType
*gzgt,
44
const
char
*gzgt_idname)
45
{
46
bToolRef_Runtime
*tref_rt =
WM_toolsystem_runtime_from_context
((
bContext
*)
C
);
47
if
((tref_rt ==
NULL
) || !
STREQ
(gzgt_idname, tref_rt->
gizmo_group
)) {
48
ScrArea
*
area
=
CTX_wm_area
(
C
);
49
wmGizmoMapType
*gzmap_type =
WM_gizmomaptype_ensure
(&gzgt->
gzmap_params
);
50
WM_gizmo_group_unlink_delayed_ptr_from_space
(gzgt, gzmap_type,
area
);
51
if
(gzgt->
users
== 0) {
52
WM_gizmo_group_type_unlink_delayed_ptr
(gzgt);
53
}
54
return
false
;
55
}
56
return
true
;
57
}
58
59
bool
ED_gizmo_poll_or_unlink_delayed_from_tool
(
const
bContext
*
C
,
wmGizmoGroupType
*gzgt)
60
{
61
return
ED_gizmo_poll_or_unlink_delayed_from_tool_ex
(
C
, gzgt, gzgt->
idname
);
62
}
BKE_context.h
CTX_wm_area
struct ScrArea * CTX_wm_area(const bContext *C)
Definition:
context.c:738
CTX_wm_manager
struct wmWindowManager * CTX_wm_manager(const bContext *C)
Definition:
context.c:713
BLI_utildefines.h
STREQ
#define STREQ(a, b)
Definition:
BLI_utildefines.h:654
DNA_workspace_types.h
ED_gizmo_utils.h
C
#define C
Definition:
RandGen.cpp:25
WM_api.h
WM_toolsystem.h
WM_types.h
NULL
return NULL
Definition:
bmesh_operator_api_inline.h:205
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.c:59
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.c:23
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.c:42
blender::compositor::area
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition:
COM_SMAAOperation.cc:113
string.h
ListBase::last
void * last
Definition:
DNA_listBase.h:31
ScrArea
Definition:
DNA_screen_types.h:365
bContext
Definition:
context.c:56
bToolRef_Runtime
Definition:
DNA_workspace_types.h:29
bToolRef_Runtime::gizmo_group
char gizmo_group[64]
Definition:
DNA_workspace_types.h:34
wmGizmoGroupType
Definition:
WM_gizmo_types.h:413
wmGizmoGroupType::users
int users
Definition:
WM_gizmo_types.h:465
wmGizmoGroupType::idname
const char * idname
Definition:
WM_gizmo_types.h:414
wmGizmoGroupType::gzmap_params
struct wmGizmoMapType_Params gzmap_params
Definition:
WM_gizmo_types.h:459
wmGizmoMapType
Definition:
wm_gizmo_intern.h:131
wmOperatorType::idname
const char * idname
Definition:
WM_types.h:890
wmOperator
Definition:
DNA_windowmanager_types.h:522
wmOperator::type
struct wmOperatorType * type
Definition:
DNA_windowmanager_types.h:533
wmWindowManager
Definition:
DNA_windowmanager_types.h:125
wmWindowManager::operators
ListBase operators
Definition:
DNA_windowmanager_types.h:150
WM_gizmo_group_type_unlink_delayed_ptr
void WM_gizmo_group_type_unlink_delayed_ptr(wmGizmoGroupType *gzgt)
Definition:
wm_gizmo_group.c:1179
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.c:1192
WM_gizmomaptype_ensure
wmGizmoMapType * WM_gizmomaptype_ensure(const struct wmGizmoMapType_Params *gzmap_params)
Definition:
wm_gizmo_map.c:1212
WM_operator_last_redo
wmOperator * WM_operator_last_redo(const bContext *C)
Definition:
wm_operators.c:1237
WM_toolsystem_runtime_from_context
struct bToolRef_Runtime * WM_toolsystem_runtime_from_context(struct bContext *C)
Definition:
wm_toolsystem.c:77
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1