Blender
V5.0
source
blender
editors
screen
workspace_listen.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
5
#include "
BLI_listbase.h
"
6
7
#include "
BKE_context.hh
"
8
#include "
BKE_viewer_path.hh
"
9
10
#include "
ED_screen.hh
"
11
#include "
ED_viewer_path.hh
"
12
13
#include "
WM_api.hh
"
14
20
static
void
validate_viewer_paths
(
bContext
&
C
,
WorkSpace
&workspace)
21
{
22
if
(
BLI_listbase_is_empty
(&workspace.
viewer_path
.
path
)) {
23
return
;
24
}
25
26
using namespace
blender::ed::viewer_path
;
27
28
const
UpdateActiveGeometryNodesViewerResult
result
=
update_active_geometry_nodes_viewer
(
29
C
, workspace.
viewer_path
);
30
switch
(
result
) {
31
case
UpdateActiveGeometryNodesViewerResult::StillActive
:
32
return
;
33
case
UpdateActiveGeometryNodesViewerResult::Updated
:
34
break
;
35
case
UpdateActiveGeometryNodesViewerResult::NotActive
:
36
BKE_viewer_path_clear
(&workspace.
viewer_path
);
37
break
;
38
}
39
40
WM_event_add_notifier
(&
C
,
NC_VIEWER_PATH
,
nullptr
);
41
}
42
43
void
ED_workspace_do_listen
(
bContext
*
C
,
const
wmNotifier
*
/*note*/
)
44
{
45
WorkSpace
*workspace =
CTX_wm_workspace
(
C
);
46
validate_viewer_paths
(*
C
, *workspace);
47
}
BKE_context.hh
CTX_wm_workspace
WorkSpace * CTX_wm_workspace(const bContext *C)
Definition
blenkernel/intern/context.cc:939
BKE_viewer_path.hh
BKE_viewer_path_clear
void BKE_viewer_path_clear(ViewerPath *viewer_path)
Definition
viewer_path.cc:26
result
double result
Definition
BLI_expr_pylike_eval_test.cc:351
BLI_listbase.h
BLI_listbase_is_empty
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
Definition
BLI_listbase.h:289
ED_screen.hh
ED_viewer_path.hh
C
#define C
Definition
RandGen.cpp:29
WM_api.hh
NC_VIEWER_PATH
#define NC_VIEWER_PATH
Definition
WM_types.hh:406
blender::ed::viewer_path
Definition
ED_viewer_path.hh:23
blender::ed::viewer_path::update_active_geometry_nodes_viewer
UpdateActiveGeometryNodesViewerResult update_active_geometry_nodes_viewer(const bContext &C, ViewerPath &viewer_path)
Definition
ed_viewer_path.cc:406
blender::ed::viewer_path::UpdateActiveGeometryNodesViewerResult
UpdateActiveGeometryNodesViewerResult
Definition
ED_viewer_path.hh:72
blender::ed::viewer_path::UpdateActiveGeometryNodesViewerResult::StillActive
@ StillActive
Definition
ED_viewer_path.hh:73
blender::ed::viewer_path::UpdateActiveGeometryNodesViewerResult::NotActive
@ NotActive
Definition
ED_viewer_path.hh:75
blender::ed::viewer_path::UpdateActiveGeometryNodesViewerResult::Updated
@ Updated
Definition
ED_viewer_path.hh:74
ViewerPath::path
ListBase path
Definition
DNA_viewer_path_types.h:92
WorkSpace
Definition
DNA_workspace_types.h:143
WorkSpace::viewer_path
ViewerPath viewer_path
Definition
DNA_workspace_types.h:194
bContext
Definition
blenkernel/intern/context.cc:63
wmNotifier
Definition
WM_types.hh:353
WM_event_add_notifier
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
Definition
wm_event_system.cc:397
ED_workspace_do_listen
void ED_workspace_do_listen(bContext *C, const wmNotifier *)
Definition
workspace_listen.cc:43
validate_viewer_paths
static void validate_viewer_paths(bContext &C, WorkSpace &workspace)
Definition
workspace_listen.cc:20
Generated on
for Blender by
doxygen
1.16.1