Name: WGINI   29
The routine  WGINI initializes the widget routines and creates a
main widget.
The call is:  CALL WGINI (COPT, ID)
         or:  int  wgini (const char *copt);
COPT          is a character string  that defines  how  children
              widgets are laid out in the main widget:
  = 'VERT'    means  that children  widgets are laid out  in co-
              lumns from top to bottom.
  = 'HORI'    means that  children widgets are  laid out in rows
              from left to right.
  = 'FORM'    means that the position  and size of children wid-
              gets is defined by the user with the routines SWG-
              POS, SWGSIZ and SWGWIN.
ID            is the returned widget index.  It can be used as a
              parent  widget  index  in  other  widget calls.
Name: WGFIN   29
WGFIN terminates the widget routines.  The widgets  will be dis-
played  on the screen.  After choosing OK in the Exit menu,  all
widgets are deleted  and the program  is continued after WGFIN.
After choosing  Quit  in the Exit menu,  the program is termina-
ted.
The call is:  CALL WGFIN
         or:  void wgfin ();
Name: WGBAS   29
The routine WGBAS  creates a container widget. It can be used as
a parent widget for other widgets.
The call is:  CALL WGBAS (IP, COPT, ID)
         or:  int  wgbas (int ip, const char *copt);
IP            is the index of the parent widget.
COPT          is a character string  that  can  have  the values
              'HORI',  'VERT'  and  'FORM'.  It  determines  how 
              children widgets  are  laid out  in the  container
              widget (s. WGINI).
ID            is the returned widget index.  It can be used as a
              parent widget index in other widget calls.
Name: WGPOP   29
The routine  WGPOP  creates  a popup menu in the menu bar of the
main widget,  or a popup submenu of a popup menu. Entries in the
popup menu must be created with WGAPP or WGAPPB.
The call is:  CALL WGPOP (IP, CLAB, ID)
         or:  int  wgpop (int ip, const char *clab);
IP            is the index of a widget created by WGINI,  or the
              index of another popup widget. 
CLAB          is a character string containing the title  of the
              popup menu.
ID            is the  returned widget index.   It can be used as
              a parent widget index for WGAPP or WGAPPB. 
Name: WGPOPB  29
The routine  WGPOPB creates a popup menu  in the menu bar of the
main widget, or a popup submenu of a popup menu.  WGPOPB uses an
image as title instead of a character string.
The call is:  CALL WGPOPB (IP, IRAY, NW, NH, ID)
         or:  int  wgpopb (int ip, const char *iray, int nw, 
                                                        int nh);
IP            is the index of a widget created by WGINI,  or the
              index of another popup widget. 
IRAY          is a byte  array containing  the image. Each pixel
              must be  represented  as three bytes  with the RGB
              values. 
NW, NH        is the width and height of the image.
ID            is the  returned widget index. It can be used as a
              parent widget index for WGAPP or WGAPPB. 
Name: WGAPP   29
The routine  WGAPP creates an entry in a popup menu.  The popup
menu be created with the routine WGPOP.
The call is:  CALL WGAPP (IP, CLAB, ID)
         or:  int  wgapp (int ip, const char *clab);
IP            is the index of a popup menu created with WGPOP.
CLAB          is a character string containing a label.
ID            is  the  returned  widget  index.  It  should  be
              connected with a callback routine (see SWGCBK).
Name: WGAPPB  29
The routine WGAPPB creates an image entry in a popup menu.
The call is:  CALL WGAPPB (IP, IRAY, NW, NH, ID)
         or:  int  wgappb (int ip, const char *iray, int nw, 
                                                       int nh);
IP            is the index of a popup menu created with WGPOP.
IRAY          is a byte  array containing the image. Each pixel
              must be  represented as three bytes with  the RGB
              values. 
NW, NH        is the width and height of the image.
ID            is the returned widget  index.  It should be con-
              nected with a callback routine (see SWGCBK).
Name: WGLTXT  29
The routine  WGLTXT  creates a labeled text widget.  The widget
can be used get text from the keyboard.
The call is:  CALL WGLTXT (IP, CLAB, CSTR, NWTH, ID)
         or:  int  wgltxt (int ip, const char *clab, 
                                   const char *cstr, int nwth);
IP            is the index of the parent widget.
CLAB          is a character string containing a label. It will
              be displayed on the left side of the widget.
CSTR          is a character string  that will be  displayed in
              the text widget (<= 256 characters).
NWTH          defines  the width of the text field   (0 <= NWTH 
              <= 100).  For example,  NWTH = 30 means  that the 
              width of the text field is 0.3 * widget width.  
ID            is the returned widget index.
Name: WGQUIT  29
The routine  WGQUIT creates a push button widget where the but-
ton has the same meaning as the QUIT entry in the Exit menu.
If the button is pressed, the program is terminated.
The call is:  CALL WGQUIT (IP, ID)
         or:  int  wgquit (int ip);
IP            is the index of the parent widget.
ID            is the returned widget index.
Name: WGPBUT  29
The routine WGPBUT creates a push button widget. 
The call is:  CALL WGPBUT (IP, CLAB, ID)
         or:  int  wgpbut (int ip, const char *clab);
IP            is the index of the parent widget.
CLAB          is a  character  string  that will  be used  as a
              label.
ID            is  the  returned  widget  index.  It  should  be  
              connected with a callback routine.
Note:         The status of a push button  (if it is pressed or
              not) can be requested with GWGBUT.
Name: WGPICON  29
The routine  WGPICON  creates a push button widget with an icon
as label.
The call is:  CALL WGPICON (IP, CLAB, NW, NH, CFIL, ID)
         or:  int  wgpicon (int ip, const char *clab, int nw, 
                                     int nh, const char *cfil);
IP            is the index of the parent widget.
CLAB          is a character string  that will be  displayed if
              the mouse is moved over the label.  This  feature
              is only supported on Windows.  
NW, NH        is the width  and height of the icon.  If  NW = 0
              and NH = 0,  the height  and width  is calculated
              from the icon file.
CFIL          is a filename containing the icon.
ID            is the  returned widget index.  
Name: WGPIMG   29
The routine  WGPIMG  creates a push button widget with an image
as label.
The call is:  CALL WGPIMG (IP, CLAB, IRAY, NW, NH, ID)
         or:  int  wgpimg (int ip, const char *clab, 
                             const char *iray, int nw, int nh);
IP            is the index of the parent widget.
CLAB          is a character string  that will be  displayed if
              the mouse is moved over  the label.  This feature
              is only supported on Windows.  
IRAY          is a byte  array containing the image. Each pixel
              must be  represented  as three bytes with the RGB
              values. 
NW, NH        is the width and height of the image.
ID            is the  returned widget index.  
Name: WGCMD   29
The routine  WGCMD  creates a push button widget.  A correspon-
ding system will be executed if the button is pressed. 
The call is:  CALL WGCMD (IP, CLAB, CMD, ID)
         or:  int  wgcmd (int ip, const char *clab, 
                                              const char *cmd);
IP            is the index of the parent widget.
CLAB          is a character string  that will be used as a la-
              bel.
CMD           is a  character  string  containing a system com-
              mand.
ID            is the returned  widget index.  It should be con-
              nected with a callback routine.
Name: WGLAB   29
The routine  WGLAB  creates  a label widget.  The widget can be 
used to display a character string.
The call is:  CALL WGLAB (IP, CSTR, ID)
         or:  int  wglab (int ip, const char *cstr); 
IP            is the index of the parent widget.
CSTR          is a character string that should be displayed.
ID            is the returned widget index.
Name: WGICON  29
The routine  WGICON  creates a label  widget  with  an icon  as
label.
The call is:  CALL WGICON (IP, CLAB, NW, NH, CFIL, ID)
         or:  int  wgicon (int ip, const char *clab, int nw, 
                                     int nh, const char *cfil);
IP            is the index of the parent widget.
CLAB          is a character string  that will be  displayed if
              the mouse is moved over the label.  This  feature
              is only supported on Windows.  
NW, NH        is the width  and height of the icon.  If  NW = 0
              and NH = 0,  the height  and width  is calculated
              from the icon file.
CFIL          is a filename containing the icon.
ID            is the  returned widget index.  
Name: WGIMG   29
The routine  WGIMG  creates a label  widget  with  an image  as
label.
The call is:  CALL WGIMG (IP, CLAB, IRAY, NW, NH, ID)
         or:  int  wgimg (int ip, const char *clab, 
                             const char *iray, int nw, int nh);
IP            is the index of the parent widget.
CLAB          is a character string  that will be  displayed if
              the mouse is moved over  the label.  This feature
              is only supported on Windows.  
IRAY          is a byte  array containing the image. Each pixel
              must be  represented  as three bytes with the RGB
              values. 
NW, NH        is the width and height of the image.
ID            is the  returned widget index.  
Name: WGBUT   29
The routine  WGBUT  creates a button widget.  The widget repre-
sents a  labeled button  that the  user  can turn on  or off by
clicking.
The call is:  CALL WGBUT (IP, CLAB, IVAL, ID)
         or:  int  wgbut (int ip, const char *clab, int ival);
IP            is the index of the parent widget.
CLAB          is a character string  that will be used as a la-
              bel.
IVAL          can have  the values  0 (off)  and 1 (on)  and is
              used to initialize the button.
ID            is the returned widget index.
Name: WGSTXT  29
The routine  WGSTXT  creates a scrolled widget that can be used
for text output. The text cannot not be modified.  Text entries
in the widget can be made with the routine SWGTXT.
The call is:  CALL WGSTXT (IP, NSIZE, NMAX, ID)
IP            is the index of the parent widget.
NSIZE         defines the vertical size of the widget in text
              rows.
NMAX          defines the maximal  number  of displayed entries
              in the scrolled widget. If this number is reached
              and a new entry is made,  the first  entry in the
              widget is deleted.   
ID            is the returned widget index.
Name: WGTXT   29
The routine WGTXT creates a text widget. The widget can be used
to get text from the keyboard.
The call is:  CALL WGTXT (IP, CSTR, ID)
         or:  int  wgtxt (int ip, const char *cstr);
IP            is the index of the parent widget.
CSTR          is a character string  that will be displayed  in
              the text widget (<= 256 characters).
ID            is the returned widget index.
Name: WGFIL   29
The routine WGFIL creates a file widget. The widget can be used
to get a filename from the keyboard.  The filename can be typed
directly  into the  file field  or can be selected  from a file
selection box if an entry in the File menu is chosen.
The call is:  CALL WGFIL (IP, CLAB, CFIL, CMASK, ID)
         or:  int  wgfil (int ip, const char *clab, 
                          const char *cfil, const char *cmask); 
IP            is the index of the parent widget.
CLAB          is a character string  used for  an entry  in the
              File menu.
CFIL          is a character string  that will  be displayed in
              the file widget (<= 256 characters).
CMASK         specifies the search pattern  used in determining
              the  files  to be displayed in the file selection
              box.
ID            is the returned widget index.
Name: WGLIS   29
The routine  WGLIS  creates a list widget.  This widget is used
whenever an application must present a list of names from which
the user can choose.
The call is:  CALL WGLIS (IP, CLIS, ISEL, ID)
         or:  int  wglis (int ip, const char *clis, int isel);
IP            is the index of the parent widget.
CLIS          is a character string that contains the list ele-
              ments. Elements must be separated  by the charac-
              ter '|'.
ISEL          defines the pre-selected element (>= 0).
              ISEL = 0 means that no element is selected.
ID            is the returned widget index.
Name: WGDLIS  29
The routine WGDLIS creates a dropping list widget.
The call is:  CALL WGLIS (IP, CLIS, ISEL, ID)
         or:  int  wglis (int ip, const char *clis, int isel);
IP            is the index of the parent widget.
CLIS          is a character string that contains the list ele-
              ments. Elements must be separated  by the charac-
              ter '|'.
ISEL          defines the pre-selected element (>= 0).
              ISEL = 0 means that no element is selected.
ID            is the returned widget index.
Name: WGBOX   29
The routine WGBOX creates a list widget where the list elements
are displayed as toggle buttons.
The call is:  CALL WGBOX (IP, CLIS, ISEL, ID)
         or:  int  wgbox (int ip, const char *clis, int isel);
IP            is the index of the parent widget.
CLIS          is a character string that contains the list ele-
              ments. Elements  must be separated by the charac-
              ter '|'.
ISEL          defines the pre-selected element (>= 0).
              ISEL = 0 means that no element is selected.
ID            is the returned widget index.
Name: WGSCL   29
The routine  WGSCL  creates  a scale widget.  The widget can be
displayed in horizontal or vertical direction.
The call is:  CALL WGSCL (IP, CLAB, XMIN, XMAX, XVAL, NDEZ, ID)
         or:  int  wgscl (int ip, const char *clab, float xmin,
                          float xmax, float xval, int ndez);
IP            is the index of the parent widget.
CLAB          is a character string used for a label.
XMIN          is a floating point  value that defines the mini-
              mal value of the scale widget.
XMAX          is a floating point  value that defines the maxi-
              mal value of the scale widget.
XVAL          defines the value of the scale widget.
NDEZ          is the  number  of digits used  in the scale wid-
              get.
ID            is the returned widget index.
Name: WGPBAR  29
The routine WGPBAR creates progress bars. The widget can be
displayed in horizontal or vertical direction.

The call is:  CALL  WGPBAR  (IP, XMIN, XMAX, XSTP, ID)
IP            is the index of the parent widget.
XMIN          is a  floating point value that defines the mini-
              mal value of the progress bar.
XMAX          is a floating point value that defines  the maxi-
              mal value of the progress bar.
XSTP          defines the step size. XSTP is used to calculate
              the maximal number of rectangles in non-smoothed
              progress bars. XSTP is ignored for smoothed pro-
              gress bars.
ID            is the returned widget index.
Note:         The appearance of  progress bars can be modified
              with the routines SWGCLR, SWGOPT and SWGTYP. 
              The value  of progress bars can be set with SWG-
              VAL. 
Name: WGDRAW  29
The routine  WGDRAW  creates a draw widget that can be used for
graphical output from DISLIN plot routines. To send output from
DISLIN plot  routines  to the draw widget,  you have to request 
the windows  ID of the draw widget with the routine  GWGXID and
pass it to DISLIN with the routine SETXID.
The call is:  CALL WGDRAW (IP, ID)
         or:  int  wgdraw (int ip);
IP            is the index of the parent widget.
ID            is the returned widget index.
Notes:  - The returned  widget  ID of a draw widget can be used
          in the routine  SETXID for setting the graphical out-
          put of  DISLIN routines to the draw widget. 
          For X11,  SETXID  should be called if the widgets are
          already realized.  Normally,  SETXID should be called
          in a callback routine.
        - By default,  the height of a draw widget is identical
          width the width of the widget.  The  height  of  draw
          widgets can be modified with the routine SWGDRW.
        - Draw widgets can have scroll bars if SWGTYP is called
          before with the options ('SCROLL', 'DRAW').  For that
          case,  the size  of the  graphics can be defined with
          the routine WINSIZ before SETXID. 
Name: WGTBL   29
The routine  WGTBL  creates a table widget that can be used for
data input and output.
The call is:  CALL WGTBL (IP, NROWS, NCOLS, ID)      
IP            is the index of the parent widget.
NROWS, NCOLS  are the number of rows and columns of the table.
ID            is the returned widget index.
Notes:     - The values of the table cells  can be defined with
             the routines SWGTBL, SWGTBF, SWGTBI and SWGTBS for
             setting float, integer and character values.  CELL
             values can be requested  with the routines GWGTBL,
             GWGTBF, GWGTBI and GWGTBS.
           - Table cells  can be  editable  if this mode is en-
             abled with the routines SWGOPT or SWGTBS.  The set
             of possible  input characters  for editable  table
             cells may be restricted with the  'VERIFY'  option
             in SWGOPT and SWGTBS.
           - The width  of table columns  can be modified  with
             the routine SWGRAY.
           - Fore- and background colours of table cells can be
             defined with SWGTBI.
           - The routine  SWGCB2  defines callback routines for
             table widgets.
Name: WGOK    29
The routine  WGOK creates a push button widget where the button
has the same meaning as the  OK  entry in the Exit menu. If the
button is pressed,  all widgets are  deleted and the program is
continued after WGFIN.
The call is:  CALL WGOK (IP, ID)
         or:  int  wgok (int ip);   
IP            is the index of the parent widget.
ID            is the returned widget index.
Name: WGSEP   29
The routine  WGSEP  separates  widgets by drawing horizontal or
vertical lines. 
The call is:  CALL WGSEP (IP, ID)
         or:  int wgsep (int ip); 
IP            is the index of the parent widget.
ID            is the returned widget index.
Notes:     -  WGSEP draws by default horizontal lines. Vertical
              lines can be defined with the routine SWGTYP. 
           -  Several line drawing  styles can be selected with 
              the routine SWGOPT.
Name: SWGWTH  29
The routine  SWGWTH  sets  the default width  of horizontal and 
parent/base widgets.
The call is:  CALL SWGWTH (NWTH)
         or:  void swgwth (int nwth);
NWTH          is an integer  containing  a positive  number  of
              characters or a  negative  number between  -1 and
              -100.  If NWTH < 0,  the widget  width  is set to
              ABS(NWTH) * NWIDTH / 100    where  NWIDTH  is the 
              screen width.                 Default: NWTH = 20.
Name: SWGDRW  29
The routine  SWGDRW modifies the height of draw widgets.
The call is:  CALL SWGDRW (XF)
         or:  void swgdrw (float xf);
XF            is a  positive  floating point number. The height
              of a  draw widget is set to XF * NW  where NW  is
              the widget width.                Default: XF = 1.
Name: SWGCLR  29
The routine SWGCLR defines colours for widgets.
The call is:  CALL SWGCLR (XR, XG, XB, COPT)
         or:  void swgclr (float xr, float xg, float xb,
                                             const char *copt);
XR, XG, XB    are RGB values between 0 and 1. 
COPT          is a  character string  that can  have the values
              'BACK',  'FORE',  'SCROLL',  'LTEXT'  and 'PBAR'. 
              The keywords 'BACK' and  'FORE'  define back- and
              foreground colours,  'SCROLL'  and 'PBAR'  define
              the colour  of  the slider in  scale  widgets and
              progress bars,  and  'LTEXT' sets the  background
              colour  of the  edit window  in labeled text wid-
              gets.
Notes:      - Colours  can  not be defined for push button wid-
              gets.  This is a restriction in the Windows API.
            - Multiple  draw widgets  must have the  same back-
              ground colour since they  belong to the same wid-
              get class.  The same  is valid for multiple  main
              widgets created by WGINI. 
Name: SWGFOC  29
The routine  SWGFOC sets the keyboard focus to the specified
widget.
The call is:  CALL SWGFOC (ID)
         or:  void swgfoc (int id);
ID            is  the widget index.
Name: SWGOPT  29
The routine SWGOPT sets widget options.
The call is:  CALL SWGOPT (COPT, CKEY)
         or:  void swgopt (const char *copt, const char *ckey);
COPT          is a character string containing an option. 
CKEY          is a character string containing a keyword:
 = 'BORDER'   This  keyword defines borders around table cells.
              COPT  can  have  the  values   'NONE', 'COLUMNS',
              'ROWS' and 'BOTH'. The default value is 'BOTH'.
 = 'BACKGROUND'   sets an image as background for the main wid-
              get. COPT should contain  the name of an BMP file
              containing  the image.  If the  image is  smaller
              than the size of the main widget,  the image will
              be duplicated. Otherwise, it will be clipped. 
 = 'CALLBACK' The  behaviour  of  callback  routines  for  text
              widgets  can be modified with this keyword.  COPT
              can  have  the  values   'RETURN',  'CHANGE'  and 
              'BOTH'. For 'RETURN', the callback routine is on-
              ly called if a return is given in the text field,
              for 'CHANGE, the  callback routine  is called for
              each change in the text field.  The default value
              is 'RETURN'.
 = 'CLOSE'    This  keyword  changes the behaviour of the close
              button of the main widget. For COPT = 'QUIT', the
              program will be terminated.  For COPT = 'OK', the
              main  widget is deleted  and the program  is con-
              tinued after WGFIN.  
 = 'CODING'   defines  the coding  of strings in widgets.  COPT 
              can have the values 'ANSI', 'UTF8', 'RUSSIAN' and
              'GREEK'. This option is only available on Windows
              systems, but not for X11.  
 = 'DIALOG'   Dialog  widgets  created  by the DWG routines de-
              scribed  in paragraph 15.5  can have  the topmost
              attribute,  so that  they are not  overplotted by
              other windows.  COPT can have the values  'STAND-
              ARD' and  'TOP'.  This option is only on  Windows
              systems available, not on X11 systems.
 = 'EDIT'     This keyword  defines if table cells are editable
              or not. COPT can have the values  'OFF' and 'ON'.
 = 'FILE'     This  keyword  disables  or enables a text widget
              created by WGFIL for the selected file name. COPT
              can have the values 'NOFIELD' and 'FIELD'.
 = 'FRAME'    Enables or disables a frame around table and draw
              widgets. COPT can have the values 'OFF' and 'ON'.
 = 'HEADER'   This  keyword enables header cells  in table wid-
              gets. COPT can have the values 'NONE', 'COLUMNS', 
              'ROWS' and 'BOTH'.
 = 'MASK'     If  CKEY = 'MASK',   COPT  can  have  the  values 
              'STANDARD'  and  'USER'.  For COPT = 'USER',  the
              mask entry in the routines  WGFIL and  DWGFIL can
              be controlled  completely by the user.  For  that
              case,  the mask parameter in WGFIL and DWGFIL can
              have the following syntax:  it contains a pair of
              strings separated by a '+' sign. The first string
              contains the label, the  second string the search
              filter.  For example:
              'Data (*.dat)+*.dat'. 'Data (*.dat)' is the label
              while  '*.dat'  the  filter.  Multiple  pairs  of 
              strings for the mask are also possible.
 = 'PBAR'     This  option  changes  the appearance of progress
              bars.  COPT can  have the values  'SMOOTH',  'NO-
              SMOOTH', 'BACK',  'NOBACK',  'LABEL', ' NOLABEL',
              'FRAME'  and  'NOFRAME'.  The defaults  are  'NO-
              SMOOTH', 'BACK', 'NOLABEL' and 'FRAME'.
 = 'POSITION' If CKEY = 'POSITION',  COPT  can have  the values
              'STANDARD'  and  'CENTER'.  For  COPT = 'CENTER',
              the  main  widget will be centred  on the screen.
              The  default  position  of the main widget is the 
              upper left corner of the screen.
 = 'SCROLL'   This  option  changes  the behaviour  of callback
              routines  for scroll widgets.  COPT can have  the 
              values  'TRACK',  'BUTTON'  and  'END'. If COPT = 
              'TRACK', the callback routine is called  for each
              change  of the scroll value.  If COPT = 'BUTTON',
              the callback routine is  only called  if an  user
              releases the mouse button.  For COPT = 'END', the
              callback  routine  is  called  at  the end of the
              scroll action. 
 = 'SEPARATOR'     This option selects a line style for  WGSEP.
              COPT can  have the values  'STANDARD',  'SINGLE',
              'DOUBLE', 'DASH' and 'DDASH'.
 = 'SLIDER'   Specifies whether a label for the current  slider
              value  is  displayed  or not.  COPT  can have the
              values 'VALUE' and 'NOVALUE'. 
 = 'VERIFY'   The keyword  'VERIFY'  enables a  check  of input
              characters in text and table cells. COPT can have
              the values  'NONE', 'INTEGER', 'FLOAT', 'EFLOAT',
              'DFLOAT',  'ALPHA',  'NALPHA',  'TIME',   'DATE',
              'EMAIL', 'PHONE', 'HEXA'  and 'OCTAL'. 
              The default value is COPT = 'NONE'. 
                                  Defaults: ('BOTH', 'BORDER'),
                                        ('RETURN', 'CALLBACK'),
                                             ('QUIT', 'CLOSE'),
                                            ('ANSI', 'CODING'),
                                        ('STANDARD', 'DIALOG'),
                                               ('OFF', 'EDIT'),
                                             ('FIELD', 'FILE'),
                                               ('ON', 'FRAME'),
                                            ('NONE', 'HEADER'),
                                          ('STANDARD', 'MASK'),
                                      ('STANDARD', 'POSITION'),
                                          ('BUTTON', 'SCROLL'),
                                     ('STANDARD', 'SEPARATOR'),
                                           ('VALUE', 'SLIDER'),
                                            ('NONE', 'VERIFY').
Note:         Some  X11 Window managers  ignore the position of
              the main widget.
Name: SWGIOP  29
The routine SWGIOP sets integer options for widgets.
The call is:  CALL SWGIOP (N, CKEY)
N             is an integer option.
CKEY          is a character string containing a keyword:
 = 'TABLE'    means that N defines the number of  visible rows
              in scrolled table widgets.
 = 'LIST'     means  that N defines  the number of visible en-
              tries in scrolled list widgets.
 = 'DLIST'    means that  N  defines the  width of the list in
              dropping list widgets.  For N = 0,  the list has
              the same width as the widget.  A negative  value
              sets the  width of the list in pixel, a positive
              value the with in number of characters.
 = 'HMARGIN'  sets the  horizontal  margin  in  text and  push
              button widgets (only X11).  The default  margins
              are 5  for text  widgets  and 2 for  push button 
              widgets. N = -1 defines this values. 
 = 'VMARGIN'  sets  the  vertical  margin  in  text  and  push
              button widgets (only X11).  The default  margins
              are  5 for text  widgets  and 2 for  push button
              widgets. N = -1 defines this values. 
 = 'ICON'     sets  an  icon  ID  for  the  routines   WGICON, 
              WGPICON,  and for  the header  line  of  a  main
              widget.  The  icon  is taken  from  the  program
              resource.  N = -1  resets  this  option.   (Only
              Windows). 
                                       Defaults: (8, 'TABLE'),
                                                 (8, 'LIST') , 
                                                 (0, 'DLIST'), 
                                              (-1, 'HMARGIN'), 
                                              (-1, 'VMARGIN'),
                                                 (-1, 'ICON'). 
Name: SWGFNT  29
The routine SWGFNT defines fonts for widgets.
The call is:  CALL SWGFNT (CFNT, NTPS)
         or:  void swgfnt (const char *cfnt, int ntps);
CFNT          is a  character string containing the font. 
              For Windows,  CFNT  can  contain  a TrueType font 
              (see WINFNT),  or one of the Windows raster fonts
              such as System, FixedSys, Terminal, Courier,   MS
              Serif  and MS Sans Serif.  For X11, CFNT can con-
              tain an X11 font.  CNFT = 'STANDARD'  resets  the
              font to the default value.
NPTS          is the font size in points  (72 points = 1 inch).
              Note that  only  a few  different  font sizes are 
              available for Windows raster fonts.
              For X11, the parameter NPTS will be ignored since
              the font size is already part of the font name.
Name: SWGPOP  29
The routine  SWGPOP  modifies the appearance of the popup menu-
bar.
The call is:  CALL SWGPOP (COPT)
         or:  void swgpop (const char *copt);   
COPT          is a character string containing an option:
 = 'NOOK'     suppresses the 'OK' entry in the  'EXIT' menu.
 = 'NOQUIT'   suppresses the  'QUIT'  entry  in  the  'EXIT'
              menu.
 = 'NOHELP'   suppresses the 'HELP' button in the menu bar.
 = 'OK'       enables the  'OK'  entry  in the  'EXIT' menu (de-
              fault).
 = 'QUIT'     enables  the  'QUIT'  entry  in  the  'EXIT'  menu
              (default).
 = 'HELP'     enables the  'HELP'  button  in  the menu bar (de-
              fault).
Name: SWGCBK  29
The routine  SWGCBK  connects a widget  with a callback routine.
The callback routine is called  if the status  of the  widget is
changed.  Callback routines be defined for button,  push-button,
file,  list,  box, scale, table and text widgets,  and for popup
menu entries. Since the  syntax of callback  routines for  table
and main widgets is different, they must be defined with SWGCB2. 
The call is:  CALL SWGCBK (ID, ROUTINE)
         or:  void swgcbk (int id, void (*routine) (int));
ID            is a widget ID.
ROUTINE       is the name  of a routine defined by the user.  In
              Fortran, the routine must be declared as EXTERNAL.
Notes:      - SWGCBK  is a  new version  of the  DISLIN  routine
              SWGCB (ID, ROUTINE, IRAY)  that  is  still  in the
              Library.
            - See section 15.6 for examples. 
Name: SWGCB2  29
The routine  SWGCB2 defines callback routines for table and main
widgets. A callback routine for a main widget is called when the
size of the main widget has changed. A callback for a table wid-
get is called  when the value  of a table cell  has changed,  or
when it is clicked.
The call is:  CALL SWGCB2 (ID, ROUTINE)
         or:  void swgcb2 (int id, void (*routine) (int id, 
                           int irow, int icol)); 
ID            is a widget ID.
ROUTINE       is the name of a routine defined  by the user.  In
              Fortran, the routine must be declared as EXTERNAL.
              The parameters  passed to the callback routine are
              the widget ID,  the row number and the column num-
              ber  of the table cell  that has invoked the call-
              back routine,  or the new width  and height of the 
              main widget in pixels.
Name: SWGCB3  29
The routine  SWGCB3  defines  callback routines  for mouse wheel
events in draw widgets.
The call is:  CALL SWGCB3 (ID, ROUTINE)
         or:  void swgcb3 (int id, void (*routine) (int id, 
                           int ival)); 
ID            is a widget ID.
ROUTINE       is the name of a routine defined  by the user.  In
              Fortran, the routine must be declared as EXTERNAL.
              The parameters  passed to the callback routine are
              the widget ID  and an  integer variable,  that can
              have the values 1 und -1.  A positive value  means 
              that the wheel  was rotated forward away  from the
              user, a negative value  indicates  that  the wheel
              was rotated backward.
Name: SWGATT  29
The routine SWGATT sets widget attributes.
The call is:  CALL SWGATT (ID, CATT, COPT)
         or:  void swgatt (int id, const char *catt, 
                                              const char *copt);
ID            is a widget ID.
CATT          is a character string containing an attribute.
CKEY          is a character string containing a keyword:

 = 'STATUS'   If  CKEY = 'STATUS',  CATT  can  have  the  values
              'ACTIVE', 'INACTIVE' and 'INVISIBLE'.
 = 'CLOSE'    The  keyword   'CLOSE'  can  have  the  attributes
              'ACTIVE'  and  'INACTIVE'.  It  allows  a user  to
              disable the close button of the main widget.
 = 'LIST'     If CKEY = 'LIST', CATT can have new list  elements
              for a list widget. In that case, CATT has the same
              meaning as the parameter  CLIS in WGLIS.
 = 'MENU'     The menu  header line in a main widget can be dis-
              abled with the attribute 'OFF'. The default  value
              is 'ON'.  ID should  contain the widget  ID of the 
              main widget. 
 = 'MINI'     This option allows  to disable the minimize button 
              in the  header  line  of a  main widget.  CATT can
              have the values 'OFF' and 'ON'.
 = 'MAXI'     This option  allows to disable the maximize button 
              in the  header line  of a  main widget.   CATT can
              have the values 'OFF' and 'ON'.
 = 'ICON'     The icon in the header  line  of a main widget can
              be replaced  by  an icon  in a  .ico  file   (only
              Windows). CATT should contain the name of the .ico
              file.  
Name: SWGBGD  29
The routine SWGBGD changes the background colour of widgets.
The call is:  CALL SWGBGD (ID, XR, XG, XB)
         or:  void swgbgd (int id, float xr, float xg, 
                                                      float xb);
ID            is a widget ID.
XR, XG, XB    are RGB values between 0 and 1. 
Name: SWGFGD  29
The routine SWGFGD changes the foreground colour of widgets.
The call is:  CALL SWGFGD (ID, XR, XG, XB)
         or:  void swgfgd (int id, float xr, float xg, 
                                                      float xb);
ID            is a widget ID.
XR, XG, XB    are RGB values between 0 and 1. 
Name: SWGBUT  29
The routine  SWGBUT  sets the status of a button widget.  If the
widget is a push button widget,  the connected  callback routine
will be executed if the status 1 is passed to SWGBUT.
The call is:  CALL SWGBUT (ID, IVAL)
         or:  void swgbut (int id, int ival);   
ID            is a widget ID of a button widget.
IVAL          can have the values 0 and 1.
Name: SWGLIS  29
The routine SWGLIS changes the selection in a list widget.
The call is:  CALL SWGLIS (ID, ISEL)
         or:  void swglis (int id, int isel);   
ID            is a widget ID of a list widget.
ISEL          defines the selected element (>= 1).
Name: SWGBOX  29
The routine SWGBOX changes the selection in a box widget.
The call is:  CALL SWGBOX (ID, ISEL)
         or:  void swgbox (int id, int isel);   
ID            is a widget ID of a box widget.
ISEL          defines the selected element (>= 1).
Name: SWGTXT  29
The routine SWGTXT changes the value of a text widget and
the label text in label and push button widgets.
The call is:  CALL SWGTXT (ID, CVAL)
         or:  void swgtxt (int id, const char *cval);   
ID            is a widget ID of a text widget.
CVAL          is a character string containing the new text.
Name: SWGINT  29
The routine SWGINT changes the value of a text widget.
The call is:  CALL SWGTXT (ID, IV)
ID            is a widget ID of a text widget.
IV            is an integer  number which will be displayed
              in a text widget.
Name: SWGFLT  29
The routine SWGFLT changes the value of a text widget.
The call is:  CALL SWGFLT (ID, XV, NDIG)
ID            is a widget ID of a text widget.
XV            is a floating point number which will be dis-
              played in a text widget.
NDIG          is the number of digits displayed after the
              decimal point. (>= -2).  NDIG = -2  means that
              the number  of digits is calculated by DISLIN.
Name: SWGFIL  29
The routine SWGFIL changes the value of a file widget.
The call is:  CALL SWGFIL (ID, CFIL)
         or:  void swgfil (int id, const char *cfil);   
ID            is a widget ID of a file widget.
CFIL          is  a character  string  containing the new file-
              name.
Name: SWGSCL  29
The routine SWGSCL changes the value of a scale widget, and the
value of scrollbars at draw widgets. 
The call is:  CALL SWGSCL (ID, XVAL)
         or:  void swgscl (int id, float xval);   
ID            is a widget ID of a scale or  draw widget. If the
              widget ID is passed  as it's negative value,  the
              vertical  scrollbar of  a draw widget is changed.
              Otherwise, the horizontal scrollbar.
XVAL          is a floating point number containing the new 
              value of the scrollbar.
Name: SWGVAL  29
The routine SWGVAL changes the value of a progress bar.
The call is:  CALL SWGVAL (ID, XVAL)
ID            is a widget ID of a progress bar.
XVAL          is a floating point number containing the new 
              value of the progress bar.
Name: SWGTBF  29
The routine SWGTBF sets floating point values in table cells.
The call is:  CALL SWGTBF (ID, XVAL, NDIG, IROW, ICOL, COPT)
         or:  void swgtbf (int id, float xval, int ndig, 
                      int irow, int icol, const char *copt);
ID            is a widget ID of a table widget.
XVAL          is a floating point number  which will be dis-
              played in a table widget.
NDIG          is the number of digits  displayed  after  the
              decimal point (>= -2).  NDIG = -2  means  that
              the number  of digits is calculated by DISLIN.
IROW, ICOL    are the row  and column  indices  of the table
              cell (>= -1).  The value -1  means that a com-
              plete row  or column  is filled with  XVAL and
              the index 0 corresponds to header cells. 
COPT          is a character string  that can have the value
              'VALUE'.
Name: SWGTBI  29
The routine  SWGTBI sets integers in table cells, or defines
fore- and background colours for table cells.
The call is:  CALL SWGTBI (ID, IVAL, IROW, ICOL, COPT)
         or:  void swgtbi (int id, int ival, int irow, 
                                int icol, const char *copt);
ID            is a widget ID of a table widget.
IVAL          is an integer that contains the cell or a col-
              our value.  Colour  values  can be  calculated
              from RGB values with the function INTRGB. 
IROW, ICOL    are the row  and column  indices  of the table
              cell (>= -1).  The value -1  means that a com-
              plete row  or column  is filled with  XVAL and
              the index 0 corresponds to header cells. 
COPT          is a character string that defines the meaning
              of IVAL.  COPT  can  have  the values 'VALUE',
              'BACK',   'FORE'   and  'SYSTEM'.  The options 
              'BACK' and 'FORE' are used for back- and fore-
              ground colours. The option 'SYSTEM' resets the
              colours in table cells back to system values.   
Name: SWGTBL  29
The routine  SWGTBL passes an array of floating point values
to a table widget.
The call is:  CALL SWGTBL (ID, XRAY, N, NDIG, IDX, COPT)
         or:  void swgtbl (int id, float *xray, int n, 
                       int ndig, int idx, const char *copt);
ID            is a widget ID of a table widget.
XRAY          is an array of floating point numbers.
N             is the number of elements in XRAY.
NDIG          is the number  of digits  displayed  after the
              decimal  point  (>= -2)  for XRAY.   NDIG = -2 
              means that the number  of digits is calculated
              by DISLIN.
IDX           is the index of a table row or column (>= 1). 
              IDX may be ignored for some options in COPT.
COPT          is a character string that can have the values 
              'ROW',  'COLUMN',  'RTABLE'  and 'CTABLE'. The
              keyword 'ROW' means that a table row is filled
              with XRAY.  'COLUMN'  means  that  a column is
              used. For COPT = 'RTABLE',  the complete table
              is  filled  with  XRAY by rows and for  COPT = 
              'CTABLE', the table is filled by columns.   
Name: SWGTBS  29
The routine  SWGTBS  sets character values  and  options for
single table cells.
The call is:  CALL SWGTBS (ID, CVAL, IROW, ICOL, COPT)
         or:  void swgtbs (int id, const char *cval, 
                      int irow, int icol, const char *copt);
ID            is a widget ID of a table widget.
CVAL          is a  character  string that  contains the new
              cell  value  or a  character option.  Up to 80
              characters are accepted by table cells.
IROW, ICOL    are the row  and column  indices  of the table
              cell (>= -1).  The value -1  means that a com-
              plete row  or column  is filled with  XVAL and
              the index 0 corresponds to header cells. 
COPT          is a character string that defines the meaning
              of CVAL.  COPT  can  have the values  'VALUE',
              'EDIT' and 'ALIGN'.  The option 'EDIT' enables
              or  disables edit  mode for table cells  where
              the corresponding option in  CVAL can have the
              values 'ON' and 'OFF'.  The default  behaviour
              is  'OFF'.  'ALIGN' defines  the alignment  in
              table cells  where CVAL can have  the keywords
              'LEFT',  'CENTER' and 'RIGHT'. The default va-
              lue is 'RIGHT'.         
Name: SWGRAY  29
The routine  SWGRAY  sets  the  width  of  table columns. It
should be called before WGTBL.
The call is:  CALL SWGRAY (XRAY, N, COPT)
         or:  void swgray (const float *xray, int n, 
                                          const char *copt);
XRAY          is an array of floating point numbers. A posi-
              tive  value  is  interpreted  as characters, a
              negative  number  as  percent  from the widget
              width.  If a  table contains  a header column, 
              the first index of  XRAY is used for that col-
              umn.  
N             is the number of elements in XRAY.
COPT          is a character string that can have  the value
              'TABLE'.
Name: FREEPTR
The routine FREEPTR deallocates space that is allocated in a
Dislin routine before. The routine is only useful for C.
The call is:  void freeptr (void *ptr);
ptr           is a pointer to a memory address.
Name: MSGBOX  29
The routine MSGBOX displays a message  in form of a dialog wid-
get. It can be used to display messages in callback routines.
The call is:  CALL MSGBOX (CSTR)
         or:  void swgbox (const char *cstr);   
CSTR          is a character string containing a message.
Name: SWGTIT  29
The routine  SWGTIT  defines a title displayed in the main wid-
get.
The call is:  CALL SWGTIT (CTIT)
         or:  void swgtit (const char *ctit);
CTIT          is a character string containing the title.
Name: SWGHLP  29
The routine  SWGHLP  sets a character string  that will be dis-
played if the Help menu is clicked by the user.
The call is:  CALL SWGHLP (CSTR)
         or:  void swghlp (const char *cstr);
CSTR          is a character string  that will be  displayed in
              the help box.  The character '|' can be used as a
              newline character.
Name: SWGSIZ  29
The routine SWGSIZ defines the size of widgets.
The call is:  CALL SWGSIZ (NW, NH)
         or:  void swgsiz (int nw, int nh);
NW, NH        are the width and height of the widget in pixels.
Name: SWGPOS  29
The routine SWGPOS defines the position of widgets.
The call is:  CALL SWGPOS (NX, NY)
         or:  void swgpos (int nx, int ny);  
CSTR          is a character string  that will be  displayed in
NX, NY        are the upper left corner  of the widget  in pix-
              els.  The point  is relative  to  the upper  left
              corner of the parent widget.
Name: SWGWIN  29
The routine SWGWIN defines the position and size of widgets.
The call is:  CALL SWGWIN (NX, NY, NW, NH)
         or:  void swgwin (int nx, int ny, int nw, int nh);
CSTR          is a character string  that will be  displayed in
NX, NY        are the upper left corner  of the widget  in pix-
              els.  The point  is relative  to  the upper  left
              corner of the parent widget.
NW, NH        are the width and height of the widget in pixels.
Name: SWGTYP  29
The routine  SWGTYP modifies the appearance of certain widgets.
The call is:  CALL SWGTYP (CTYPE, CLASS)
         or:  void swgtyp (const char *ctype, 
                                            const char *class);
CTYPE         is a character string containing a keyword:
  = 'VERT'    means that  box widgets,  scale widgets  and pro-
              gress  bars  will  be  displayed in  vertical di-
              rection.  Lines  plotted  by  WGSEP  will have  a
              vertical orientation.
  = 'HORI'    means that  box widgets,  scale widgets  and pro-
              gress bars  will  be  displayed in horizontal di-
              rection.  Lines  plotted  by  WGSEP  will have  a
              horizontal orientation.
  = 'GRID'    means that  box widgets  will be displayed in ma-
              trix form.
  = 'SCROLL'  means  that scrollbars  will be  created in list,
              table, draw and main widgets.
  = 'NOSCR'   means that no scrollbars will be created in list,
              table, draw and main widgets.
  = 'VSCROLL' means that  just  a vertical scrollbar is created
              in list widgets.
  = 'AUTO'    means  that  scrollbars  will be created  in list
              widgets  if the  number  of elements  is  greater
              than 8.
  = 'OPEN'    means that a file selection box for reading files
              is defined.
  = 'SAVE'    means that a file selection box for  saving files
              is defined.
  = 'STRING'  means that a popup menu can be directly connected
              with a callback routine. Normally,  menu  entries
              in a popup menu  can be  connected with  callback
              routines.
  = 'NORESIZE' means that the size of the main widget cannot be
              changed with the mouse.  The default behaviour is
              'RESIZE'.
  = 'NOEDIT'  defines non editable text widgets.
  = 'PASS'    enables hidden password  input  for  text wid-
              gets.
CLASS         is a character string containing the widget class
              where  CLASS  can have the values 'LIST',  'BOX',
              'SCALE',  'PBAR',   'TABLE',   'DRAW',    'FILE',
              'SEPARATOR', 'POPUP', 'MAIN' and 'TEXT'.  
              If CLASS  =  'LIST',  CTYPE  can  have the values  
              'AUTO',  'SCROLL' and 'NOSCROLL'.  
              If CLASS has  one of the values  'BOX',  'SCALE', 
              'PBAR' and 'SEPARATOR', CTYPE can have the values
              'VERT' and 'HORI'. The class  'BOX' can  have the
              additional value 'GRID'.
              The class  'TABLE'  can have  the options 'AUTO',
              'SCROLL'  and  'NOSCROLL'.  For  CLASS  = 'DRAW', 
              CTYPE   can   have   the  values   'SCROLL'   and 
              'NOSCROLL'. 
              If  CLASS  =  'FILE',  CTYPE can have  the values
              'OPEN' and 'SAVE'.
              If  CLASS  =  'POPUP', CTYPE can have  the values
              'STRING' and 'MENU'.
              For CLASS = 'MAIN',  CTYPE  can  have  the values
              'RESIZE' and 'NORESIZE',  or  'SCROLL'  and  'NO-
              SCROLL'.
              For CLASS = 'TEXT',  CTYPE  can  have  the values
              'EDIT', 'NOEDIT' and 'PASS'.
              Defaults:  ('VERT', 'BOX'),    ('HORI', 'SCALE'),
                        ('HORI, 'PBAR'), ('HORI', 'SEPARATOR'),
                           ('AUTO', 'LIST'), ('AUTO', 'TABLE'),
                        ('NOSCROLL', 'DRAW'), ('OPEN', 'FILE'),
                         ('MENU', 'POPUP'), ('RESIZE', 'MAIN'),
                        ('NOSCROLL', 'MAIN'), ('EDIT', 'TEXT'). 
Name: SWGJUS  29
The routine SWGJUS defines the alignment of labels in label and
button widgets and of cell values in table widgets.
The call is:  CALL SWGJUS (CJUS, CLASS)
         or:  void swgjus (const char *cjus, 
                                            const char *class);
CJUS          is a character string defining the alignment:
  = 'LEFT'    means left-justified.
  = 'CENTER'  means centred.
  = 'RIGHT'   means right-justified.
CLASS         is a character string defining the  widget class.
              CLASS can have  the values  'LABEL',  'TABLE' and
              'BUTTON'.
              Defaults:                      ('LEFT', 'LABEL'),
                                          ('CENTER', 'BUTTON'),
                                           ('CENTER', 'TABLE').
Name: SWGSPC  29
The routine  SWGSPC  defines horizontal and vertical space bet-
ween widgets.
The call is:  CALL SWGSPC (XSPC, YSPC)
         or:  void swgspc (float xscp, float yspc);
XSPC, YSPC    are  floating point  numbers  defining  the space
              between  widgets.  For non  negative values,  the
              spaces XSPC * NWCHAR  and  YSPC * NHCHAR are used
              where NWCHAR and NHCHAR are the current character
              width and height.  For negative values, the hori-
              zontal and vertical spaces are set to ABS(XSPC) * 
              NWIDTH / 100 and ABS(YSPC) * NHEIGHT where NWIDTH
              and  NHEIGHT  are the  width  and  height  of the 
              screen.                      Default: (4.0, 0.5).
Name: SWGSTP  29
The routine  SWGSTP defines a step value for scale widgets.
The call is:  CALL SWGSTP (XSTP)
         or:  void swgstp (float xstp);
XSTP          is a positive floating point number  defining the
              step value. The default value is (MAX - MIN)/100.
Name: SWGMRG  29
The routine SWGMRG defines margins for widgets.
The call is:  CALL SWGMRG (IVAL, CMRG)
         or:  void swgmrg (int ival, const char *cmrg);
IVAL          is the margin value in pixels.
CMRG          is a  character string  that can have  the values
              'LEFT', 'TOP', 'RIGHT'  and 'BOTTOM'. By default,
              all margins are zero.
Name: SWGMIX  29
The routine  SWGMIX  defines control characters  for separating
elements in list strings.
The call is:  CALL SWGMIX (CHAR, CMIX)
         or:  void swgmix (const char *char, const char *cmix);
CHAR          is a new control character.
CMIX          is a character string  that defines the function
              of the control character.  CMIX can have the va-
              lue 'SEP'.
Name: GWGBUT  29
The routine GWGBUT returns the status of a button or push but-
ton widget.
The call is:  CALL GWGBUT (ID, IVAL)
         or:  int  gwgbut (int id);
IP            is the index of the button widget.
IVAL          is the  returned status where IVAL = 0 means off
              and IVAL = 1 means on.
Name: GWGTXT  29
The routine GWGTXT returns the input of a text widget.
The call is:  CALL GWGTXT  (ID, CSTR)
         or:  gwgtxt (int id, char *cstr);
IP            is the index of the text widget.
CSTR          is the returned character string that can have
              up to 256 characters.
Name: GWGINT  29
The routine GWGINT returns the input of a text widget as an
integer value.
The call is:  CALL  GWGINT  (ID, IV)
ID            is the index of the text widget.
IV            is the returned integer number.
Name: GWGFLT  29
The routine GWGFLT returns the input of a  text widget as a
floating point value.
The call is:  CALL  GWGFLT  (ID, XV)
ID            is the index of the text widget.
XV            is the returned floating point number.
Name: GWGFIL  29
The routine GWGFIL returns the input of a file widget.
The call is:  CALL GWGFIL  (ID, CFIL)
         or:  void gwgfil (int id, char *cfil);
IP            is the index of the file widget.
CFIL          is the returned filename that can have up to 
              256 characters.
Name: GWGLIS  29
The routine GWGLIS returns the selected element of a list wid-
get.
The call is:  CALL GWGLIS (ID, ISEL)
         or:  int  gwglis (int id);
IP            is the index of the list widget.
ISEL          is the selected list element returned by GWGLIS.
Name: GWGBOX  29
The routine GWGBOX returns the selected  element of a box wid-
get.
The call is:  CALL GWGBOX (ID, ISEL)
         or:  int  gwgbox (int id);
IP            is the index of the box widget.
ISEL          is the selected element returned by GWGBOX.
Name: GWGSCL  29
The routine GWGSCL returns the value of a scale widget, or the
value of a scrollbar at draw widgets.
The call is:  CALL  GWGSCL (ID, XVAL)
         or:  float gwgscl (int id); 
ID            is a widget ID of a scale or draw widget. If the 
              widget ID is passed as it's negative value,  the
              value of the vertical scrollbar of a draw widget
              is returned.  Otherwise,  the value of the hori-
              zontal scrollbar.
XVAL          is the returned value.
Name: GWGSIZ  29
The routine GWGSIZ returns the size of widgets.
The call is:  CALL GWGSIZ (ID, NW, NH)
         or:  float gwgsiz (int id, int *nw, int *nh); 
ID            is the  index  of a widget,  which must not be a
              parent, base or popup widget.
NW, NH        are the returned width  and height of the widget
              in pixels.
Name: GWGTBF  29
The routine  GWGTBF  returns  the value  of a table cell  as
floating point number.
The call is:  CALL GWGTBF (ID, IROW, ICOL, XVAL)
         or:  float gwgtbf (int id, int irow, int icol);
ID            is a widget ID of a table widget.
IROW, ICOL    are the row and column  indices  of the  table
              cell (>= 1).
XVAL          is the returned floating point number.
Name: GWGTBI  29
The routine  GWGTBI  returns  the value  of a table cell  as
integer number.
The call is:  CALL GWGTBI (ID, IROW, ICOL, IVAL)
         or:  int gwgtbi (int id, int irow, int icol);
ID            is a widget ID of a table widget.
IROW, ICOL    are the row and column  indices  of the  table
              cell (>= 1).
IVAL          is the returned integer number.
Name: GWGTBL  29
The routine  GWGTBL  fills a floating point user array  with
table values.
The call is:  CALL GWGTBL (ID, XRAY, N, IDX, COPT)
         or:  void gwgtbl (int id, float *xray, int n, 
                                 int idx, const char *copt);
ID            is a widget ID of a table widget.
XRAY          is a  floating point  array  that will contain
              the cell values after the call to GWGTBL.
N             is the number of elements in XRAY.
IDX           is the index of  a table row or column (>= 1),
              or may be ignored.
COPT          is a character string that can have the values 
              'ROW',  'COLUMN',  'RTABLE'  and 'CTABLE'. The
              keywords have the same meaning as in SWGTBL.
Name: GWGTBS  29
The routine  GWGTBS  returns  the value  of a table cell  as
character string.
The call is:  CALL GWGTBS (ID, IROW, ICOL, CVAL)
         or:  void gwgtbs (int id, int irow, int icol, 
                                          const char *cval);
ID            is a widget ID of a table widget.
IROW, ICOL    are the row and column  indices  of the  table
              cell (>= 1).
CVAL          is the returned character string that can have
              up to 80 characters.
Name: GWGATT  29
The routine GWGATT returns a widget attribute.
The call is:  CALL GWGATT (ID, IATT, COPT)
         or:  int  gwgatt (int id, const char *copt);
ID            is a widget ID.
IATT          is a returned  attribute.  If COPT = 'STATUS', 
              IATT can have the values 0 for 'ACTIVE', 1 for
              'INACTIVE' and 2 for 'INVISIBLE'.
COPT          is a character string  that can have the value 
              'STATUS'. 
Name: GWGXID  29
The routine  GWGXID  returns the window ID  for  a specified 
widget ID.
The call is:  CALL GWGXID (ID, IWINID)
         or:  int  gwgxid (int id);
ID            is the widget ID.
IWINID        is the returned window ID.
Note:     For X11, the window ID of a widget can only be calcu-
          lated  if the widget is already realized.  This means
          that  GWGXID  should be called in a callback  routine
          and not directly  behind a widget.  For X11,  widgets
          are realized in the routine WGFIN.
Name: GWGGUI  29
The routine GWGGUI returns the used GUI of the Dislin library.
The call is:  CALL GWGGUI (IRET)
         or:  int  gwggui ();
IRET          identifies  the used GUI.  IRET = 1  means  Open-
              Motif, IRET = 2 GTK and IRET = 3 Windows API.
Name: ITMSTR  29
The routine  ITMSTR extracts a list element from a list string.
The call is:  CALL ITMSTR (CLIS, IDX, CITEM)
         or:  char *itmstr (const char *clis, int idx);
CLIS          is a character string that contains the list ele-
              ments (s. WGLIS).
IDX           is the  index  of the element  that should be ex-
              tracted from CLIS.
CITEM         is a  character string  containing the  extracted
              list element.  For C,  the returned  string is an
              allocated pointer  via malloc and can be freed by
              a user.
Name: ITMCNT  29
The routine  ITMCNT  returns  the number of elements  in a list
string.
The call is:  N = ITMCNT (CLIS)
         or:  int  itmcnt (const char *clis);
CLIS          is a character string that contains the list ele-
              ments (s. WGLIS).
N             is the calculated number of elements in CLIS.
Name: ITMNCAT 29  
The routine ITMNCAT concatenates an element to a list string.
The call is:  CALL ITNMCAT (CLIS, N, CITEM)
         or:  void itmncat (char *clis, int n, 
                                            const char *citem);
CLIS          is a character string that contains the list ele-
              ments (s. WGLIS).
N             is the maximal number of  characters that  can be
              stored in CLIS. 
CITEM         is a character string  that will  be concatenated
              to CLIS.  If CLIS is blank,  CITEM  will  be  the 
              first element in CLIS.
Notes:      - Trailing  blanks in CLIS and  CITEM  will  be ig-
              nored.
            - ITMNCAT is a replacement of ITMCAT with the addi-
              tional parameter N for avoiding buffer overflows.
              ITMCAT is still in the library.
Name: ITMCAT 29  
The routine ITMCAT concatenates an element to a list string.
The call is:  CALL ITMCAT (CLIS, CITEM)
         or:  void itmcat (char *clis, const char *citem);
CLIS          is a character string that contains the list ele-
              ments (s. WGLIS).
CITEM         is a character string  that will  be concatenated
              to CLIS.  If CLIS is blank,  CITEM  will  be  the 
              first element in CLIS.
Notes:      - Trailing  blanks in CLIS and  CITEM  will  be ig-
              nored.
            - ITMCAT is replaced  by  the more  secure  routine
              ITMNCAT.
Name: REAWGT  29
The routine REAWGT realizes a widget tree. Since the windows ID
of a widget can only be calculated for X11 if the widget is al-
ready realized, this routine is useful if the  windows  ID of a
widget  is needed  before WGFIN.  Normally,  the widget tree is 
realized in WGFIN.
The call is:  CALL REAWGT
         or:  void reawgt ();
Name: SENDOK  29
The routine SENDOK has the same meaning as when the OK entry in
the Exit menu is pressed.  All widgets are deleted and the pro-
gram is continued after WGFIN.
The call is:  CALL SENDOK
         or:  void sendok ();
Name: SENDMB  29
The routine  SENDMB  sends a mouse button 2 event to the DISLIN
routine DISFIN. It can be used for closing the graphics window.
The call is:  CALL SENDMB
         or:  void sendmb ();
Name: DOEVNT  29
The routine  DOEVNT  processes the pending events in the widget
event queue.  This routine  should be  called during a time in-
tensive calculation to give a user the chance  to interact with
the widget program. For  example  to check if the user has can-
celed the calculation.
The call is:  CALL DOEVNT
         or:  void doevnt ();
Name: DWGMSG  29
The routine DWGMSG displays a message.
The call is:  CALL DWGMSG (CSTR)
         or:  void dwgmsg (const char *cstr);
CSTR          is a character string that will be displayed in a
              message box.  Multiple lines  can be separated by
              the character '|'.
Name: DWGBUT  29
The routine  DWGBUT  displays a message that can be answered by
the user with 'Yes' or 'No'.
The call is:  CALL DWGBUT (CSTR, IVAL)
         or:  int dwgbut (const char *cstr, int ival);
CSTR          is a character string that will be displayed in a
              message box.  Multiple lines  can be separated by
              the character '|'.
IVAL          is  the returned  answer  of the  user.  IVAL = 1
              means 'Yes', IVAL = 0  means 'No'.  IVAL  is also 
              used to initialize the button. 
Name: DWGTXT  29
The routine  DWGTXT creates a dialog widget that can be used to
prompt the user for input.
The call is:  CALL DWGTXT (CLAB, CSTR)
         or:  char *dwgtxt (const char *clab, char *cstr);
CLAB          is a character string  that will  be displayed in
              the dialog widget.
CSTR          is a  character string that is used to initialize
              the  text field.  After the call to  DWGTXT, CSTR 
              returns  the user input.  For the C Routine,  the
              user input is returned as function value. The re-
              turned  pointer is allocated by malloc and can be
              freed by a user.
Name: DWGFIL  29
The routine  DWGFIL  creates  a file selection box  that can be
used to get a filename.
The call is:  CALL DWGFIL (CLAB, CFIL, CMASK)
         or:  char *dwgfil (const char *clab, const char *cfil, 
                                            const char *cmask);
CLAB          is a character string  that will  be displayed in
              the dialog widget.
CFIL          is the  returned  filename  selected by the user. 
              The variable  can also  be used  to  pre-define a
              filename.  For the  C Routine,  the user input is
              returned as function value.  The returned pointer
              is allocated  by malloc  and can be  freed  by an 
              user.
CMASK         specifies the search pattern  used in determining
              the files to be displayed  in the  file selection
              box.
Name: DWGLIS  29
The routine  DWGLIS creates a dialog widget that can be used to
get a selection from a list of items.
The call is:  CALL DWGLIS (CLAB, CLIS, ISEL)
         or:  int dwglis (const char *clab, const char *clis, 
                                                     int isel);
CLAB          is a character string  that will be  displayed in
              the dialog widget.
CLIS          is a character string that contains the list ele-
              ments. Elements must  be separated by the charac-
              ter '|'.
ISEL          defines the pre-selected element and contains the
              selected element after return.  Element numbering
              begins with the number 1.
Name: DWGERR  29
The routine  DWGERR  returns  a status for the routines DWGFIL,
DWGTXT and DWGLIS.  The routine  can be  used to check directly
after  the routines  above  if the OK  button is pressed in the
routines.
The call is:  CALL DWGERR (ISTAT)
         or:  int dwgerr ();
ISTAT         is a returned status. If ISTAT = 0, the OK button
              in  the routines  DWGFIL,  DWGTXT  and  DWGLIS is 
              pressed. Otherwise, the CANCEL button is pressed,
              or an error occured.
