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:
authorCharlie Jolly <charlie>2022-02-07 18:29:16 +0300
committerCharlie Jolly <mistajolly@gmail.com>2022-02-07 18:39:39 +0300
commitfe4e85a9240ff95909be33c7e72e0ab969d5a4ca (patch)
treea1d98ccdbe2687b1712508c0b7dbf8bc361668e8 /source/blender/editors
parenta7b598203034c04f5fce3088d6b07799d74f832c (diff)
Nodes: Dynamic node class for Map Range node
This patch makes it possible to set the UI color of a node's header bar and override the default from the node's typeinfo. Currently the color is taken from the `.nclass` member of the node's bNodeType->TypeInfo struct. This is created once when registering the node. The TypeInfo is used for both UI and non-UI functionality. Since the TypeInfo is shared, the header bar for the node can't be changed without changing all nodes of that type. The Map Range node is shown as a `Converter` or blue color by default. This patch allows this to be changed dynamically to `Vector` or purple. This is done by adding a `ui_class` callback to node typeinfo struct. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D13936
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/space_node/node_draw.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc
index 834bb3e5802..81c63e9bddb 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -626,7 +626,9 @@ static void node_update_hidden(bNode &node, uiBlock &block)
static int node_get_colorid(const bNode &node)
{
- switch (node.typeinfo->nclass) {
+ const int nclass = (node.typeinfo->ui_class == nullptr) ? node.typeinfo->nclass :
+ node.typeinfo->ui_class(&node);
+ switch (nclass) {
case NODE_CLASS_INPUT:
return TH_NODE_INPUT;
case NODE_CLASS_OUTPUT: