how to get brush name?
i had been getting the name of part of the brush.but some of brush name unable to get.the code as fallow:
var param = get_brush_param();
// examples
// show all (almost all) brush props
alert(obj_to_str(param), "currentTool options");
function obj_to_str(obj){var str = ""; for (var p in obj) if(obj.hasOwnProperty(p))try{str+=p+"::"+obj
+"\n";}catch(e){};
logInfo( str);
return str;}
//////////////////////////////////////////////////////////////////
function get_brush_param()
{
try {
var r = new ActionReference();
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("tool"));
r.putEnumerated(stringIDToTypeID("application"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
var d = executeActionGet(r);
var options = d.getObjectValue(stringIDToTypeID("currentToolOptions"));
var ret = new Object();
// try { var brush = options.getObjectValue(charIDToTypeID("CrpO")); } catch(e) { alert("Current tool not brush!"); return ret; }
try { var brush = options.getObjectValue(stringIDToTypeID("brush")); } catch(e) { alert("Current tool not brush!"); return ret; }
// alert( options.count);
// alert( brush.count);
for (var i = 0; i < brush.count; i++)
{
var key = brush.getKey(i);
var type = brush.getType(key);
var val = undefined;
switch (type)
{
case DescValueType.BOOLEANTYPE: val = brush.getBoolean(key); break;
case DescValueType.DOUBLETYPE: val = brush.getDouble(key); break;
case DescValueType.INTEGERTYPE: val = brush.getInteger(key); break;
case DescValueType.ENUMERATEDTYPE: val = typeIDToStringID(brush.getEnumerationValue(key)); break;
case DescValueType.UNITDOUBLE: val = brush.getUnitDoubleValue(key); break; // not quite right
case DescValueType.STRINGTYPE: val = brush.getString(key); break;
// case DescValueType.REFERENCETYPE: val = getReference(brush.getReference(key)); break;
default: val = brush.getType(key).toString();
}
if (val != undefined)
{
var name = typeIDToStringID(key);
if (!name) name = typeIDToCharID(key);
if (typeof(val) == "string")
eval("ret." + name +"='"+val+"'");
else
eval("ret." + name +"="+val);
}
}
return ret;
}
catch (e) { alert(e); }
}
function logInfo(Txt){
var file = new File(Folder.desktop + "/too_brush1.txt");
file.open("w", "TEXT", "????");
file.seek(0,2);
$.os.search(/windows/i) != -1 ? file.lineFeed = 'windows' : file.lineFeed = 'macintosh';
file.writeln(Txt);
file.close();
};
this is successful.

this is fail,i can't get the name.


