Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
InDesignドキュメントの「レイアウトグリッドにスナップ」をON/OFFするJavaScript v2
// 「レイアウトグリッドにスナップ」をON/OFFする v2
// ドキュメントの設定を変更するので、ドキュメントが開かれているか確認する
if (app.documents.length === 0) {
multiBtnDlg("レイアウトグリッドにスナップ", "ドキュメントを開いてください。", ["Close"], 0);
exit();
}
var myDoc = app.activeDocument;
var b = myDoc.cjkGridPreferences.snapToLayoutGrid;
var status = "";
var buttonText = ""
if ( b ){
status = "ON";
buttonText = "OFF";
}else{
status = "OFF";
buttonText = "ON";
}
var result = multiBtnDlg("レイアウトグリッドにスナップ", "現状:"+status, [buttonText, "Close"], 1);
if(result===0){
myDoc.cjkGridPreferences.snapToLayoutGrid = !b;
}
// モーダルウインドウ
// 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();
};
@monokano
Copy link
Author

monokano commented Oct 29, 2021

InDesignのメニューを見なくても「レイアウトグリッドにスナップ」の現状確認ができ、ON/OFFの変更もできます。

スクリーンショット 2021-10-29 22 10 42 スクリーンショット 2021-10-29 22 10 51

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment