Skip to content

Instantly share code, notes, and snippets.

@monokano
Last active September 15, 2023 04:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save monokano/2b25a42ded3898cc560ab161c101ba10 to your computer and use it in GitHub Desktop.
Save monokano/2b25a42ded3898cc560ab161c101ba10 to your computer and use it in GitHub Desktop.
InDesignドキュメントの「レイアウトグリッドにスナップ」をON/OFFするJavaScript v3
// 「レイアウトグリッドにスナップ」をON/OFFする v3
// ドキュメントの設定を変更するので、ドキュメントが開かれているか確認する
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, ["Close", buttonText], 1);
if(result===1){
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

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

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

@monokano
Copy link
Author

v3でボタンを逆にしました。

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