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

renaissance
yorch 11 years ago
parent 3c12bdfb2d
commit 2d6983e014

@ -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",
version : 0.0,
stage : "development",
description : "Creates a Null that will Sample the selected layer within the specified radius.",
url : "yorchnet.com"
};
this.appearence =
{
buttonHeight : 30,
buttonWidth : 126
};
this.resources =
{
icon : new File('yNet.png'),
};
this.init = function init()
{
//if yToolBox Exists add it to its tool list. this.btnLauyout =
if (typeof(YTB)!=='undefined'){ "button\
YTB.tools.push(yColorProbe_data); {\
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
//it should be called from toolbox. text:'" + this.info.name + "',\
/* yColorProbe_data.buttonWidth=76; helpTip:'" + this.info.description + "'\
yColorProbe_data.buttonHeight=30; }";
*/
yColorProbe_data.btnLayout = "btn_"+yColorProbe_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yColorProbe_data.scriptName+"', helpTip:'"+yColorProbe_data.scriptDesc+"' }";
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....
yColorProbe_data.res = "window { \
type:'palette' , text:'"+yColorProbe_data.scriptName+' '+yColorProbe_data.scriptVer+"',\
\
\
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. //It works with Sampled layers at a 100% scale only.
app.beginUndoGroup('Create ColorProbe'); try
{
try
{
sel = app.project.activeItem.selectedLayers[0]; sel = app.project.activeItem.selectedLayers[0];
} }
catch (err) catch (err)
{ {
sel = undefined; sel = undefined;
} }
myNull = app.project.activeItem.layers.addNull(); myNull = app.project.activeItem.layers.addNull();
myNull.transform.anchorPoint.setValue([50,50]); myNull.transform.anchorPoint.setValue([50,50]);
myNull.name = yUniStr('colorProbe'); //Generates a Unique Name by adding numbers at the end of the main string. 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 = myNull("Effects").addProperty("Layer Control");
layerCTRL.name='sampledLayer'; layerCTRL.name='sampledLayer';
colorCTRL = myNull("Effects").addProperty("Color Control"); colorCTRL = myNull("Effects").addProperty("Color Control");
colorCTRL.name='outColor'; colorCTRL.name='outColor';
radiusCTRL = myNull("Effects").addProperty("Slider Control"); radiusCTRL = myNull("Effects").addProperty("Slider Control");
radiusCTRL.name ='radius'; radiusCTRL.name ='radius';
myNull("Effects")("radius")('Slider').setValue(5); myNull("Effects")("radius")('Slider').setValue(5);
colExp = 'myLayer = thisLayer("Effects")("sampledLayer")("Layer");\ colExp = 'myLayer = thisLayer("Effects")("sampledLayer")("Layer");\
p = thisLayer.toWorld(thisLayer.transform.anchorPoint);\ p = thisLayer.toWorld(thisLayer.transform.anchorPoint);\
r = thisLayer("Effects")("radius")("Slider");\ r = thisLayer("Effects")("radius")("Slider");\
myLayer.sampleImage(p, radius = [r, r], postEffect=true, t=time)'; myLayer.sampleImage(p, radius = [r, r], postEffect=true, t=time)';
myNull("Effects")('outColor')('Color').expression=colExp; myNull("Effects")('outColor')('Color').expression=colExp;
myNull.label=2; myNull.label=2;
myNull.source.height=30; myNull.source.height=30;
myNull.source.width=30; myNull.source.width=30;
myNull.anchorPoint=(15,15); myNull.anchorPoint=(15,15);
if(sel!==undefined){ if(sel!==undefined){
myNull("Effects")('sampledLayer')(1).setValue(sel.index); myNull("Effects")('sampledLayer')(1).setValue(sel.index);
} }
app.endUndoGroup();
return 'ok' app.endUndoGroup();
} }
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//-------- this.activate = this.yMainFunction;
function build_yColorProbe_data_UI(){ this.init();
yColorProbe_data.window = new Window ( yColorProbe_data.res); return this;
yColorProbe_data.window.show(); }
}
yColorProbe_data.activate =yColorProbe ;
//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());
}

Loading…
Cancel
Save