PF-Create-Panel (Value 3)

Creates a panel.

Parameters:

The panel's window is created disabled; that is, it is not visible.

PPB-First-Visible-Col pic 9(4) comp-x.
PPB-First-Visible-Row pic 9(4) comp-x.
PPB-Panel-Height pic 9(4) comp-x.
PPB-Panel-ID pic 9(4) comp.
PPB-Panel-Start-Column pic 9(4) comp-x.
PPB-Panel-Start-Row pic 9(4) comp-x.
PPB-Panel-Width pic 9(4) comp-x.
PPB-Visible-Height pic 9(4) comp-x.
PPB-Visible-Width pic 9(4) comp-x.

On Entry:

PPB-First-Visible-Col Positions the window horizontally within the panel. A value of 0 indicates that the left-hand edge of the window is positioned on the left-hand edge of the panel.
PPB-First-Visible-Row Positions the window vertically within the panel. A value of 0 indicates that the top of the window is positioned on the top edge of the panel.
PPB-Panel-Height The number of rows of text in the panel to be created.
PPB-Panel-Start-Column Positions the panel horizontally on the screen. A value of 0 indicates that the left-hand edge of the panel is positioned on the left-hand edge of the screen.
PPB-Panel-Start-Row Positions the panel vertically on the screen. A value of 0 indicates that the top of the panel is positioned on the top edge of the screen.
PPB-Panel-Width The number of columns of text in the panel to be created.
PPB-Visible-Height The number of rows of text in the visible window.
PPB-Visible-Width The number of columns of text in the visible window.

On Exit:

PPB-Panel-ID The identifying handle of the created panel. You should copy this value into a data item in the Working-Storage Section of your program and specify it when using any functions that act on this panel.

Comments:

Panels allocates an area of memory for the new panel based on its size. The number of bytes of memory used by a panel is determined as follows:

2 * PPB-Panel-Height * PPB-Panel-Width

The size of the new panel can be larger than the screen, but you must observe the following:

  • PPB-Panel-Width must not be greater than 2000.
  • PPB-Panel-Height * PPB-Panel-Width must not be greater than 65535.

Failure to observe either of these limits results in Panels error code 6 being returned.

Once you create a panel, you can change any of its variables except its width and height, using PF-Shift-Panel. The newly created panel is filled with the current backdrop character and attribute.

Example:

This example creates a panel that is 20 characters wide by 15 lines high. This panel starts on line 4, column 1 of the screen. The window into this panel starts on the first line and first column of the panel. This window is 20 characters wide by 10 rows deep.

* Panel size is 20 characters wide by 15 lines
       move 20 to ppb-panel-width.
       move 15 to ppb-panel-height.
* The window starts on screen line 4, col 1. Remember that 
* PPB-Panel-Start-Column and PPB-Panel-Start-Row specify a 
* screen position, where 0,0 is the top left corner of the 
* screen.
       move 3 to ppb-panel-start-row.
       move 0 to ppb-panel-start-column.
* The window into the panel is 20 char wide by 10 lines.
       move 20 to ppb-visible-width.
       move 10 to ppb-visible-height.
* The window starts on the first line and column of the panel.
* Remember that 0,0 is the top left corner of the panel.
       move 0 to ppb-first-visible-row.
       move 0 to ppb-first-visible-col.
* Create the panel. It is initially disabled (invisible).
       move pf-create-panel to ppb-function.
       call "PANELS" using panels-parameter-block.
       if ppb-status not = zero
*         (code to abort)
            ...
* Save the panel identifier.
       move ppb-panel-id to ws-save-panel-id.