Index: source/blender/src/drawnode.c =================================================================== --- source/blender/src/drawnode.c (revision 11763) +++ source/blender/src/drawnode.c (working copy) @@ -36,10 +36,12 @@ #include "DNA_action_types.h" #include "DNA_color_types.h" +#include "DNA_customdata_types.h" #include "DNA_ipo_types.h" #include "DNA_ID.h" #include "DNA_image_types.h" #include "DNA_material_types.h" +#include "DNA_mesh_types.h" #include "DNA_node_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" @@ -88,7 +90,30 @@ #include "interface.h" /* urm... for rasterpos_safe, roundbox */ #include "mydevice.h" +extern void autocomplete_uv(char *str, void *arg_v); +/* autocomplete callback for buttons */ +static void autocomplete_vcol(char *str, void *arg_v) +{ + Mesh *me; + CustomDataLayer *layer; + AutoComplete *autocpl; + int a; + + if(str[0]==0) + return; + + autocpl= autocomplete_begin(str, 32); + + /* search if str matches the beginning of name */ + for(me= G.main->mesh.first; me; me=me->id.next) + for(a=0, layer= me->fdata.layers; afdata.totlayer; a++, layer++) + if(layer->type == CD_MCOL) + autocomplete_do_name(autocpl, layer->name); + + autocomplete_end(autocpl, str); +} + static void snode_drawstring(SpaceNode *snode, char *str, int okwidth) { char drawstr[NODE_MAXSTR]; @@ -606,10 +631,13 @@ static int node_shader_buts_geometry(uiBlock *block, bNodeTree *ntree, bNode *node, rctf *butr) { if(block) { + uiBut *but; NodeGeometry *ngeo= (NodeGeometry*)node->storage; - uiDefBut(block, TEX, B_NODE_EXEC+node->nr, "UV:", butr->xmin, butr->ymin+20, butr->xmax-butr->xmin, 20, ngeo->uvname, 0, 31, 0, 0, "Set name of UV layer to use, default is active UV layer"); - uiDefBut(block, TEX, B_NODE_EXEC+node->nr, "Col:", butr->xmin, butr->ymin, butr->xmax-butr->xmin, 20, ngeo->colname, 0, 31, 0, 0, "Set name of vertex color layer to use, default is active vertex color layer"); + but= uiDefBut(block, TEX, B_NODE_EXEC+node->nr, "UV:", butr->xmin, butr->ymin+20, butr->xmax-butr->xmin, 20, ngeo->uvname, 0, 31, 0, 0, "Set name of UV layer to use, default is active UV layer"); + uiButSetCompleteFunc(but, autocomplete_uv, NULL); + but= uiDefBut(block, TEX, B_NODE_EXEC+node->nr, "Col:", butr->xmin, butr->ymin, butr->xmax-butr->xmin, 20, ngeo->colname, 0, 31, 0, 0, "Set name of vertex color layer to use, default is active vertex color layer"); + uiButSetCompleteFunc(but, autocomplete_vcol, NULL); } return 40; Index: source/blender/src/buttons_shading.c =================================================================== --- source/blender/src/buttons_shading.c (revision 11763) +++ source/blender/src/buttons_shading.c (working copy) @@ -3029,7 +3029,7 @@ } /* autocomplete callback for buttons */ -static void autocomplete_uv(char *str, void *arg_v) +void autocomplete_uv(char *str, void *arg_v) { Mesh *me; CustomDataLayer *layer; Index: source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c ===================================================================