4.1 概要

これは, 装置に依存した図形出力表示面を分割して, 1画面のうちに互いに重なり合わない複数の ワークステーションビューポートを設定できるようにした メソッド(元サブルーチン)パッケージである.



本パッケージは, 次のような主要メソッド(元サブルーチン)からなる.

slinit 初期化をおこなう.
slsize … A4, B4などの紙の大きさで作画範囲を設定する.
slform … 縦横の実長で作画範囲を設定する.
sldiv  … 画面の分割をおこなう.
slmgn  … マージンをとる.
slrat  … 縦横比を指定してマージンをとる.
slsttl … タイトルを設定する.



まず, slinitを呼ぶことにより最大作画範囲を設定する. ただしslinitsgopn (2.4.1参照)の 中で呼ばれるので, ユーザーが直接呼ぶ必要はない. この作画可能な最大領域を第1レベル目のフレームという. SLPACKのほかのルーチンを呼ばなければ, このフレームが ワークステーションビューポートとなる. さらに, slsize, slformによってこの第1レベルの フレームを具体的な実長を持った大きさで再設定することもできる.



次に, slmgnでこのフレームにマージン(余白部分)をとることができる. マージンをとった内側が新しいフレームとなる. slratによって, フレームの縦横比を指定して マージンをとることもできる. 第1レベルのフレームに限って, このマージン部分に文字列(タイトル)を 描くことができる. この文字列の設定は, slsttlによっておこなう.



1ページの中に2つ以上のワークステーションビューポートを設定する場合, メソッド(元サブルーチン)sldivを呼ぶことにより第1レベル目のフレームを分割する. このときワークステーションビューポートを設定してゆく順序 および分割数を指定する. ここで, 分割された各部分を第2レベルのフレームという. 再びslmgnまたはslratを呼ぶことによって, 第2レベルのフレームすべてについてマージンをとることができる. sldivによる分割は2回まで可能である;すなわち第3レベルのフレームまで 設定することができる. sgfrm (2.4.2節参照)はこうやって設定したフレームを ワークステーションビューポートと考えて, つぎつぎと作画領域を定義してゆき 必要に応じて改ページの動作もおこなう.



基本的にこれらのルーチンはsgopnと最初に呼ばれるsgfrmの 間で呼ばなければならない. ただしslsttlsgfrmのあとでも呼 ぶことができて, これは次の改ページのタイミングで有効となる.



その他に, GRPH1の管理する情報にしたがって作画境界を実線枠あるいは コーナーマークを使って描くメソッド(元サブルーチン)がある.

slpvpr … ビューポートの境界を描く.
slpwwr … ワークステーションウインドウの境界を描く.
slpwvr … 最大作画領域の境界を描く.
slpvpc … ビューポートの4隅を描く.
slpwwc … ワークステーションウインドウの4隅を描く.
slpwvc … 最大作画領域の4隅を描く.



なお, SLPACKが用いる内部変数は sgpget/sgpsetが管理している.



内部的には, slblk1という名前の共通ブロックを使用している. ユーザーは同じ名前の外部手続き名・共通ブロック名を用いてはならない.