#target photoshop
var dlg = new Window('dialog','seleciona o ficheiro de displace');
var file = new File()
dlg.getFile = dlg.add('button',undefined,'ficheiro');
dlg.getFile.onClick = function(){
file = file.openDlg('seleciona o ficheiro de displace');
if(file.exists){dlg.close()}
}
dlg.show()
var doc = activeDocument;
var horizon = dialogValorDiplace();
var testeCaminho = file
loopreplace(doc);
function loopreplace(gp){
for(var i = 0;i<gp.layers.length;i++) {
doc.activeLayer = gp.layers;
if(doc.activeLayer.typename=='LayerSet'){
loopreplace (gp.layers);
}
else{
try{
//doc.activeLayer = gp.layers;
displaceSettings ( horizon, testeCaminho );
}
catch(e){}
}
}
}
function displaceSettings ( hori, testeCaminho ){
var idsetd = charIDToTypeID( "setd" );
var desc3067 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref1517 = new ActionReference();
var idfilterFX = stringIDToTypeID( "filterFX" );
ref1517.putIndex( idfilterFX, 1 );
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref1517.putEnumerated( idLyr, idOrdn, idTrgt );
desc3067.putReference( idnull, ref1517 );
var idfilterFX = stringIDToTypeID( "filterFX" );
var desc3068 = new ActionDescriptor();
var idFltr = charIDToTypeID( "Fltr" );
var desc3069 = new ActionDescriptor();
var idHrzS = charIDToTypeID( "HrzS" );
desc3069.putInteger( idHrzS, hori );
var idVrtS = charIDToTypeID( "VrtS" );
desc3069.putInteger( idVrtS, hori );
var idDspM = charIDToTypeID( "DspM" );
var idDspM = charIDToTypeID( "DspM" );
var idStrF = charIDToTypeID( "StrF" );
desc3069.putEnumerated( idDspM, idDspM, idStrF );
var idUndA = charIDToTypeID( "UndA" );
var idUndA = charIDToTypeID( "UndA" );
var idRptE = charIDToTypeID( "RptE" );
desc3069.putEnumerated( idUndA, idUndA, idRptE );
var idDspF = charIDToTypeID( "DspF" );
desc3069.putPath( idDspF, new File( testeCaminho ) );
var idDspl = charIDToTypeID( "Dspl" );
desc3068.putObject( idFltr, idDspl, desc3069 );
var idfilterFX = stringIDToTypeID( "filterFX" );
desc3067.putObject( idfilterFX, idfilterFX, desc3068 );
executeAction( idsetd, desc3067, DialogModes.NO );
}
function dialogValorDiplace() {
var myWindow = new Window ("dialog", "valor Displace (default -35)");
myWindow.orientation = "row";
myWindow.add ("statictext", undefined, "valor");
var myText = myWindow.add ("edittext", undefined, "");
myText.characters = 30;
myText.active = true;
myWindow.add ("button", undefined, "OK");
if (myWindow.show () == 1) return myText.text;
}