Hi,
I was pretty sure to have this function in my snippets collection, yet I can just test whether:
Code: Select allfunction hasLayerMask() {
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
var desc = executeActionGet(ref);
return desc.hasKey(charIDToTypeID("UsrM"));
}
I've seen there are StringIDs to check userMaskEnabled and userMaskLinked, but I've found no way to test whether the Layer Mask is selected (the double border around its thumbnail) or it is the Layer itself to be selected.
Any help is appreciated!
Thank you
Davide Barranca
http://www.davidebarranca.com
http://www.cs-extensions.com
isLayerMaskSelected()
isLayerMaskSelected()
Hi Davide,
I have this function in my BCM_Tools > BCM11_ ToggleMask.jsx, you can download the tools from here:
http://www.buliarca.net63.net/counter/c ... _Tools.zip
Code: Select allfunction isChannelMaskSelected(){
var ret = false;
if(hasMask() == true){
if(getChannelMaskSel() == true)
{
ret = true;
}
else{ret = false}
}
return ret;
};
function hasMask(){
var hasMask = false;
var ref = new ActionReference();
// var keyHasMask = app.stringIDToTypeID( 'hasUserMask' );
var keyHasMask = app.charIDToTypeID( 'UsrM' );
ref.putEnumerated( app.charIDToTypeID( 'Lyr ' ), app.charIDToTypeID( 'Ordn' ), app.charIDToTypeID( 'Trgt' ) );
var desc = executeActionGet( ref );
if ( desc.hasKey( keyHasMask ) ) {
hasMask = true;
}
return hasMask;
}
function getChannelMaskSel(){
var ref = new ActionReference();
ref.putProperty( charIDToTypeID( 'Prpr' ), stringIDToTypeID('numberOfChannels') );
ref.putEnumerated( charIDToTypeID( "Dcmn" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
var desc = executeActionGet(ref);
var numberOfChannels = desc.getInteger(stringIDToTypeID('numberOfChannels'));
var ref = new ActionReference();
ref.putProperty( charIDToTypeID( 'Prpr' ), stringIDToTypeID( 'targetChannels' ) );
ref.putEnumerated( app.charIDToTypeID( 'Lyr ' ), app.charIDToTypeID( 'Ordn' ), app.charIDToTypeID( 'Trgt' ) );
var desc = executeActionGet( ref );
var list = desc.getList( stringIDToTypeID( 'targetChannels' ) );
var firstIndex = list.getReference(0).getIndex();
return list.count == 1 && firstIndex == numberOfChannels+1;
}
I have this function in my BCM_Tools > BCM11_ ToggleMask.jsx, you can download the tools from here:
http://www.buliarca.net63.net/counter/c ... _Tools.zip
Code: Select allfunction isChannelMaskSelected(){
var ret = false;
if(hasMask() == true){
if(getChannelMaskSel() == true)
{
ret = true;
}
else{ret = false}
}
return ret;
};
function hasMask(){
var hasMask = false;
var ref = new ActionReference();
// var keyHasMask = app.stringIDToTypeID( 'hasUserMask' );
var keyHasMask = app.charIDToTypeID( 'UsrM' );
ref.putEnumerated( app.charIDToTypeID( 'Lyr ' ), app.charIDToTypeID( 'Ordn' ), app.charIDToTypeID( 'Trgt' ) );
var desc = executeActionGet( ref );
if ( desc.hasKey( keyHasMask ) ) {
hasMask = true;
}
return hasMask;
}
function getChannelMaskSel(){
var ref = new ActionReference();
ref.putProperty( charIDToTypeID( 'Prpr' ), stringIDToTypeID('numberOfChannels') );
ref.putEnumerated( charIDToTypeID( "Dcmn" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
var desc = executeActionGet(ref);
var numberOfChannels = desc.getInteger(stringIDToTypeID('numberOfChannels'));
var ref = new ActionReference();
ref.putProperty( charIDToTypeID( 'Prpr' ), stringIDToTypeID( 'targetChannels' ) );
ref.putEnumerated( app.charIDToTypeID( 'Lyr ' ), app.charIDToTypeID( 'Ordn' ), app.charIDToTypeID( 'Trgt' ) );
var desc = executeActionGet( ref );
var list = desc.getList( stringIDToTypeID( 'targetChannels' ) );
var firstIndex = list.getReference(0).getIndex();
return list.count == 1 && firstIndex == numberOfChannels+1;
}