Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_common.py4
-rw-r--r--source/blender/makesdna/DNA_workspace_types.h1
-rw-r--r--source/blender/makesrna/intern/rna_workspace_api.c6
3 files changed, 11 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py
index a3846b0c1fb..d752cad8dfa 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_common.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py
@@ -72,6 +72,8 @@ ToolDef = namedtuple(
"text",
# The name of the icon to use (found in ``release/datafiles/icons``) or None for no icon.
"icon",
+ # An optional cursor to use when this tool is active.
+ "cursor",
# An optional manipulator group to activate when the tool is set or None for no widget.
"widget",
# Optional keymap for tool, either:
@@ -101,6 +103,7 @@ def from_dict(kw_args):
"""
kw = {
"icon": None,
+ "cursor": None,
"widget": None,
"keymap": None,
"data_block": None,
@@ -560,6 +563,7 @@ def activate_by_name(context, space_type, text):
tool.setup(
name=text,
keymap=item.keymap[0].name if item.keymap is not None else "",
+ cursor=item.cursor or 'DEFAULT',
manipulator_group=item.widget or "",
data_block=item.data_block or "",
index=index,
diff --git a/source/blender/makesdna/DNA_workspace_types.h b/source/blender/makesdna/DNA_workspace_types.h
index 693e4f672d2..12dd2d9962a 100644
--- a/source/blender/makesdna/DNA_workspace_types.h
+++ b/source/blender/makesdna/DNA_workspace_types.h
@@ -57,6 +57,7 @@
#
typedef struct bToolRef_Runtime {
/* One of these must be defined. */
+ int cursor;
char keymap[64];
char manipulator_group[64];
char data_block[64];
diff --git a/source/blender/makesrna/intern/rna_workspace_api.c b/source/blender/makesrna/intern/rna_workspace_api.c
index 4b0e2b5918e..4c6949cc33d 100644
--- a/source/blender/makesrna/intern/rna_workspace_api.c
+++ b/source/blender/makesrna/intern/rna_workspace_api.c
@@ -35,6 +35,8 @@
#include "DNA_object_types.h"
#include "DNA_windowmanager_types.h"
+#include "RNA_enum_types.h" /* own include */
+
#include "rna_internal.h" /* own include */
#ifdef RNA_RUNTIME
@@ -45,6 +47,7 @@ static void rna_WorkspaceTool_setup(
bContext *C,
const char *name,
/* Args for: 'bToolRef_Runtime'. */
+ int cursor,
const char *keymap,
const char *manipulator_group,
const char *data_block,
@@ -52,6 +55,7 @@ static void rna_WorkspaceTool_setup(
{
bToolRef_Runtime tref_rt = {0};
+ tref_rt.cursor = cursor;
STRNCPY(tref_rt.keymap, keymap);
STRNCPY(tref_rt.manipulator_group, manipulator_group);
STRNCPY(tref_rt.data_block, data_block);
@@ -81,6 +85,8 @@ void RNA_api_workspace_tool(StructRNA *srna)
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
/* 'bToolRef_Runtime' */
+ parm = RNA_def_property(func, "cursor", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(parm, rna_enum_window_cursor_items);
RNA_def_string(func, "keymap", NULL, KMAP_MAX_NAME, "Key Map", "");
RNA_def_string(func, "manipulator_group", NULL, MAX_NAME, "Manipulator Group", "");
RNA_def_string(func, "data_block", NULL, MAX_NAME, "Data Block", "");