で、昨日の寝呆けたエントリに絡んだスクリプトを書いてみました。
CS3で動作確認。
CSは、2、3ヵ所書き直せば動きます。やりません。
※バージョン_eまでは自分用でした。大幅に書き直しました
【用法】
このような、だらしないテキストフレームがあります。
これを、昨日の角カチカチと同様の効果をもたらしつつ、CS3の誤差を極力抑えつけます。
わかりやすいように、10Qのベタ送り、詰めも入れていない状態です。
たてよこ両方やってしまうので辺カチカチと同様の結果は出せません。
横組みはどうでもよさげなので、縦組みでやってみましょう。
バウンディングボックスのハンドルをカチカチする代わりに、
任意のアンカーポイントを選択してから実行します。
例として、普通に右上を選択して実行。試しにあふれさせてからにします。
背面には確認用に元オブジェクトを複製してあります。
ついでにガイドも引いちゃおう。
ご一緒にポテトはいかがですか。いらねえ。
ダイアログが出ます。ハイイエ か イイエス で応答して下さい。
この後オーバーフローがある場合フレームを拡張する動作に移りますが、
「はい」の場合、各段落の折り返しが解消するまで字送り方向にもフレームを拡張します。
改段落、強制改行のコードで判別しています。
今回は「はい」にしてみました
で、ゴニャゴニャ動いて終了します。見た目にはほぼ一瞬ですけど。
ゴニャゴニャ動いたぶんは取り消してから最終の処理をしているので、
-回転のかかったオブジェクト
-ドキュメントの定規の開始位置がスプレッド以外
に当てはまらない場合はアンドゥ1回で戻せます。
気になる誤差はー…とりゃえずオッケーですね。
極端なフォントサイズの混在などある場合は誤動作の可能性もあります。
また、geometricBoundsで動かしているので線幅のあるフレームではきちんと動かないと思います。
今後の動きとして、
・タテのみ、ヨコのみ選択可能に
・線つきフレームの対応
・背面に配置された帯オブジェクトの連動処理(これはver_eで実装したけど書き直すので)
などがありますが、またの機会で。。貞操帯で。