Blender V5.0
WM_toolsystem.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
9
10struct Brush;
11struct IDProperty;
12struct Main;
13struct Paint;
14struct PointerRNA;
15struct Scene;
16struct ScrArea;
17struct StructRNA;
18struct WorkSpace;
19struct bContext;
20struct bToolRef;
21struct bToolRef_Runtime;
22struct ViewLayer;
25struct wmOperatorType;
26struct wmWindow;
27
28/* `wm_toolsystem.cc` */
29
30#define WM_TOOLSYSTEM_SPACE_MASK \
31 ((1 << SPACE_IMAGE) | (1 << SPACE_NODE) | (1 << SPACE_VIEW3D) | (1 << SPACE_SEQ))
32
35#define WM_TOOLSYSTEM_SPACE_MASK_MODE_FROM_SPACE ((1 << SPACE_IMAGE) | (1 << SPACE_SEQ))
36
40struct bToolKey {
42 int mode;
43};
44
46bToolRef *WM_toolsystem_ref_find(WorkSpace *workspace, const bToolKey *tkey);
47bool WM_toolsystem_ref_ensure(WorkSpace *workspace, const bToolKey *tkey, bToolRef **r_tref);
48
50 bContext *C, WorkSpace *workspace, const bToolKey *tkey, const char *name, bool cycle);
52
55
64
65void WM_toolsystem_unlink(bContext *C, WorkSpace *workspace, const bToolKey *tkey);
66void WM_toolsystem_refresh(const bContext *C, WorkSpace *workspace, const bToolKey *tkey);
67void WM_toolsystem_reinit(bContext *C, WorkSpace *workspace, const bToolKey *tkey);
68
73void WM_toolsystem_refresh_all(const bContext *C, WorkSpace *workspace);
75
77 WorkSpace *workspace,
78 bToolRef *tref,
79 const bToolRef_Runtime *tref_rt,
80 const char *idname);
81
88void WM_toolsystem_ref_sync_from_context(Main *bmain, WorkSpace *workspace, bToolRef *tref);
89
90void WM_toolsystem_init(const bContext *C);
91
93 ViewLayer *view_layer,
94 ScrArea *area,
95 int space_type);
97 ViewLayer *view_layer,
98 ScrArea *area,
99 bToolKey *tkey);
100
103 bContext *C, WorkSpace *workspace, const Scene *scene, ViewLayer *view_layer, ScrArea *area);
104
110
113 wmMsgSubscribeKey *msg_key,
114 wmMsgSubscribeValue *msg_val);
115
119 const char *idname,
120 StructRNA *type,
121 PointerRNA *r_ptr);
122
123#define WM_toolsystem_ref_properties_ensure_from_operator(tref, ot, r_ptr) \
124 WM_toolsystem_ref_properties_ensure_ex(tref, (ot)->idname, (ot)->srna, r_ptr)
125#define WM_toolsystem_ref_properties_ensure_from_gizmo_group(tref, gzgroup, r_ptr) \
126 WM_toolsystem_ref_properties_ensure_ex(tref, (gzgroup)->idname, (gzgroup)->srna, r_ptr)
127
129 const char *idname,
130 StructRNA *type,
131 PointerRNA *r_ptr);
132#define WM_toolsystem_ref_properties_get_from_operator(tref, ot, r_ptr) \
133 WM_toolsystem_ref_properties_get_ex(tref, (ot)->idname, (ot)->srna, r_ptr)
134#define WM_toolsystem_ref_properties_get_from_gizmo_group(tref, gzgroup, r_ptr) \
135 WM_toolsystem_ref_properties_get_ex(tref, (gzgroup)->idname, (gzgroup)->srna, r_ptr)
136
138 PointerRNA *dst_ptr,
139 PointerRNA *src_ptr,
141
155 const Scene *scene,
156 ViewLayer *view_layer,
157 ScrArea *area);
#define C
Definition RandGen.cpp:29
void WM_toolsystem_reinit(bContext *C, WorkSpace *workspace, const bToolKey *tkey)
void WM_toolsystem_update_from_context(bContext *C, WorkSpace *workspace, const Scene *scene, ViewLayer *view_layer, ScrArea *area)
bToolRef * WM_toolsystem_ref_find(WorkSpace *workspace, const bToolKey *tkey)
bool WM_toolsystem_key_from_context(const Scene *scene, ViewLayer *view_layer, ScrArea *area, bToolKey *tkey)
void WM_toolsystem_init(const bContext *C)
bool WM_toolsystem_ref_properties_get_ex(bToolRef *tref, const char *idname, StructRNA *type, PointerRNA *r_ptr)
bToolRef_Runtime * WM_toolsystem_runtime_find(WorkSpace *workspace, const bToolKey *tkey)
void WM_toolsystem_refresh_all(const bContext *C, WorkSpace *workspace)
IDProperty * WM_toolsystem_ref_properties_ensure_idprops(bToolRef *tref)
void WM_toolsystem_unlink(bContext *C, WorkSpace *workspace, const bToolKey *tkey)
void WM_toolsystem_reinit_all(bContext *C, wmWindow *win)
int WM_toolsystem_mode_from_spacetype(const Scene *scene, ViewLayer *view_layer, ScrArea *area, int space_type)
bool WM_toolsystem_active_tool_is_brush(const bContext *C)
void WM_toolsystem_refresh_screen_all(Main *bmain)
void WM_toolsystem_do_msg_notify_tag_refresh(bContext *C, wmMsgSubscribeKey *msg_key, wmMsgSubscribeValue *msg_val)
void WM_toolsystem_refresh(const bContext *C, WorkSpace *workspace, const bToolKey *tkey)
void WM_toolsystem_ref_properties_init_for_keymap(bToolRef *tref, PointerRNA *dst_ptr, PointerRNA *src_ptr, wmOperatorType *ot)
bToolRef * WM_toolsystem_ref_set_by_id(bContext *C, const char *name)
IDProperty * WM_toolsystem_ref_properties_get_idprops(bToolRef *tref)
bToolRef * WM_toolsystem_ref_set_by_id_ex(bContext *C, WorkSpace *workspace, const bToolKey *tkey, const char *name, bool cycle)
bool WM_toolsystem_activate_brush_and_tool(bContext *C, Paint *paint, Brush *brush)
bToolRef_Runtime * WM_toolsystem_runtime_from_context(const bContext *C)
bool WM_toolsystem_refresh_screen_area(WorkSpace *workspace, const Scene *scene, ViewLayer *view_layer, ScrArea *area)
bool WM_toolsystem_active_tool_has_custom_cursor(const bContext *C)
void WM_toolsystem_ref_set_from_runtime(bContext *C, WorkSpace *workspace, bToolRef *tref, const bToolRef_Runtime *tref_rt, const char *idname)
void WM_toolsystem_refresh_screen_window(wmWindow *win)
void WM_toolsystem_update_from_context_view3d(bContext *C)
void WM_toolsystem_refresh_active(bContext *C)
void WM_toolsystem_unlink_all(bContext *C, WorkSpace *workspace)
bool WM_toolsystem_ref_ensure(WorkSpace *workspace, const bToolKey *tkey, bToolRef **r_tref)
void WM_toolsystem_ref_properties_ensure_ex(bToolRef *tref, const char *idname, StructRNA *type, PointerRNA *r_ptr)
void WM_toolsystem_ref_sync_from_context(Main *bmain, WorkSpace *workspace, bToolRef *tref)
bToolRef * WM_toolsystem_ref_from_context(const bContext *C)
const char * name
wmOperatorType * ot
Definition wm_files.cc:4237