Although the Dialog Toolkit Plus dictionary shows JavaScript form, I have been unable to use the toolkit with Javascript. I hope it’s just that I’ve messed up the syntax in some way, since I haven’t found any working examples of Dialog Toolkit used with JavaScript. I’d really appreciate input from anyone who has gotten this to work.
Here’s what I have tried, commented to show what does and does not work. Copied from Script Editor.
// All of this seems to work, in that I get no error messages and the values seem plausible
var dtp = Library('Dialog Toolkit Plus');
var res = dtp.createCheckbox('do it',{bottom:0, maxWidth:100});
var check1 = res[0], theTop = res[1];
res = dtp.createField('',{placeholderText:'find',bottom:(theTop+8), fieldWidth:260});
var field1 = res[0]; theTop = res[1];
res = dtp.createField('',{placeholderText:'replace',bottom:(theTop+8), fieldWidth:260});
var field2 = res[0]; theTop = res[1];
// Works and gives a number that varies with label length (just used for testing)
var len = dtp.maxWidthForLabels(['long label','even longer label'],{controlSize:'regular size'});
// Now it gets messy
// Tested each line alone (by uncommenting it). Comment above line shows what happened.
// OK. displays an empty dialog with two buttons and the expected text
//dtp.displayEnhancedAlert('test dialog 1',{message:'no controls',buttons:['Cancel','OK'], accViewWidth:300, accViewHeight:200, accViewControls:[]});
// Error: -[NSAppleEventDescriptor superview]: unrecognized selector sent to instance 0x6000024283e0
//dtp.displayEnhancedAlert('test dialog 2',{message:'just a checkbox',buttons:['Cancel','OK'], accViewWidth:300, accViewHeight:200, accViewControls: [check1]});
// Error: -[NSAppleEventDescriptor superview]: unrecognized selector sent to instance 0x608002227280
//dtp.displayEnhancedAlert('test dialog 3',{message:'just a field',buttons:['Cancel','OK'], accViewWidth:300, accViewHeight:200, accViewControls: [field1]});
// Error: -[NSAppleEventDescriptor superview]: unrecognized selector sent to instance 0x60800222ed40
//dtp.displayEnhancedAlert('test dialog 4',{message:'two fields',buttons:['Cancel','OK'], accViewWidth:300, accViewHeight:200, accViewControls: [field1,field2]});
// Error: Parameter to -setSubviews: contained one or more duplicate entries
// (If I look at [field1,field2,check1], none seem to be duplicates)
//dtp.displayEnhancedAlert('test dialog 5',{message:'two fields and checkbox',buttons:['Cancel','OK'], accViewWidth:300, accViewHeight:200, accViewControls: [field1,field2,check1]});
// Enhanced window doesn't work at all
res = dtp.createButtons(['Cancel','OK'],{defaultButton:'OK'}); // works
var btns = res[0];
// Error: item 1 of reverse of {«class ocid» id «data optr0000000060A3150080600000» of «script», «class ocid» id «data optr00000000A032150080600000» of «script»} doesn’t understand the “frame” message.
// the above error mssage happens whether accViewControls array is [] or [check1]
//dtp.displayEnhancedWindow('test window',{buttonList:btns,accViewWidth:600,accViewHeight:400, accViewControls:[]});
// Checking values of controls created by the toolkit:
//check1 // Library("Dialog Toolkit Plus").elementsForClassCode("ocid").byId("'optr'($6061150080600000$)")
//field1 // Library("Dialog Toolkit Plus").elementsForClassCode("ocid").byId("'optr'($10AF161BFB7F0000$)")
//field2 // Library("Dialog Toolkit Plus").elementsForClassCode("ocid").byId("'optr'($E09EEA18FB7F0000$)")
//len // 107.6240234375
//btns // [Library("Dialog Toolkit Plus").elementsForClassCode("ocid").byId("'optr'($60A3150000600000$)"), Library("Dialog Toolkit Plus").elementsForClassCode("ocid").byId("'optr'($6098150040600000$)")]