Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kingtosh/8e64dcf37350a118dddc83a95b36a3fe to your computer and use it in GitHub Desktop.
Save kingtosh/8e64dcf37350a118dddc83a95b36a3fe to your computer and use it in GitHub Desktop.
InDesignドキュメントの「レイアウトグリッドにスナップ」をON/OFFするJavaScript
// 「レイアウトグリッドにスナップ」をON/OFFする
// ドキュメントの設定を変更するので、ドキュメントが開かれているか確認する
if (app.documents.length === 0) {
multiBtnDlg("レイアウトグリッドにスナップ", "ドキュメントを開いてください。", ["Close"], 0);
exit();
}
var myDoc = app.activeDocument;
var isSnap = myDoc.cjkGridPreferences.snapToLayoutGrid;
var status = "";
if ( isSnap ){
status = "ON";
}else{
status = "OFF";
}
var result = multiBtnDlg("レイアウトグリッドにスナップ", "現状:"+status, ["ON", "OFF", "Close"], 2);
if(result===0){
myDoc.cjkGridPreferences.snapToLayoutGrid = true;
}else if(result===1){
myDoc.cjkGridPreferences.snapToLayoutGrid = false;
}
// モーダルウインドウ
// https://uske-s.hatenablog.com/entry/2018/08/08/191022
function multiBtnDlg(title, text, list, focus) {
var cDlg = new Window("dialog", title);
cDlg.add("statictext", undefined, text, {multiline: true});
var btnGrp = cDlg.add("group");
var btnList = [];
for (var i=0; i<list.length; i++) {
if (i === focus) {
btnList.push(btnGrp.add("button", undefined, list[i], {name: "ok"}));
} else {
btnList.push(btnGrp.add("button", undefined, list[i]));
}
eval(
"btnList[i].onClick = function() {\n"+
" cDlg.close("+(i)+");\n"+
"}");
}
return cDlg.show();
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment