I've got this script here (it's alot, sorry):
var dlg = new Window('dialog', 'Templates',[1100,540,1465,720]);
dlg.btnPnl = dlg.add('panel', [20,15,345,155], 'Please select your template:');
dlg.btnPnl.Shoes = dlg.btnPnl.add('button', [20,55,300,45], 'Shoes, Hats and Belts', {name:'ok'});
dlg.btnPnl.Bags = dlg.btnPnl.add('button', [20,85,300,45], 'Bags and Pouches', {name:'ok'});
dlg.btnPnl.Shoes.onClick = extendCanvas(0.035, 1.035)
dlg.btnPnl.Bags.onClick = extendCanvas(0.221, 1.221)
dlg.show();
function extendCanvas(negative, positive) {
#target photoshop
var doc = activeDocument;
var docWidth = activeDocument.width;
var docHeight = activeDocument.height;
var docName = activeDocument.name;
var guides = activeDocument.guides;
// If width is longer than height, extend height
if(docHeight/ docWidth < 1.044) {
app.preferences.rulerUnits = Units.PIXELS
app.preferences.typeUnits = TypeUnits.PIXELS
var stepOne = docWidth * 1.044;
var stepTwo = stepOne * negative; // NEGATIVE
var stepThree = stepOne - stepTwo;
var newHeight = stepThree
doc.resizeCanvas(null, UnitValue(stepThree, "px"), AnchorPosition.BOTTOMCENTER)
doc.guides.add(Direction.HORIZONTAL, stepThree)
doc.resizeCanvas(null, UnitValue(stepOne, "px"), AnchorPosition.TOPCENTER)
doAction('[White Layer & Move]','Line Action')
// If height is longer than width, extend width
} else if(docWidth/docHeight < 0.957) {
app.preferences.rulerUnits = Units.PIXELS
toSubtract = docHeight * negative; // NEGATIVE
newHeight = docHeight - toSubtract;
app.preferences.rulerUnits = Units.PIXELS
app.preferences.typeUnits = TypeUnits.PIXELS
doc.resizeCanvas(UnitValue(docHeight * 0.957, "px"), null, AnchorPosition.BOTTOMCENTER)
doc.guides.add(Direction.HORIZONTAL, docHeight)
var docWidth = doc.width;
var newHeight = docHeight * positive; //POSITIVE
var newWidth = docWidth * positive; //POSITIVE
doc.resizeCanvas(UnitValue(newWidth, "px"), null, AnchorPosition.TOPCENTER)
doc.resizeCanvas(null, UnitValue(newHeight, "px"), AnchorPosition.TOPCENTER)
doAction('[White Layer & Move]','Line Action')
}
dlg.close();
}
And it works great when I don't have just the one function extendCanvas with its parameters and instead have two separate functions for both Shoes and Bags and each onClick calls them. For some reason though, when I consolidate them into one and add parameters to a function in an onClick, when I run the script it just completely ignores the dlg (it doesn't display) and just runs the function instead (incorrectly too, as the final canvas size is over so slightly off).
I'm completely baffled and would really appreciate some help.
Thanks in advance!
Add your click handlers like this: