link window
October 10, 1997; Gregg M. Townsend
Requires: Version 9 graphics
This file is in the public domain.
Window() opens a window with provisions for option processing and
error handling. The returned window is assigned to &window if
&window is null. If the window cannot be opened, the program is
aborted.
The characteristics of the window are set from several sources:
Window's arguments, optionally including the program argument list;
user defaults; and built-in defaults. These built-in defaults are
the same as for optwindow(): bg=pale gray, fg=black, size=500,300.
____________________________________________________________
With one exception, arguments to Window() are attribute specifications
such as those used with open() and WAttrib(). Order is significant,
with later attributes overriding earlier ones.
Additionally, the program argument list -- the single argument passed
to the main procedure -- can be passed as an argument to Window().
Options specified with a capital letter are removed from the list and
interpreted as attribute specifications, again in a manner consistent
with optwindow().
Because the Window() arguments are processed in order, attributes that
appear before the program arglist can be overridden by command-line
options when the program is executed. If attributes appear after the
program arglist, they cannot be overridden. For example, with
procedure main(args)
Window("size=600,400", "fg=yellow", args, "bg=black")
the program user can change the size and foreground color
but not the background color.
User defaults are applied at the point where the program arglist appears
(and before processing the arglist). If no arglist is supplied, no
defaults are applied. Defaults are obtained by calling WDefault().
Icon attribute names are used as option names; &progname is used
as the program name after trimming directories and extensions.
The following table lists the options recognized in the program arglist,
the corresponding attribute (and WDefault()) names, the default values
if any, and the meanings. All legal attributes are allowed in the
Window() call, but only these are set from the command line or
environment:
arg attribute default meaning
--- --------- ------- --------------------------
-B bg pale gray background color
-F fg black foreground color
-T font - text font
-L label &progname window title
(trimmed)
-D display - window device
-X posx - horizontal position
-Y posy - vertical position
-W width 500 window width
-H height 300 window height
-S size 500,300 size
-P pos - position
-G geometry - window size and/or position
-A <any> - use "-A name=value"
to set arbitrary attribute
-! - - write open() params to &error
(for debugging)