mirror of
https://github.com/jorgevasquezp/AFX_yTools.git
synced 2026-09-16 19:22:42 +00:00
Converted the CornerPinOffset tool to the new model
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YCPOffset()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "YCornerPinOffset",
|
||||
version : 0.12,
|
||||
stage : "development",
|
||||
description : "Offsets each corner of a CornerPin Effect.",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
this. res =
|
||||
"window\
|
||||
{\
|
||||
type:'palette',\
|
||||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
info: Group \
|
||||
{\
|
||||
alignment:['center','bottom'],\
|
||||
icon: Image \
|
||||
{\
|
||||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
preferredSize: [15, 18]\
|
||||
},\
|
||||
website: StaticText\
|
||||
{\
|
||||
text:'" + this.info.url + "',\
|
||||
alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
res =
|
||||
"window {\
|
||||
resizeable : true\
|
||||
closeButton : true\
|
||||
text:'wtf'\
|
||||
}"
|
||||
|
||||
this.window = new Window( res );
|
||||
this.window.layout.layout(true);
|
||||
this.window.center();
|
||||
this.window.show();
|
||||
}
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
alert(this);
|
||||
|
||||
//if called from the button as opposed as from the script.
|
||||
if ( String(this) == "[object Button]" )
|
||||
{
|
||||
this.yTool.processCornerPins();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.processCornerPins();
|
||||
}
|
||||
|
||||
}
|
||||
this.getSelectedCornerPins = function getSelectedCornerPins()
|
||||
{
|
||||
/* Function that returns a list of effect objects
|
||||
that match any of the names
|
||||
specified in validCornerPinNames. */
|
||||
validCornerPinNames = ["ADBE Corner Pin","CC Power Pin"];
|
||||
|
||||
selectedLayers = app.project.activeItem.selectedLayers;
|
||||
cornerPins = [];
|
||||
for (layer=0;layer<selectedLayers.length;layer++)
|
||||
{
|
||||
myLayer = selectedLayers[layer];
|
||||
myEffects = myLayer.property("ADBE Effect Parade");
|
||||
for(effect=1;effect<=myEffects.numProperties;effect++)
|
||||
{
|
||||
for(validCornerPinName=0;validCornerPinName<validCornerPinNames.length;validCornerPinName++)
|
||||
{
|
||||
if ( myEffects.property(effect).matchName == validCornerPinNames[validCornerPinName] )
|
||||
{
|
||||
cornerPins.push(myEffects.property(effect));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return cornerPins;
|
||||
}
|
||||
this.getLayer = function getLayer(effect)
|
||||
{
|
||||
/* If given a layer's effect object
|
||||
this function returns the layer object */
|
||||
layer = effect.parentProperty.parentProperty;
|
||||
return layer;
|
||||
}
|
||||
this.addEffect = function addEffect(layer,effect_string,effect_name)
|
||||
{
|
||||
new_effect = layer.property("ADBE Effect Parade").addProperty(effect_string);
|
||||
new_effect.name = effect_name;
|
||||
return new_effect;
|
||||
}
|
||||
this.addPointControls = function addPointControls(effect)
|
||||
{
|
||||
/*calling the getLayer(effect) is resetting my effect object to null, and not allowing me to do everything in a single sitting. I think it has to do with variable scopes.*/
|
||||
local = {};
|
||||
local.effect = effect;
|
||||
base_name = local.effect.name;
|
||||
names = ["Upper Left","Upper Right","Lower Left","Lower Right"];
|
||||
|
||||
for (i=1;i<=4;i++)
|
||||
{
|
||||
expression = '\
|
||||
try\
|
||||
{\
|
||||
effect("'+base_name+'")('+(i)+')+effect("'+base_name+'_'+names[i-1]+'_'+'Offset'+'")("Point")\
|
||||
}\
|
||||
catch(err)\
|
||||
{\
|
||||
[0,0]\
|
||||
}'
|
||||
local.effect.property(i).expression = expression;
|
||||
}
|
||||
layer = this.getLayer(effect);
|
||||
for(i=0;i<=3;i++)
|
||||
{
|
||||
new_effect = this.addEffect(layer,"Point Control",base_name+"_"+names[i]+"_"+"Offset");
|
||||
new_effect.property("Point").setValue([0,0]);
|
||||
}
|
||||
}
|
||||
this.processCornerPins = function processCornerPins(){
|
||||
|
||||
app.beginUndoGroup('ySetProject');
|
||||
pins = this.getSelectedCornerPins();
|
||||
|
||||
for(pin=0;pin<pins.length;pin++)
|
||||
{
|
||||
this.addPointControls(pins[pin])
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
this.activate = this.yMainFunction;
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yCPOffset = new YCPOffset();
|
||||
yCPOffset.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YCPOffset());
|
||||
}
|
||||
Reference in New Issue
Block a user