Blender V4.3
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
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))
35#define WM_TOOLSYSTEM_SPACE_MASK_MODE_FROM_SPACE ((1 << SPACE_IMAGE) | (1 << SPACE_SEQ))
36
37/* Values that define a category of active tool. */
38struct bToolKey {
40 int mode;
41};
42
44bToolRef *WM_toolsystem_ref_find(WorkSpace *workspace, const bToolKey *tkey);
45bool WM_toolsystem_ref_ensure(WorkSpace *workspace, const bToolKey *tkey, bToolRef **r_tref);
46
48 bContext *C, WorkSpace *workspace, const bToolKey *tkey, const char *name, bool cycle);
49bToolRef *WM_toolsystem_ref_set_by_id(bContext *C, const char *name);
50
53
62
63void WM_toolsystem_unlink(bContext *C, WorkSpace *workspace, const bToolKey *tkey);
64void WM_toolsystem_refresh(const bContext *C, WorkSpace *workspace, const bToolKey *tkey);
65void WM_toolsystem_reinit(bContext *C, WorkSpace *workspace, const bToolKey *tkey);
66
71void WM_toolsystem_refresh_all(const bContext *C, WorkSpace *workspace);
73
75 WorkSpace *workspace,
76 bToolRef *tref,
77 const bToolRef_Runtime *tref_rt,
78 const char *idname);
79
86void WM_toolsystem_ref_sync_from_context(Main *bmain, WorkSpace *workspace, bToolRef *tref);
87
88void WM_toolsystem_init(const bContext *C);
89
91 ViewLayer *view_layer,
92 ScrArea *area,
93 int space_type);
95 ViewLayer *view_layer,
96 ScrArea *area,
97 bToolKey *tkey);
98
101 bContext *C, WorkSpace *workspace, const Scene *scene, ViewLayer *view_layer, ScrArea *area);
102
108
111 wmMsgSubscribeKey *msg_key,
112 wmMsgSubscribeValue *msg_val);
113
117 const char *idname,
118 StructRNA *type,
119 PointerRNA *r_ptr);
120
121#define WM_toolsystem_ref_properties_ensure_from_operator(tref, ot, r_ptr) \
122 WM_toolsystem_ref_properties_ensure_ex(tref, (ot)->idname, (ot)->srna, r_ptr)
123#define WM_toolsystem_ref_properties_ensure_from_gizmo_group(tref, gzgroup, r_ptr) \
124 WM_toolsystem_ref_properties_ensure_ex(tref, (gzgroup)->idname, (gzgroup)->srna, r_ptr)
125
127 const char *idname,
128 StructRNA *type,
129 PointerRNA *r_ptr);
130#define WM_toolsystem_ref_properties_get_from_operator(tref, ot, r_ptr) \
131 WM_toolsystem_ref_properties_get_ex(tref, (ot)->idname, (ot)->srna, r_ptr)
132#define WM_toolsystem_ref_properties_get_from_gizmo_group(tref, gzgroup, r_ptr) \
133 WM_toolsystem_ref_properties_get_ex(tref, (gzgroup)->idname, (gzgroup)->srna, r_ptr)
134
136 PointerRNA *dst_ptr,
137 PointerRNA *src_ptr,
139
153 const Scene *scene,
154 ViewLayer *view_layer,
155 ScrArea *area);
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)
wmOperatorType * ot
Definition wm_files.cc:4125