Now the button calls to a reference of the tool from this.yTool, to be able to access its methods

This commit is contained in:
2015-03-19 10:51:04 -07:00
parent 3c12bdfb2d
commit 2d6983e014
+116 -85
View File
@@ -1,89 +1,120 @@
yColorProbe_data = new Object(); #include "../yScripts/y_JSExtensions.jsx";
#include "usefulFunctions.jsx";
yColorProbe_data.scriptName = 'yColorProbe'; function YColorProbe()
yColorProbe_data.scriptDesc = 'Creates a Null that will Sample the selected layer within the specified radius.'; {
yColorProbe_data.scriptVer = '0.2a'; this.info =
yColorProbe_data.webLink = 'yorchnet.com'; {
name : "yColorProbe",
//if yToolBox Exists add it to its tool list. version : 0.0,
if (typeof(YTB)!=='undefined'){ stage : "development",
YTB.tools.push(yColorProbe_data); description : "Creates a Null that will Sample the selected layer within the specified radius.",
url : "yorchnet.com"
//it should be called from toolbox. };
/* yColorProbe_data.buttonWidth=76; this.appearence =
yColorProbe_data.buttonHeight=30; {
*/ buttonHeight : 30,
yColorProbe_data.btnLayout = "btn_"+yColorProbe_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yColorProbe_data.scriptName+"', helpTip:'"+yColorProbe_data.scriptDesc+"' }"; buttonWidth : 126
};
} this.resources =
{
yColorProbe_data.res = "window { \ icon : new File('yNet.png'),
type:'palette' , text:'"+yColorProbe_data.scriptName+' '+yColorProbe_data.scriptVer+"',\ };
\ this.init = function init()
\ {
info: Group { \
alignment:['center','bottom'], \
icon: Image {preferredSize: [15, 18]},\
website: StaticText { text:'"+yColorProbe_data.webLink+"', alignment:['fill','center'] },\
}\
\
}";
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
// MAIN SCRIPT GOES HERE.
#include "usefulFunctions.jsx";
function yColorProbe(){
//It works with Sampled layers at a 100% scale only.
app.beginUndoGroup('Create ColorProbe');
try
{
sel = app.project.activeItem.selectedLayers[0];
}
catch (err)
{
sel = undefined;
}
myNull = app.project.activeItem.layers.addNull();
myNull.transform.anchorPoint.setValue([50,50]);
myNull.name = yUniStr('colorProbe'); //Generates a Unique Name by adding numbers at the end of the main string.
layerCTRL = myNull("Effects").addProperty("Layer Control");
layerCTRL.name='sampledLayer';
colorCTRL = myNull("Effects").addProperty("Color Control");
colorCTRL.name='outColor';
radiusCTRL = myNull("Effects").addProperty("Slider Control");
radiusCTRL.name ='radius';
myNull("Effects")("radius")('Slider').setValue(5);
colExp = 'myLayer = thisLayer("Effects")("sampledLayer")("Layer");\
p = thisLayer.toWorld(thisLayer.transform.anchorPoint);\
r = thisLayer("Effects")("radius")("Slider");\
myLayer.sampleImage(p, radius = [r, r], postEffect=true, t=time)';
myNull("Effects")('outColor')('Color').expression=colExp;
myNull.label=2;
myNull.source.height=30;
myNull.source.width=30;
myNull.anchorPoint=(15,15);
if(sel!==undefined){
myNull("Effects")('sampledLayer')(1).setValue(sel.index);
}
app.endUndoGroup();
return 'ok'
}
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
function build_yColorProbe_data_UI(){ this.btnLauyout =
yColorProbe_data.window = new Window ( yColorProbe_data.res); "button\
yColorProbe_data.window.show(); {\
} preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
yColorProbe_data.activate =yColorProbe ; 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.getInfo = function getInfo( )
{
alert("asdasdasd");
}
this.createUI = function createUI()
{
this.window = new Window ( this.res );
this.window.show() ;
}
this.yMainFunction = function yMainFunction()
{
app.beginUndoGroup(this.yTool.info.name); // yTool is a refernece to the Tool object, because THIS in this context returns the ButtonObject....
//It works with Sampled layers at a 100% scale only.
try
{
sel = app.project.activeItem.selectedLayers[0];
}
catch (err)
{
sel = undefined;
}
myNull = app.project.activeItem.layers.addNull();
myNull.transform.anchorPoint.setValue([50,50]);
myNull.name = yUniStr('colorProbe'); //Generates a Unique Name by adding numbers at the end of the main string.
layerCTRL = myNull("Effects").addProperty("Layer Control");
layerCTRL.name='sampledLayer';
colorCTRL = myNull("Effects").addProperty("Color Control");
colorCTRL.name='outColor';
radiusCTRL = myNull("Effects").addProperty("Slider Control");
radiusCTRL.name ='radius';
myNull("Effects")("radius")('Slider').setValue(5);
colExp = 'myLayer = thisLayer("Effects")("sampledLayer")("Layer");\
p = thisLayer.toWorld(thisLayer.transform.anchorPoint);\
r = thisLayer("Effects")("radius")("Slider");\
myLayer.sampleImage(p, radius = [r, r], postEffect=true, t=time)';
myNull("Effects")('outColor')('Color').expression=colExp;
myNull.label=2;
myNull.source.height=30;
myNull.source.width=30;
myNull.anchorPoint=(15,15);
if(sel!==undefined){
myNull("Effects")('sampledLayer')(1).setValue(sel.index);
}
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. //CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
if (typeof(YTB)=='undefined'){ if (typeof(YTB)=='undefined')
yColorProbe_data.activate(); {
}else{ yColorProbe = new YColorProbe();
} yColorProbe.activate();
}
else
{
YTB.addTool(new YColorProbe());
}