From 2d6983e014119918b98e9249d72f574d1d8744e7 Mon Sep 17 00:00:00 2001 From: yorch Date: Thu, 19 Mar 2015 10:51:04 -0700 Subject: [PATCH] Now the button calls to a reference of the tool from this.yTool, to be able to access its methods --- yScripts/y_colorProbe.jsx | 191 ++++++++++++++++++++++---------------- 1 file changed, 111 insertions(+), 80 deletions(-) diff --git a/yScripts/y_colorProbe.jsx b/yScripts/y_colorProbe.jsx index 51b3c5d..4784a5c 100755 --- a/yScripts/y_colorProbe.jsx +++ b/yScripts/y_colorProbe.jsx @@ -1,89 +1,120 @@ -yColorProbe_data = new Object(); +#include "../yScripts/y_JSExtensions.jsx"; +#include "usefulFunctions.jsx"; -yColorProbe_data.scriptName = 'yColorProbe'; -yColorProbe_data.scriptDesc = 'Creates a Null that will Sample the selected layer within the specified radius.'; -yColorProbe_data.scriptVer = '0.2a'; -yColorProbe_data.webLink = 'yorchnet.com'; - -//if yToolBox Exists add it to its tool list. -if (typeof(YTB)!=='undefined'){ - YTB.tools.push(yColorProbe_data); - - //it should be called from toolbox. - /* yColorProbe_data.buttonWidth=76; - 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+"' }"; - +function YColorProbe() +{ + this.info = + { + 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() + { + + 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']\ + },\ + }\ + }"; } - -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(){ + 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. - app.beginUndoGroup('Create ColorProbe'); - - try - { + try + { sel = app.project.activeItem.selectedLayers[0]; - } - catch (err) - { + } + 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' + 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(); } - - //--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//-------- - -function build_yColorProbe_data_UI(){ - yColorProbe_data.window = new Window ( yColorProbe_data.res); - yColorProbe_data.window.show(); - } -yColorProbe_data.activate =yColorProbe ; + + 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'){ - yColorProbe_data.activate(); - }else{ - } +if (typeof(YTB)=='undefined') +{ + yColorProbe = new YColorProbe(); + yColorProbe.activate(); +} +else +{ + YTB.addTool(new YColorProbe()); +}