#target photoshop
app.bringToFront();
function showDialog () {
// DIALOG
// ======
var dialog = new Window("dialog", "Save User Settings");
dialog.orientation = "row";
dialog.alignChildren = ["center","top"];
dialog.spacing = 10;
dialog.margins = 16;
// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"});
group1.orientation = "column";
group1.alignChildren = ["left","center"];
group1.spacing = 10;
group1.margins = 0;
dialog.checkbox1 = group1.add("checkbox", undefined, undefined, {name: "checkbox1"});
dialog.checkbox1.text = "Group Layers";
dialog.checkbox1.value = checkbox1;
dialog.checkbox1.alignment = "left";
dialog.radiobutton1 = group1.add("radiobutton", undefined, undefined, {name: "radiobutton1"});
dialog.radiobutton1.text = "Add Mask";
dialog.radiobutton1.value = radiobutton1;
dialog.radiobutton1.alignment = "left";
dialog.radiobutton2 = group1.add("radiobutton", undefined, undefined, {name: "radiobutton2"});
dialog.radiobutton2.text = "Invert Mask";
dialog.radiobutton2.value = radiobutton2;
dialog.radiobutton2.alignment = "left";
dialog.radiobutton3 = group1.add("radiobutton", undefined, undefined, {name: "radiobutton3"});
dialog.radiobutton3.text = "Omit Mask";
dialog.radiobutton3.value = radiobutton3;
dialog.radiobutton3.alignment = "left";
// GROUP2 OK/CANCEL
// ======
var group2 = dialog.add("group", undefined, {name: "group2"});
group2.orientation = "column";
group2.alignChildren = ["left","center"];
group2.spacing = 10;
group2.margins = 0;
var button1 = group2.add("button", undefined, undefined, {name: "button1"});
button1.text = "OK";
button1.alignment = ["fill","center"];
// button1.onClick = function(){
// main(checkbox1,radiobutton1,radiobutton2,radiobutton3);
// };
var button2 = group2.add("button", undefined, undefined, {name: "button2"});
button2.text = "Cancel";
button2.alignment = ["fill","center"];
//update the params and save them off on close
function updateParams() {
checkbox1 = dialog.checkbox1.value;
radiobutton1 = dialog.radiobutton1.value;
radiobutton2 = dialog.radiobutton2.value;
radiobutton3 = dialog.radiobutton3.value;
};
dialog.onClose = function() {
updateParams();
saveSettings();
};
button2.onClick = function () { this.parent.close(0); return; };
button1.onClick = function () {
updateParams();
//main(checkbox1,radiobutton1,radiobutton2,radiobutton3);
this.parent.close(0);
};
dialog.center();
dialog.show();
}
// END DIALOG
// ====
function loadSettings() {
//check for previously saved dialog options
exportSettings = app.getCustomOptions(settingsID);
if(exportSettings.hasKey (checkbox1ID))
checkbox1 = exportSettings.getBoolean (checkbox1ID);
if(exportSettings.hasKey (radiobutton1ID))
radiobutton1 = exportSettings.getBoolean (radiobutton1ID);
if(exportSettings.hasKey (radiobutton2ID))
radiobutton2 = exportSettings.getBoolean (radiobutton2ID);
if(exportSettings.hasKey (radiobutton3ID))
radiobutton3 = exportSettings.getBoolean (radiobutton3ID);
}
function saveSettings() {
//save defaults
var newExportSettings = new ActionDescriptor();
newExportSettings.putBoolean (checkbox1ID, checkbox1);
newExportSettings.putBoolean (radiobutton1ID, radiobutton1);
newExportSettings.putBoolean (radiobutton2ID, radiobutton2);
newExportSettings.putBoolean (radiobutton3ID, radiobutton3);
app.putCustomOptions(settingsID,newExportSettings,true);
}
// Settings.
var checkbox1 = true;
var radiobutton1 = false;
var radiobutton2 = false;
var radiobutton3 = false;
//IDs for custom option saving / loading
const settingsID = stringIDToTypeID("exportOptions");
const checkbox1ID = stringIDToTypeID("checkbox1");
const radiobutton1ID = stringIDToTypeID("radiobutton1");
const radiobutton2ID = stringIDToTypeID("radiobutton2");
const radiobutton3ID = stringIDToTypeID("radiobutton3");
//try and load previous settings
var testDoc = app.activeDocument;
var exportSettings;
try {
exportSettings = app.getCustomOptions(settingsID);
} catch (e) {
saveSettings();
}
if(typeof exportSettings == "undefined") {
saveSettings();
}
////////////////
// MAIN
////////////////
main();
function main () {
loadSettings();
showDialog();
// alert(checkbox1.value);
// alert(radiobutton1.value);
// alert(radiobutton2.value);
// alert(radiobutton3.value);
}