// チェックボックスサンプル //--------------------------2004.12.26 新瀬 進(http://www.os.rim.or.jp/~furu/) var opt = null; // メイン===================================================================== opt = loadPreference( initPreference() ); var selectDir = new createBuilderDialog(opt); initializeBuilder(selectDir); if(runBuilder(selectDir)){ changePreference(selectDir, opt); savePreference(opt); runProcessing(opt); } selectDir = null; opt = null; // =========================================================================== // =========================================================================== // パラメータ(初期設定)===================================================== function initPreference(){ var configPath = "~\\Photoshop Scripting Temp"; var configFolder = new Folder(configPath); if(!configFolder.exists){ configFolder.create(); } var prefer = new Array(); prefer["cfg"] = configPath + "\\checkbox.cfg"; prefer["left"] = "0"; prefer["top"] = "0"; prefer["center"] = "true"; prefer["check"] = "false"; return prefer; } // =========================================================================== // ダイアログ(デザイン作成)================================================= function createBuilderDialog(prefer){ var x = Number(prefer["left"]); var y = Number(prefer["top"]); var dlg = new Window('dialog', 'チェックボックス',[x,y,x+400,y+106]); dlg.pnl = dlg.add('panel', [16,8,384,50], '選択してください'); dlg.pnl.cb = dlg.pnl.add('checkbox',[16,16,352,36], '連続処理を行う'); dlg.cancelBtn = dlg.add('button',[200,66,284,90], 'キャンセル', {name:'cancel'}); dlg.buildBtn = dlg.add('button',[300,66,384,90], '実行', {name:'ok'}); if(prefer["center"] == "true"){ dlg.center(); } if(prefer["check"] == "true"){ dlg.pnl.cb.value = true; } return dlg; } // ダイアログ(ボタンを押したときなどの動作設定)============================= function initializeBuilder(builder){ with(builder){ cancelBtn.onClick = function(){ this.parent.close( false ); }; buildBtn.onClick = function(){ this.parent.close( true ); }; } } // ダイアログ(起動・実行)=================================================== function runBuilder(builder){ return builder.show(); } // =========================================================================== // パラメータ(変更)========================================================= function changePreference(builder, prefer){ prefer["left"] = builder.bounds.left; prefer["top"] = builder.bounds.top; prefer["center"] = "false"; prefer["check"] = builder.pnl.cb.value; } // パラメータ(ロード)======================================================= function loadPreference(prefer){ var str,preStr; var preferFile = new File(prefer["cfg"]); preferFile.open("r"); while(true){ str = preferFile.readln(); if(preferFile.eof){ break; } preStr = str.split('='); prefer[preStr[0]] = preStr[1]; } preferFile.close(); return prefer; } // パラメータ(セーブ)======================================================= function savePreference(prefer){ var key; var preferFile = new File(prefer["cfg"]); preferFile.open("w"); for(key in prefer){ preferFile.writeln( key + "=" + prefer[key]); } } // =========================================================================== // 実行したい処理============================================================= function runProcessing(prefer){ alert(prefer["check"]); }