[Bf-blender-cvs] [dfb86671fe8] temp-enum-socket: show enum labels in node
Jacques Lucke
noreply at git.blender.org
Mon Nov 8 16:07:03 CET 2021
Commit: dfb86671fe89f8de8dc417ac9e825c222ec9e5c9
Author: Jacques Lucke
Date: Sat Nov 6 19:34:24 2021 +0100
Branches: temp-enum-socket
https://developer.blender.org/rBdfb86671fe89f8de8dc417ac9e825c222ec9e5c9
show enum labels in node
===================================================================
M source/blender/makesrna/RNA_access.h
M source/blender/nodes/function/nodes/node_fn_enum.cc
===================================================================
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 188f933dba5..2623cd1e9ed 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -449,6 +449,8 @@ extern StructRNA RNA_MusgraveTexture;
extern StructRNA RNA_NlaStrip;
extern StructRNA RNA_NlaTrack;
extern StructRNA RNA_Node;
+extern StructRNA RNA_NodeFunctionEnum;
+extern StructRNA RNA_NodeFunctionEnumItem;
extern StructRNA RNA_NodeInstanceHash;
extern StructRNA RNA_NodeLink;
extern StructRNA RNA_NodeOutputFileSlotFile;
diff --git a/source/blender/nodes/function/nodes/node_fn_enum.cc b/source/blender/nodes/function/nodes/node_fn_enum.cc
index a3ba9e0f657..49e9f4f8bd7 100644
--- a/source/blender/nodes/function/nodes/node_fn_enum.cc
+++ b/source/blender/nodes/function/nodes/node_fn_enum.cc
@@ -39,11 +39,19 @@ static void fn_node_enum_declare(NodeDeclarationBuilder &b)
static bool fn_node_enum_draw_socket(uiLayout *layout,
const bContext *UNUSED(C),
- bNodeTree *UNUSED(ntree),
- bNode *UNUSED(node),
- bNodeSocket *UNUSED(socket))
+ bNodeTree *ntree,
+ bNode *node,
+ bNodeSocket *socket)
{
- uiItemL(layout, "Hello World", ICON_NONE);
+ const int index = BLI_findindex(&node->outputs, socket);
+ if (index == -1) {
+ return false;
+ }
+ NodeFunctionEnum *storage = (NodeFunctionEnum *)node->storage;
+ NodeFunctionEnumItem *item = (NodeFunctionEnumItem *)BLI_findlink(&storage->items, index);
+ PointerRNA item_ptr;
+ RNA_pointer_create(&ntree->id, &RNA_NodeFunctionEnumItem, item, &item_ptr);
+ uiItemR(layout, &item_ptr, "name", 0, "", ICON_NONE);
return true;
}
More information about the Bf-blender-cvs
mailing list