Answered
Determine if text is point or paragraph
I'm trying to determine via script, if a text layer is either using paragraph text or point (normal) text.
I think the property is textShape
theLayer.textKey.textShape[0] // DescValueType.LISTTYPE
However, that doesn't work and my deep dive into Action Manager code gets stuck at the last part - mainly because I don't know how to iterate over a listtype
var srcDoc = app.activeDocument;
// PART 1
// TOP LEVEL
var str = "Descriptor:\n";
var q = " - ";
r = new ActionReference();
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
d = executeActionGet(r);
for (var i = 0; i < d.count; i++)
{
str += typeIDToStringID(d.getKey(i)) + q + d.getType(d.getKey(i)) + "\n";
}
// PART 2
str = "Layer properties\n";
var item = "layer";
var r = new ActionReference();
r.putEnumerated(stringIDToTypeID(item), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
var d = executeActionGet(r);
for (var i = 0; i < d.count; i++)
{
str += typeIDToStringID(d.getKey(i)) + q + d.getType(d.getKey(i)) + "\n";
}
// Part 3
var prop = "textKey";
item = "layer";
var r = new ActionReference();
r.putEnumerated(stringIDToTypeID(item), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
var d = executeActionGet(r).getObjectValue(stringIDToTypeID(prop));
str = prop + " properties\n";
for (var i = 0; i < d.count; i++)
{
str += typeIDToStringID(d.getKey(i)) + q + d.getType(d.getKey(i)) + "\n";
}
// Part 4
// Sub property
var subProp = "textShape"; // textShape - DescValueType.LISTTYPE
item = "layer";
var r = new ActionReference();
r.putEnumerated(stringIDToTypeID(item), stringIDToTypeID("list"), stringIDToTypeID("targetEnum"));
var d = executeActionGet(r).getObjectValue(stringIDToTypeID(prop)).getObjectValue(stringIDToTypeID(subProp))
str = subProp + " sub properties\n";
for (var i = 0; i < d.count; i++)
{
str += typeIDToStringID(d.getKey(i)) + q + d.getType(d.getKey(i)) + "\n";
}
alert(str); //FAILS
// Set Display Dialogs back to normal
displayDialogs = DialogModes.ALL; // NORMAL
Any ideas?
