DCL:GRPH1:SLPACK: Layout Routines
This is a subroutine package that enables you to set multiple workstation viewports in a single screen by dividing the machine-dependent graphics display area.
The main subroutines contained in this package are the following.
By first calling slinit, the frame is set to the maximum size. However, since slinit is called internally in sgopn (see Section 2.4.1), the user does not have to call it directly. This maximum-sized frame is called the level-1 frame. If no other routines in the SLPACK is called, this frame will be the workstation viewport. Furthermore, by using slsize or slform, the level-1 frame can be reset to preferred dimensions.
Next, margins (blank borders) of a frame can be set using slmgn. The new frame will be the area inside the margins. By slrat, you can set margins by specifying the aspect ratio. Text (titles) can be placed in the margins only in level-1 frames. The text is set using slsttl.
To have more than 2 workstation viewports in a page, call subroutine sldiv to divide the level-1 frame. You must specify the order and the number of sections of the workstation viewport. Each section is called the level-2 frame. By calling slmgn or slrat again, margins can be set for all level-2 frames. A frame may be divided using sldiv up to 2 times. In other words, the highest level of frames is level-3. The sgfrm (See Section 2.4.2) treats the frames set by the above method as workstation viewports, and defines the frames consecutively, placing page breaks when necessary.
Basically, these routines must be called between the routine sgopn called first and sgfrm. However, slsttl can be called after sgfrm, and this becomes effective after the next page break.
There is also a subroutine for drawing the frame border using solid lines or corner marks according to the information managed by GRPH1.
The internal variables used by SLPACK is handled by sgpget/sgpset.
Internally, these subroutines use a COMMON block named the slblk1. The user must not use an external procedure or a COMMON block with this name.