How do I get tool properties?
hello,as picture ,How do I get tool properties please?such as the Brush Tool mode:Normal,opacity:100%,Flow:100%,smoothing:0%

[Discussion successfully moved from Photoshop to Photoshop Scripting by moderator]
hello,as picture ,How do I get tool properties please?such as the Brush Tool mode:Normal,opacity:100%,Flow:100%,smoothing:0%

[Discussion successfully moved from Photoshop to Photoshop Scripting by moderator]
thanks,I desperately need this knowledge of ActionManager
var param = get_brush_param();
// examples
alert(param.opacity, "Opacity");
alert(param.diameter, "Diameter");
// show all (almost all) brush props
alert(obj_to_str(param), "Brush options");
function obj_to_str(obj){var str = ""; for (var p in obj) if(obj.hasOwnProperty(p))try{str+=p+"::"+obj
+"\n";}catch(e){};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(stringIDToTypeID("brush")); } catch(e) { alert("Current tool not brush!"); return ret; }
for (var i = 0; i < options.count; i++)
{
var key = options.getKey(i);
var type = options.getType(key);
var val = undefined;
switch (type)
{
case DescValueType.BOOLEANTYPE: val = options.getBoolean(key); break;
case DescValueType.DOUBLETYPE: val = options.getDouble(key); break;
case DescValueType.INTEGERTYPE: val = options.getInteger(key); break;
case DescValueType.ENUMERATEDTYPE: val = typeIDToStringID(options.getEnumerationValue(key)); break;
case DescValueType.UNITDOUBLE: val = options.getUnitDoubleValue(key); break; // not quite right
}
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);
}
}
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
}
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); }
}
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.