It works, but use at your own risk, because it's done "through the ass". ) P.S. Sorry for my english ) alert( get_selected_preset_name() ) function get_selected_preset_name() { try { var file = new File(Folder.temp.fsName + "\\" + "tmp.tpl"); save_preset(); var list1 = get_preset_list(); if (!list1) { file.remove(); return null; }; if (!del_target_preset()) { file.remove(); alert("No selected preset"); return null; }; var list2 = get_preset_list(); load_preset(); file.remove(); if (!list2) { return null; }; for (var i in list2 ) for (var n in list1 ) { if (list1 == list2) { delete list1 ; break; } } var name = ""; for (var i in list1 ) { if (list1 != undefined) { name = list1 select_preset(list1); break; } } return name; function save_preset() { try { var r = new ActionReference(); r.putProperty( charIDToTypeID( "Prpr" ), stringIDToTypeID( "toolPreset" ) ); r.putEnumerated( charIDToTypeID( "capp" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) ); var d = new ActionDescriptor(); d.putPath( charIDToTypeID( "null" ), new File(Folder.temp.fsName + "\\" + "tmp.tpl") ); d.putReference( charIDToTypeID( "T " ), r ); executeAction( charIDToTypeID( "setd" ), d, DialogModes.NO ); return true; } catch(e) { return false; } } function load_preset() { try { var r = new ActionReference(); r.putProperty( charIDToTypeID( "Prpr" ), stringIDToTypeID( "toolPreset" ) ); r.putEnumerated( charIDToTypeID( "capp" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) ); var d = new ActionDescriptor(); d.putReference( charIDToTypeID( "null" ), r ); d.putPath( charIDToTypeID( "T " ), new File(Folder.temp.fsName + "\\" + "tmp.tpl") ); executeAction( charIDToTypeID( "setd" ), d, DialogModes.NO ); return true; } catch(e) { return false; } } function select_preset(name) { try { var d = new ActionDescriptor(); var r = new ActionReference(); r.putName( stringIDToTypeID( "toolPreset" ), name ); d.putReference( charIDToTypeID( "null" ), r ); executeAction( charIDToTypeID( "slct" ), d, DialogModes.NO ); return true; } catch(e) { return false; } } function del_target_preset() { try { var r = new ActionReference(); r.putEnumerated( stringIDToTypeID( "toolPreset" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) ); var d = new ActionDescriptor(); d.putReference( charIDToTypeID( "null" ), r ); executeAction( charIDToTypeID( "Dlt " ), d, DialogModes.NO ); return true; } catch(e) { return false; } } function get_preset_list() { try { var r = new ActionReference(); r.putProperty( charIDToTypeID( "Prpr" ), stringIDToTypeID( "presetManager" ) ); r.putEnumerated( charIDToTypeID( "capp" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) ); var ret = executeActionGet(r).getList(stringIDToTypeID("presetManager")) var ok = false; for (var i = 0; i < ret.count; i++) { if (ret.getObjectType(i) == stringIDToTypeID( "toolPreset" )) { ok = true; ret = ret.getObjectValue(i).getList(stringIDToTypeID("name")); break; } } if (!ok) { alert("Damn!"); return null; } var list = new Array(); for (var i = 0; i < ret.count; i++) list.push(ret.getString(i)); return list; } catch(e) { alert(e); return null; } } } catch(e) { alert(e); } }
... View more