【InDesign】EDI COLOR機能を再現(2)現在の選択数を表示
シリーズ第二弾。続く時は一気なんですけどねえ、ブログって…←
第一弾はこちら
Adobeソフトで、みんなも愛用しているであろうコントロール。EDICOLORではステータスと呼びます。
そう、選択数の表示。これがInDesign情報パネルには、ナイッッ
自分の複数選択クリックに自信がない時って、ありますよね。 えっ、ない?
私はテキストを部分的に「選択順」にまとめて書き出すスクリプトを多用するので、数の確認にこれが非常に有用なのです。 その節は鯵ぼんさん、大変大変お世話になりました
取得は簡単として、どう表示させるか…
したら、やはり世の中先人がいるのですよ。
いつものあるふぁ(仮)さん。
ここ、これです丸ごと頂きます、いつもありがとうございます(一方的に)←
------------------以下、記述------------------
//DESCRIPTION:現在の選択数を表示パレット(らーで閣下)
#targetengine "InDesign"
var w0 = new Window("palette","選択数");
var myCount = w0.add("statictext",[50,100,160,110],"選択数:0")
var ev0 = app.addEventListener("afterSelectionChanged", function(ev)
{
try {
var mySel = app.selection;
if (mySel.length == 0)
{ myCount.text= "選択数:0"; return; }
else if (mySel.length == 1)
{ myCount.text= "1:" + mySel[0].constructor.name; return; }
else { myCount.text = mySel.length; }
}catch(e){}
})
w0.onClose = function()
{ ev0.remove() }
w0.show();
------------------ここまで------------------
tryする意味はあまり無さげに思えますが、まあ一応… Startup Scripts に入れる入れないは自由。必要な時に実行して隅に追いやっておけばOK。邪魔になればバツで閉じるだけ。
Startupにパレットを仕込むと、私の環境では物により場合により起動でモタついて、固まってしまうんですよね。
※Startup Scripts とは… ggってみて下さい(毎度)←
var mySel = app.selection;
は、ev.target.selection にしなくても狙った挙動になってはいるけど、良くないんだろうか? 特に問題なさげなんだけれど。
各属性:
- 文字枠… TextFrame
- 長方形(画像枠含む)… Rectangle
- 楕円… Oval
- 多角形(三角など)… Polygon
- 線… GraphicLine
- (画像枠の中の)画像(ビットマップ)… image
- (画像枠の中の)EPS… EPS
- (画像枠の中の)PDF… PDF ※多分aiも
- グループ化されたオブジェクト… Group
- ガイド線… Guide
- (テキスト入力モード)カーソルを立てた状態… InsertionPoint
- (テキスト入力モード)テキストを1字選択時… charactor
- (テキスト入力モード)テキストを2字以上… Text
- (テキスト入力モード)表全体の選択時… Table
- (テキスト入力モード)表の行・列・セル選択時… Cell
※テキスト入力モード・表の時、Countは「1」固定(現状)。まあそれは、情報パネルに詳しく載るので
印刷で使うのは、このくらいでしょうか。
詳しくは以下の各項目を参照下さい。
変数で日本語表示に仕込む事もできますが、この機能を有り難がってるお客様(&同僚)が嘗てなかったので()私が分かればいいです、これは、、
charactor 1w選択時に16進数を取得させれば、変換してUnicodeを属性として表示させる事も可能になりますね。そこまで作り込む根性が私にあれば、ですが (^^; それは情報パネルに表示されていますし、最小限に抑えた小さいパレットの方が、作業の邪魔にならない気もします。ウチ、小さなモニタ1つしか与えて貰えないし…
ああ、そういえば4Kディスプレイとかだったら、フォントサイズどうなるんでしょう。身の回りに実機がないので、確認ができません。
アイコン表示など取り入れて更に視認性を上げるとなると、プラグインとして完全に新しく作る必要があり、新しい知識も更に更に必要になります。。 多分やりませんできません
※プラグインはInDesignの細かいバージョンアップ毎に自身も対応が必要になるので、汎用性の高いjsxと比べ管理も大変になります。