[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