[Bf-blender-cvs] [adf111a53ee] simulation-tree: support for custom labels
Jacques Lucke
noreply at git.blender.org
Wed Feb 19 16:12:47 CET 2020
Commit: adf111a53eec5a644b577b58f2bf1e197b2bdce7
Author: Jacques Lucke
Date: Wed Feb 19 14:46:46 2020 +0100
Branches: simulation-tree
https://developer.blender.org/rBadf111a53eec5a644b577b58f2bf1e197b2bdce7
support for custom labels
===================================================================
M source/blender/simulations/nodes/my_test_node.cc
===================================================================
diff --git a/source/blender/simulations/nodes/my_test_node.cc b/source/blender/simulations/nodes/my_test_node.cc
index 0021190d178..cbd45c4357b 100644
--- a/source/blender/simulations/nodes/my_test_node.cc
+++ b/source/blender/simulations/nodes/my_test_node.cc
@@ -319,6 +319,7 @@ class NodeTypeDefinition {
std::function<void(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr)>;
template<typename T> using TypedInitStorageFn = std::function<void(T *)>;
using CopyBehaviorFn = std::function<void(bNode *dst_node, const bNode *src_node)>;
+ using LabelFn = std::function<void(bNodeTree *ntree, bNode *node, char *r_label, int maxlen)>;
private:
bNodeType m_ntype;
@@ -328,6 +329,7 @@ class NodeTypeDefinition {
FreeStorageFn m_free_storage;
CopyBehaviorFn m_copy_node;
DrawInNodeFn m_draw;
+ LabelFn m_label_fn;
public:
NodeTypeDefinition(StringRef idname, StringRef ui_name, StringRef ui_description)
@@ -438,6 +440,12 @@ class NodeTypeDefinition {
m_draw = draw_fn;
}
+ void add_label_fn(LabelFn label_fn)
+ {
+ m_ntype.labelfunc = node_label;
+ m_label_fn = label_fn;
+ }
+
void register_type()
{
nodeRegisterType(&m_ntype);
@@ -481,6 +489,12 @@ class NodeTypeDefinition {
NodeTypeDefinition *def = type_from_node(node);
def->m_free_storage(node->storage);
}
+
+ static void node_label(bNodeTree *ntree, bNode *node, char *r_label, int maxlen)
+ {
+ NodeTypeDefinition *def = type_from_node(node);
+ def->m_label_fn(ntree, node, r_label, maxlen);
+ }
};
void register_node_type_my_test_node()
@@ -532,6 +546,10 @@ void register_node_type_my_test_node()
node_builder.fixed_input("b", "B", *data_socket_float);
node_builder.fixed_output("result", "Result", *data_socket_float);
});
+ ntype.add_label_fn(
+ [](bNodeTree *UNUSED(ntree), bNode *UNUSED(node), char *r_label, int maxlen) {
+ BLI_strncpy(r_label, "Custom Label", maxlen);
+ });
ntype.register_type();
}
}
More information about the Bf-blender-cvs
mailing list