diff options
author | Ton Roosendaal <ton@blender.org> | 2010-11-18 19:38:32 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2010-11-18 19:38:32 +0300 |
commit | e76074da0bf3a1f406146430ed6cef50a73e699b (patch) | |
tree | deb167afc9187a65629fb5161fa7f139c40a15c1 /source/blender | |
parent | 23fbce5a5fc18f310abfc391654108c6bd7d12bc (diff) |
Feature fix
When using Material Nodes, there was no indication in Material
Property window which node was active. The context/channel widget
now shows this.
Better would be to be able to browse nodes in this list, and
to have option to preview only this material (not node tree
result). Enough todo for future :)
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/interface/interface_templates.c | 23 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 2 |
2 files changed, 24 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 46ecda5fba5..d9541e33040 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -38,6 +38,7 @@ #include "BKE_global.h" #include "BKE_library.h" #include "BKE_main.h" +#include "BKE_material.h" #include "BKE_texture.h" #include "BKE_report.h" @@ -2000,6 +2001,28 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe uiBlockSetEmboss(block, UI_EMBOSS); uiDefButR(block, OPTION, 0, "", 0, 0, UI_UNIT_X, UI_UNIT_Y, itemptr, "use", 0, 0, 0, 0, 0, NULL); } + else if(RNA_struct_is_a(itemptr->type, &RNA_MaterialSlot)) { + /* provision to draw active node name */ + Material *ma, *manode; + Object *ob= (Object*)ptr->id.data; + int index= (Material**)ptr->data - ob->mat; + + /* default item with material base name */ + uiItemL(sub, name, icon); + + ma= give_current_material(ob, index+1); + if(ma) { + manode= give_node_material(ma); + if(manode) { + char str[MAX_ID_NAME + 12]; + sprintf(str, "Node %s", manode->id.name+2); + uiItemL(sub, str, ui_id_icon_get(C, &manode->id, 1)); + } + else if(ma->use_nodes) { + uiItemL(sub, "Node <none>", 0); + } + } + } else if(itemptr->type == &RNA_ShapeKey) { ob= (Object*)activeptr->data; diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 599e9ece704..f6fb213358c 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -869,7 +869,7 @@ int WM_operator_winactive(bContext *C) return 1; } -/* op->invoke */ +/* op->exec */ static void redo_cb(bContext *C, void *arg_op, int UNUSED(event)) { wmOperator *lastop= arg_op; |