ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/QsnCrtWin.htm

1373 lines
44 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Create a Window (QsnCrtWin) API</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- DSMMST1 SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 29 Jan 1999 at 16:05:09 -->
<!-- This file has undergone html cleanup June 2002 by JET -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File Edited November 2001 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Create a Window (QsnCrtWin) AP</h2>
<div class="box" style="width: 75%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Window description</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Length of window description</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Omissible Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">3</td>
<td align="left" valign="top" width="50%">User extension information</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Length of user extension information</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Start window</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(1)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Low-level environment description</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">Length of low-level environment description</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">Window handle</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Returned Value:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%"></td>
<td align="left" valign="top" width="50%">Window handle</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Service Program: QSNAPI<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Create a Window (QsnCrtWin) API creates a window and returns a handle
for that window. The window must be deleted using the Delete Low-Level
Environment (QsnDltEnv) API. Whenever a window is made current, the window mode
is set to the usable area of the window.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Exit Routine Authority</em></dt>
<dd>*EXECUTE</dd>
</dl>
<br>
<h3><a name="Header_466">Required Parameter Group</a></h3>
<dl>
<dt><strong>Window description</strong></dt>
<dd>INPUT; CHAR(*)
<p>The window description defines the attributes for the window. The format of
the window description is shown in <a href="#HDRWNDESC">Format of the Window
Description</a>.</p>
</dd>
<dt><strong>Length of window description</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the window description parameter.</p>
</dd>
</dl>
<br>
<h3><a name="Header_467">Omissible Parameter Group</a></h3>
<dl>
<dt><strong>User extension information</strong></dt>
<dd>INPUT; CHAR(*)
<p>The user extension information is used to associate data and exit routines
with the window. This parameter is required if the length of user extension
information parameter is supplied. This essentially enables the object-oriented
programming concept of inheritance, allowing the window to be extended in a
natural way. The user extension information cannot be changed once the window
has been created. The format of this parameter is shown in <a href="#HDRWNEXT">
Format of the Window User Extension Information</a>.</p>
</dd>
<dt><strong>Length of user extension information</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the user extension information parameter.</p>
</dd>
<dt><strong>Start window</strong></dt>
<dd>Input; CHAR(1)
<p>Whether the window should be displayed on the screen when it is allocated.
The possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">The window is not displayed on the screen when it is
allocated. You must use the Start a Window (QsnStrWin) API to start the
window.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">The window is displayed on the screen when it is allocated.
This is the default if this parameter is omitted.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Low-level environment description</strong></dt>
<dd>INPUT; CHAR(*)
<p>The low-level environment description defines the operating environment for
low-level operations used to create and manipulate the window. This parameter
is required if the length of the low-level environment description parameter is
supplied. The format of the low-level environment description is shown in <a
href="QsnCrtEnv.htm#HDRLLDESC">Format of the Low-Level Environment
Description</a>. If this parameter is omitted, a low-level environment will be
created with default values.</p>
</dd>
<dt><strong>Length of low-level environment description</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the low-level environment description parameter.</p>
</dd>
<dt><strong>Window handle</strong></dt>
<dd>OUTPUT; BINARY(4)
<p>The variable containing the handle for the window created after the
QsnCrtWin API has completed. This handle can be used across activation groups
if the activation group in which the handle was created is still active.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>. If this
parameter is omitted, diagnostic and escape messages are issued to the
application.</p>
</dd>
</dl>
<br>
<h3>Returned Value</h3>
<dl>
<dt><strong>Window handle</strong></dt>
<dd>OUTPUT; BINARY(4)
<p>This API returns the value for the window handle parameter or a -1 if an
error occurred during processing.</p>
</dd>
</dl>
<br>
<h3>Restrictions</h3>
<p>Windows where the associated low-level environment indicates DBCS support
cannot be resized. GUI windows must fit within the screen boundary. This
includes the leading left border attribute and the center border continuation
attribute. GUI windows must have a border and the associated left and center
border attributes for the left and center borders. The concept of current and
noncurrent window border attributes does not apply to GUI windows. No
error-checking is performed for GUI-specific fields. The fields are passed to
the control unit, as specified, and any errors will be detected by the control
unit.</p>
<br>
<h3><a name="HDRWNDESC">Format of the Window Description</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Row location of upper left corner of
window border</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Column location of upper left corner of window
border</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of rows within the window</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of columns within the window</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Minimum number of rows within the window</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Minimum number of columns within the window</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum number of rows within the window</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum number of columns within the window</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Full-screen flag for the window</td>
</tr>
<tr>
<td align="center" valign="top">33</td>
<td align="center" valign="top">21</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Window display attributes for a monochrome
display</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Window display attributes for a color
display</td>
</tr>
<tr>
<td align="center" valign="top">39</td>
<td align="center" valign="top">27</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Border flag for the window</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Border attributes flag for the window</td>
</tr>
<tr>
<td align="center" valign="top">41</td>
<td align="center" valign="top">29</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Leading attribute flag for the window</td>
</tr>
<tr>
<td align="center" valign="top">42</td>
<td align="center" valign="top">2A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">center continuation attribute flag for the
window</td>
</tr>
<tr>
<td align="center" valign="top">43</td>
<td align="center" valign="top">2B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Message line flag for the window</td>
</tr>
<tr>
<td align="center" valign="top">44</td>
<td align="center" valign="top">2C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Upper left border character</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">top border character</td>
</tr>
<tr>
<td align="center" valign="top">46</td>
<td align="center" valign="top">2E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Upper center border character</td>
</tr>
<tr>
<td align="center" valign="top">47</td>
<td align="center" valign="top">2F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">left border character</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">center border character</td>
</tr>
<tr>
<td align="center" valign="top">49</td>
<td align="center" valign="top">31</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Lower left border character</td>
</tr>
<tr>
<td align="center" valign="top">50</td>
<td align="center" valign="top">32</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">bottom border character</td>
</tr>
<tr>
<td align="center" valign="top">51</td>
<td align="center" valign="top">33</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Lower center border character</td>
</tr>
<tr>
<td align="center" valign="top">52</td>
<td align="center" valign="top">34</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">GUI support flag for the window</td>
</tr>
<tr>
<td align="center" valign="top">53</td>
<td align="center" valign="top">35</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Flag byte 1 (GUI only)</td>
</tr>
<tr>
<td align="center" valign="top">54</td>
<td align="center" valign="top">36</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Flag byte 2 (GUI only)</td>
</tr>
<tr>
<td align="center" valign="top">55</td>
<td align="center" valign="top">37</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved (GUI only). The default is X'00'.</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Border flags (GUI only)</td>
</tr>
<tr>
<td align="center" valign="top">57</td>
<td align="center" valign="top">39</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Window title flags (GUI only)</td>
</tr>
<tr>
<td align="center" valign="top">58</td>
<td align="center" valign="top">3A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Monochrome title attribute</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Color title attribute</td>
</tr>
<tr>
<td align="center" valign="top">60</td>
<td align="center" valign="top">3C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved (GUI only). The default is X'00'.</td>
</tr>
<tr>
<td align="center" valign="top">61</td>
<td align="center" valign="top">3D</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved. This field must be set to X'00'.</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to title text</td>
</tr>
<tr>
<td align="center" valign="top">68</td>
<td align="center" valign="top">44</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of title text</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Reserved. This field must be set to X'00'.</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Title text</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p>In the following descriptions, the default value refers to the value set by
the Initialize Window Description (QsnInzWinD) API.</p>
<p>The GUI-only fields in the following descriptions refer to fields within the
data stream for the Create Window command major and minor structures. See the
5494 Remote Control Unit Functions Reference, SC30-3533, manual for
details.</p>
<p><strong>Border attributes flag for the window.</strong> Whether or not the
window border has left and center border attributes. (See <a href=
"dsm2d.htm#FIGWINPIC1">DSM Window Layout</a> in Window Services APIs.) The
possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Window border has no attributes.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Window border has attributes. This is the default.</td>
</tr>
</table>
<p>For GUI windows, 1 must be specified.</p>
<p><strong>Border flag for the window.</strong> This flag indicates whether or
not the window has a border. (See <a href="dsm2d.htm#FIGWINPIC1">DSM Window
Layout</a> in Window Services APIs.) The possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Window has no border.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Window has a border. This is the default.</td>
</tr>
</table>
<p>If this field is set to 0, the border attributes are not written to the
screen, regardless of the values of the other fields.</p>
<p>For GUI windows, 1 must be specified.</p>
<p><strong>Border flags (GUI only).</strong> Determines if border presentation
characters are used (byte 3 of the border presentation minor structure of the
GUI Create Window command). The default is X'80'.</p>
<p><strong>Bottom border character.</strong> The character used for the bottom
border. The default is X'00' for all border characters. The default border
character used for non-GUI windows is '.'. For GUI windows, the default GUI
character is used.</p>
<p><strong>Color title attribute.</strong> The display attribute to precede the
title on a color display. The default is X'20'. If this attribute is not valid,
it is ignored.</p>
<p><strong>Column location of upper left corner of window border.</strong> The
column number of the upper left corner of the window. If the window has a
leading window attribute, the first window column is two greater than the value
specified in this field; otherwise, it is one greater. This must be a positive
integer value greater than or equal to 0. For GUI windows, the minimum value
must be 2. Otherwise, it must be a positive integer value greater than or equal
to 0. For non-GUI windows, if 0 or 1 is specified, the left border of the
window or the leading border attribute, respectively, will not be displayed on
the screen unless the window is moved. The default value is such that the
maximum-sized window will be displayed, with border and attributes, given the
other window description attributes (for example, window border attributes). If
the window is a full-screen window, this field is ignored.</p>
<p><strong>Flag byte 1 (GUI only).</strong> Byte 5 of the GUI Create Window
command major structure. The default is X'00'.</p>
<p><strong>Flag byte 2 (GUI only).</strong> Byte 6 of the GUI Create Window
command major structure. The default is X'00'.</p>
<p><strong>Full-screen flag for the window.</strong> Indicates whether or not
this is a full-screen window. (A full-screen window cannot be moved or
resized.) The possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Window is not a full-screen window. This is the default.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Window is a full-screen window.</td>
</tr>
</table>
<p><strong>GUI support flag for the window.</strong> This flag indicates
whether or not GUI support should be used to build the window if the underlying
device supports it. GUI windows always include a leading and trailing border
attribute. The possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Do not use GUI support.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Use GUI support if the underlying device supports it. This is
the default.</td>
</tr>
</table>
<p><strong>Leading attribute flag for the window.</strong> This flag indicates
whether or not the window has a leading attribute. (See <a href=
"dsm2d.htm#FIGWINPIC1">DSM Window Layout</a> in Window Services APIs.) The
possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Window has no leading attribute byte.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Window has a leading attribute byte. This is the default.</td>
</tr>
</table>
<p>For GUI windows, 1 must be specified.</p>
<p><strong>Left border character.</strong> The character used for the left
border. The default is X'00' for all border characters. The default border
character used for non-GUI windows is ':'. For GUI windows, the default GUI
character is used.</p>
<p><strong>Length of title text.</strong> The length of the title text. The
default value is 0.</p>
<p><strong>Lower left border character.</strong> The character used for the
lower left border. The default is X'00' for all border characters. The default
border character used for non-GUI windows is ':'. For GUI windows, the default
GUI character is used.</p>
<p><strong>Lower center border character.</strong> The character used for the
lower center border. The default is X'00' for all border characters. The
default border character used for non-GUI windows is ':'. For GUI windows, the
default GUI character is used.</p>
<p><strong>Maximum number of columns within the window.</strong> A value of 0,
which is the default, indicates this value is the same as the maximum number of
columns for the device in its current mode. If the window is a full-screen
window, this field is ignored.</p>
<p><strong>Maximum number of rows within the window.</strong> A value of 0,
which is the default, indicates this value is the same as the maximum number of
rows for the device in its current mode. If the window is a full-screen window,
this field is ignored.</p>
<p><strong>Message line flag for the window.</strong> This flag indicates
whether or not the window has a message line. (See <a href=
"dsm2d.htm#FIGWINPIC1">DSM Window Layout</a> in Window Services APIs). The
possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Window does not have a message line</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Window has a message line. This is the default.</td>
</tr>
</table>
<p><strong>Minimum number of columns within the window.</strong> The minimum
value allowed is 1. This is the default. If the window is a full-screen window,
this field is ignored.</p>
<p><strong>Minimum number of rows within the window.</strong> The minimum value
allowed is 1. This is the default. If the window is a full-screen window, this
field is ignored.</p>
<p><strong>Monochrome title attribute.</strong> The display attribute to
precede the title on a monochrome display. The default is X'20'. If this
attribute is not valid, it is ignored.</p>
<p><strong>Number of columns within the window.</strong> The number of columns
in the window, from the first window column to the last. This excludes the left
and center border, and the border and window attributes. (See <a href=
"dsm2d.htm#FIGWINPIC1">DSM Window Layout</a> in Window Services APIs.) A
value of 0, which is the default, indicates this value is the maximum number of
columns that can be defined given the other window description attributes (for
example, window border attributes). The minimum allowed number of columns is 1.
If the window is a full-screen window, this field is ignored.</p>
<p><strong>Number of rows within the window.</strong> The number of rows in the
window, from the first window row to the last. This includes the message line,
if specified. (See <a href="dsm2d.htm#FIGWINPIC1">DSM Window Layout</a> in
Window Services APIs.) A value of 0, which is the default, indicates this value
is the maximum number of rows that can be defined given the other window
description attributes (for example, window message line). The minimum allowed
number of rows is 1. If the window is a full-screen window, this field is
ignored.</p>
<p><strong>Offset to title text.</strong> The offset for the window title text.
The default value is 0.</p>
<p><strong>Center border character.</strong> The character used for the center
border. The default is X'00' for all border characters. The default border
character used for non-GUI windows is ':'. For GUI windows, the default GUI
character is used.</p>
<p><strong>Center continuation attribute flag for the window.</strong> Whether
or not the window has a center continuation attribute (see <a href=
"dsm2d.htm#FIGWINPIC1">DSM Window Layout</a> in Window Services APIs). The
possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Window has no center continuation attribute byte.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Window has a center continuation attribute byte. This is the
default. For GUI windows, 1 must be specified.</td>
</tr>
</table>
<p>The center continuation attribute used is X'20', which is green for color
displays and normal attribute for monochrome displays.</p>
<p><strong>Row location of upper left corner of window border.</strong> The row
number of the upper left corner of the window. The first window row is one
greater than the value specified in this field. This must be a positive integer
value greater than or equal to 0. For GUI windows, the minimum value must be 1.
Otherwise, it must be a positive integer value greater than or equal to 0. For
non-GUI windows, if 0 is specified, the top border of the window will not be
displayed on the screen unless the window is moved. The default value is such
that the maximum-sized window will be displayed, with border and attributes,
given the other window description attributes (for example, window border
attributes). If the window is a full-screen window, this field is ignored.</p>
<p><strong>Title text.</strong> The text for the window title, which is written
in the top border of the window. If the title text is too long to fit in the
window border, it is truncated. Otherwise, it is centered in the window border.
You can add padding (extra blanks beside the text) to specify left or center
justification for the title. If an attribute is specified for the title text,
the window border attribute is placed after the title text. This field is
ignored if the window does not have a top border.</p>
<p>The default is no title text.</p>
<p><strong>Top border character.</strong> The character used for the top
border. The default is X'00' for all border characters. The default border
character used for non-GUI windows is '.'. For GUI windows, the default GUI
character is used.</p>
<p><strong>Upper left border character.</strong> The character used for the
upper left border. The default is X'00' for all border characters. The default
border character used for non-GUI windows is '.'. For GUI windows, the default
GUI character is used.</p>
<p><strong>Upper center border character.</strong> The character used for the
upper center border. The default is X'00' for all border characters. The
default border character used for non-GUI windows is '.'. For GUI windows, the
default GUI character is used.</p>
<p><strong>Window display attributes for a color display.</strong> The window
display attributes for a color display. The first character is the attribute
for the window border when the window is not current, the second for when the
window is current, and the third for the leading window attribute. All bytes
may contain the same value. The special value X'00' can be used to indicate
that no screen attribute should be used for the given character. The first
attribute is ignored for GUI windows, which only use the second attribute. If
X'00' is specified as the second attribute for a GUI window, the default GUI
border attribute will be used. Both the current and noncurrent border
attributes must be either X'00' or a valid attribute. For example, it is
incorrect to specify the current attribute field X'00' and the noncurrent
attribute field with a valid attribute.</p>
<p>The default values for these fields are those specified by the window
services mode description (see <a href="QsnSetWinAtr.htm#HDRWSDESC">Format of
the Window Services Attribute Description</a>).</p>
<p><strong>Window display attributes for a monochrome display.</strong> The
window display attributes for a monochrome display. The first character is the
attribute for the window border when the window is not current, the second for
when the window is current, and the third is for the leading window attribute.
All bytes may contain the same value. The special value X'00' can be used to
indicate that no screen attribute should be used for the given character. The
first attribute is ignored for GUI windows, which only use the second
attribute. If X'00' is specified as the second attribute for a GUI window, the
default GUI border attribute will be used. Both the current and noncurrent
border attributes must be either X'00' or a valid attribute. For example, it is
incorrect to specify the current attribute field X'00' and the noncurrent
attribute field with a valid attribute.</p>
<p>The default values for these fields are those specified by the window
services mode description (see <a href="QsnSetWinAtr.htm#HDRWSDESC">Format of
the Window Services Attribute Description</a>).</p>
<p><strong>Window title flags (GUI only).</strong> Byte 3 of the window title
minor structure of the Create Window command. The default is X'00'.</p>
<br>
<h3><a name="HDRWNEXT">Format of the Window User Extension Information</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">PTR(SPP)</td>
<td align="left" valign="top" width="60%">User data associated with window</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">PTR(PP)</td>
<td align="left" valign="top">Exit routine to call for Change Window
(QsnChgWin) API</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">PTR(PP)</td>
<td align="left" valign="top">Exit routine to call for Delete Low-Level
Environment (QsnDltEnv) API</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">PTR(PP)</td>
<td align="left" valign="top">Exit routine for QsnMovWin, Move Window by User
(QsnMovWinUsr), Resize Window (QsnRszWin), or Resize Window by User
(QsnRszWinUsr) APIs</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">PTR(PP)</td>
<td align="left" valign="top">Exit routine for Display Window (QsnDspWin)
API</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">PTR(PP)</td>
<td align="left" valign="top">Exit routine for Set Current Window
(QsnSetCurWin) API</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Exit routine for Change Window (QsnChgWin) API.</strong> This exit
routine is called after the window is changed. If the window is redrawn, it is
called after the window is redrawn.</p>
<p><strong>Exit routine for Delete Low-Level Environment (QsnDltEnv)
API.</strong> The exit routine to call when a window is deleted using the
Delete Low-Level Environment (QsnDltEnv) API.</p>
<p><strong>Exit routine for Display Window (QsnDspWin) API.</strong> The exit
routine to call immediately before the window is drawn or redrawn. The
following APIs may cause the window to be redrawn: QsnCrtWin, QsnStrWin,
QsnChgWin, QsnMovWin, QsnMovWinUsr, QsnRszWin, QsnRszWinUsr, QsnDspWin, and
QsnSetCurWin.</p>
<p><strong>Exit routine for move or resize window APIs.</strong> The exit
routine to call when window coordinates are changed using the QsnMovWin, Move
Window by User (QsnMovWinUsr), Resize Window (QsnRszWin), or Resize Window by
User (QsnRszWinUsr) APIs. This exit routine is called after the window is
redrawn.</p>
<p><strong>Exit routine for Set Current Window (QsnSetCurWin) API.</strong> The
exit routine to call whenever a window is made current by one of the following
APIs: QsnCrtWin, QsnStrWin, or QsnSetCurWin. This exit routine is called after
the window is drawn or redrawn.</p>
<p><strong>User data associated with window.</strong> A pointer to any data
that the user wants to associate with this window.</p>
<br>
<h3>Window Exit Routines</h3>
<p>Exit routines are user-supplied functions with a defined interface. The
routines are called from certain APIs and allow the programmer to attach
additional function to those APIs. For instance, if fields have been set up in
a window, a Change Coordinates exit routine could be supplied to move the
fields if the window is moved.</p>
<br>
<h3>Exit Routine Error Handling</h3>
<p>If an exception occurs during the processing of an exit routine, the
exception is ignored and processing continues. A CPFA318 will be issued as a
diagnostic message only. You can explicitly handle errors in an exit routine by
adding an exception handler to the routine.</p>
<br>
<h3>Change Window Exit Routine</h3>
<p>This exit routine, if specified on the user extension information, is called
when the window is changed. The following parameter is passed to the exit
routine:</p>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Parameter Passed to Exit Routine<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Window handle</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
</table>
<br>
</div>
<p><strong>Change Window Exit Routine Parameter</strong></p>
<dl>
<dt><strong>Window handle</strong></dt>
<dd>INPUT; BINARY(4)
<p>The window that was changed.</p>
</dd>
</dl>
<br>
<h3><a name="Header_478">Delete Window Exit Routine</a></h3>
<p>This exit routine, if specified on the user extension information, is called
when the window is deleted. The following parameter is passed to the exit
routine:</p>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Parameter Passed to Exit Routine<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top">1</td>
<td align="left" valign="top">Window handle</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
</table>
<br>
</div>
<p><strong>Delete Window Exit Routine Parameter</strong></p>
<dl>
<dt><strong>Window handle</strong></dt>
<dd>INPUT; BINARY(4)
<p>The window that was deleted.</p>
</dd>
</dl>
<br>
<h3><a name="Header_480">Change Window Coordinates Exit Routine</a></h3>
<p>This exit routine, if specified on the user extension information, is called
when the move or resize APIs are called, after the window has been successfully
moved or resized, but before the window is drawn on the screen. For this
reason, you should not use this exit routine to draw anything in the window.
The draw exit routine is called when the window is moved or resized. The
following parameters are passed to the exit routine:</p>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Parameters Passed to Exit Routine<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Window handle</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Top border offset</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Left border offset</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Bottom border offset</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Center border offset</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
</table>
<br>
</div>
<p><strong>Change Window Coordinates Exit Routine Parameters</strong></p>
<dl>
<dt><strong>Window handle</strong></dt>
<dd>INPUT; BINARY(4)
<p>The window for which the coordinates were changed.</p>
</dd>
<dt><strong>Top border offset</strong></dt>
<dd>INPUT; BINARY(4)
<p>The offset, in screen rows, from the previous top window border to the
current top window border (after the window coordinates have been changed). It
can be positive, negative, or zero, depending on how the top window border was
changed. For example, if the top border was moved down two rows, this value
would be 2; if it was moved up 4 rows, this value would be -4; if the top row
was not changed, this value would be 0.</p>
</dd>
<dt><strong>Left border offset</strong></dt>
<dd>INPUT; BINARY(4)
<p>The offset, in screen columns, from the previous left window border to the
current left window border (after the window coordinates have been changed). It
can be positive, negative, or zero, depending on how the left window border was
changed. For example, if the left border was moved two columns to the center,
this value would be 2; if it was moved 4 columns to the left, this value would
be -4, and if the left column was not changed, this value would be 0.</p>
</dd>
<dt><strong>Bottom border offset</strong></dt>
<dd>INPUT; BINARY(4)
<p>The offset, in screen rows, from the previous bottom window border to the
current bottom window border (after the window coordinates have been changed).
It can be positive, negative, or zero, depending on how the bottom window
border was changed. For example, if the border was moved down two rows, this
value would be 2; if it was moved up 4 rows, this value would be -4; if the
bottom row was not changed, this value would be 0.</p>
</dd>
<dt><strong>Center border offset</strong></dt>
<dd>INPUT; BINARY(4)
<p>The offset, in screen columns, from the previous center window border to the
current center window border (after the window coordinates have been changed).
It can be positive, negative, or zero, depending on how the center window
border was changed. For example, if the center border was moved two columns to
the center, this value would be 2; if it was moved 4 columns to the left, this
value would be -4; if the center column was not changed, this value would be
0.</p>
</dd>
</dl>
<br>
<h3><a name="Header_482">Draw Window Exit Routine</a></h3>
<p>This exit routine, if specified on the user extension information, is called
when the Display Window (QsnDspWin) API is called, before the window is drawn.
Because the exit routine is called before the window is drawn, you should only
write inside the window using the command buffer parameter. Direct operations
should not be used for the exit routine. The following parameters are passed to
the exit routine:</p>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Parameters Passed to Exit Routine<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Window handle</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Command buffer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
</table>
<br>
</div>
<p><strong>Draw Window Exit Routine Parameters</strong></p>
<dl>
<dt><strong>Window handle</strong></dt>
<dd>INPUT; BINARY(4)
<p>The window to be drawn.</p>
</dd>
<dt><strong>Command buffer</strong></dt>
<dd>INPUT; BINARY(4)
<p>The command buffer used to store the commands that re-create the window
contents. The contents of the command buffer are written to the screen along
with the window border. This allows the window and its contents to be redrawn
in a single I/O operation.</p>
</dd>
</dl>
<br>
<h3>Current Window Exit Routine</h3>
<p>This exit routine, if specified on the user extension information, is called
when the window is made current through the Set Current Window (QsnSetCurWin)
API. The following parameter is passed to the exit routine:</p>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Parameter Passed to Exit Routine<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Window handle</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
</table>
<br>
</div>
<p><strong>Current Window Exit Routine Parameter</strong></p>
<dl>
<dt><strong>Window handle</strong></dt>
<dd>INPUT; BINARY(4)
<p>A handle for the window that is made current.</p>
</dd>
</dl>
<br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="3">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td align="left" valign="top">CPF24B4 E</td>
<td valign="top">Severe error while addressing parameter list.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C1D E</td>
<td valign="top">Length specified in parameter &amp;1 not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA314 E</td>
<td valign="top">Memory allocation error.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA318 E</td>
<td valign="top">Error calling exit routine.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA327 E</td>
<td valign="top">Low level environment description value incorrect.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA31E E</td>
<td valign="top">Required parameter &amp;1 omitted.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA343 E</td>
<td valign="top">Output operation not done.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA344 E</td>
<td valign="top">The file &amp;2 in library &amp;3 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA345 E</td>
<td valign="top">The invite active flag is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA3A1 E</td>
<td valign="top">Window description value is incorrect.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA3AB E</td>
<td valign="top">The value for &amp;1 must be '0' or '1'.</td>
</tr>
</table>
<p>Additional errors may be generated by this API. They are listed in <a href=
"QsnCrtEnv.htm#HDREDERR">Error Messages</a> under the Create Low-Level
Environment (QsnCrtEnv) API.</p>
<hr>
API introduced: V2R3
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"dsm.htm">Dynamic Screen Manager APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
</body>
</html>