Copy link to clipboard
Copied
Hi,
I'd like to get the current selected action.
Please refer to the image below. Vignette (selection) is selected.
Is there a script that I could use to get the that?
Your help is very much appreciated.
...getSelectedAction()
function getSelectedAction(){
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("Actn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
try{
var desc = executeActionGet(ref);
}catch(e){ return; } // no action selected
var selectedName = desc.getString(charIDToTypeID("Nm "));
var selectedIndex = desc.getInteger(charIDToTypeID("ItmI"));
var parentName = desc.getString(charIDToTypeID("PrNm"));
var parentIndex = desc.getInteger(c
Copy link to clipboard
Copied
getSelectedAction()
function getSelectedAction(){
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("Actn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
try{
var desc = executeActionGet(ref);
}catch(e){ return; } // no action selected
var selectedName = desc.getString(charIDToTypeID("Nm "));
var selectedIndex = desc.getInteger(charIDToTypeID("ItmI"));
var parentName = desc.getString(charIDToTypeID("PrNm"));
var parentIndex = desc.getInteger(charIDToTypeID("PrIn"));
if(isActionSet( parentIndex, parentName )){
var setName = parentName;
var actionName = selectedName;
}else{
var setName = findAction(parentIndex, parentName );
var actionName = parentName;
}
return [setName,actionName];
};
function isActionSet( parentIndex, parentName ){
var res = false;
try{
var ref = new ActionReference();
ref.putIndex( charIDToTypeID( "ASet" ), parentIndex );
var setName = executeActionGet( ref ).getString(charIDToTypeID("Nm "));
if(setName == parentName) res = true;
}catch(e){}
return res;
};
function findAction(parentIndex, parentName ) {
var i = 1;
var found = false;
while (!found) {
var ref = new ActionReference();
ref.putIndex(charIDToTypeID('ASet'), i);
var desc;
try {
desc = executeActionGet(ref);
} catch (e) {
break;
} finally {
}
if (desc.hasKey(charIDToTypeID('Nm '))) { ;
var setName = desc.getString(charIDToTypeID('Nm '));
var ref = new ActionReference();
ref.putIndex(charIDToTypeID('Actn'), parentIndex);
ref.putIndex(charIDToTypeID('ASet'), i);
try{
var adesc = executeActionGet(ref);
var actName = adesc.getString(charIDToTypeID('Nm '));
if(actName==parentName) return setName;
}catch(e){}
}
i++;
}
};
Copy link to clipboard
Copied
Thank you, Michael!
Find more inspiration, events, and resources on the new Adobe Community
Explore Now