aboutsummaryrefslogtreecommitdiff
path: root/vendor/x11iraf/man/xgterm.1
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/x11iraf/man/xgterm.1')
-rw-r--r--vendor/x11iraf/man/xgterm.1981
1 files changed, 981 insertions, 0 deletions
diff --git a/vendor/x11iraf/man/xgterm.1 b/vendor/x11iraf/man/xgterm.1
new file mode 100644
index 00000000..5ed5163d
--- /dev/null
+++ b/vendor/x11iraf/man/xgterm.1
@@ -0,0 +1,981 @@
+.\" @(#)xgterm.1 1.1 16-Dec-96 MJF
+.TH XGTERM 1 "16 Dec 1996" "X11IRAF Project"
+.SH NAME
+xgterm \- terminal emulator for X with graphics and imaging capability
+.SH SYNOPSIS
+\fBxgterm\fP [\-\fItoolkitoption\fP ...] [\-\fIoption\fP ...]
+.SH DESCRIPTION
+The \fIxgterm\fP program is a terminal emulator for the X Window System
+based largely on \fIxterm\fP but with a completely new graphics and imaging
+widget. It provides DEC VT102 and Tektronix 4014 compatible terminals for
+programs that can't use the window system directly. \fIXGterm\fP also
+serves as a prototype for the \fIWidget Server\fP being developed by the
+IRAF Project at NOAO. The \fIObject Manager Library\fP it uses implements a
+window system toolkit as an interpreted window-object language, allowing
+application GUIs to be defined and executed at runtime without compiling
+any code, and with minimal dependence upon the underlying window system
+toolkit library. We will concentrate here, however, on it's use as a terminal
+emulator and a description of the new \fIGterm\fP widget.
+.PP
+The Gterm graphics window operates almost identically to the \fIxterm\fP Tek
+window, however there are extensions for implementing full-screen cursors,
+imaging, area fills, colors, graphics erasure, a "status line" and so on.
+Any graphics application capable of running under an \fIxterm\fP Tek window
+should also be able to use \fIxgterm\fP as well. Client programs wishing to
+make use of the extended features, or those wishing to implement a GUI, are
+advised to use the OBM (\fIObject Manager\fP) library supplied with the XGterm
+source as part of the X11IRAF package. This provides a much better
+programmatic interface to all of the features available; however, as of
+this writing it is not yet fully documented. Users are referred to the
+\fIXImtool\fP task as an example of a more complex application using the
+\fIOBM Library\fP and \fIGterm\fP widget, as well as demo tasks in the
+\fIguidemo\fP directory of the X11IRAF sources. Questions or comments may
+also be sent to \fIiraf@noao.edu\fP.
+.PP
+The VT102 text window is unchanged from the original \fIxterm\fR application.
+All of it's resources, command-line options and operation are identical to
+that used by \fIxterm\fP. The \fItermcap(5)\fP entry for \fIxterm\fP may
+be used for \fIxgterm\fP as well. See the \fIxterm(1)\fP man page for details.
+.SH OPTIONS
+All \fIxterm(1)\fP and X Toolkit command line options are supported, there
+are no additional options.
+.SH RESOURCES
+The program understands all of the core X Toolkit resource names and
+classes, all text window resources known to \fIxterm(1)\fP, as well as
+the \fIGterm\fP (graphics and imaging widget) resources. The proper Class
+name for all resources described here is \fIGterm\fP. A table of
+available \fIGterm\fP resources and their defaults may be found below,
+some of the more interesting resources are described here in detail:
+.TP 5
+\fIbasePixel\fP
+Base cell of the custom colormap. This essentially allows you
+to reserve \fIbasePixel\fP colors in the global colormap for other
+applications. The default is 38, if changed you'll need to also enable
+the \fIcmapInitialize\fP resource to force the Gterm widget to
+update it's global colormap resource in the X server.
+.TP 5
+\fIcmapInitialize\fP
+Initialize the ximtool colormap at startup. When resetting the \fIbasePixel\fP
+resource or colormap this is required in order to force the Gterm widget to
+update it's global colormap resource in the X server. The default is False.
+.TP 5
+\fIcmapInterpolate\fP
+Interpolate the colormap to the number of display colors. The default is
+True.
+.TP 5
+\fIcmapName\fP
+Name used for private colormap. The default for all IRAF imaging
+applications is \fIimage\fP. Gterm widget based imaging applications
+which have the same value of cmapName will share the same colormap,
+minimizing colormap flashing and allowing multiple applications to be
+run at the same time.
+.TP 5
+\fIcolor0\fP
+The widget background color. The default is black.
+.TP 5
+\fIcolor1\fP
+The widget foreground color. The default is white.
+.TP 5
+\fIcolor2\fP thru \fIcolor9\fP
+Optional drawing colors. The line color used for graphics is set using
+an escape sequence to select the current color index. See \fIGterm I/O
+Escape Sequences\fP below for more details.
+.TP 5
+\fIcrosshairCursorColor\fP
+Color of the full screen crosshair cursor.
+.TP 5
+\fIdefaultMarker\fP
+Default marker type. Options include \fItext\fP, \fIline\fP, \fIpolyline\fP,
+\fIrectangle\fP, \fIbox\fP, \fIcircle\fP, \fIellipse\fP, and \fIpolygon\fP.
+The default is \fIrectangle\fP.
+.TP 5
+\fIdeiconifyWindow\fP
+De-iconify the Gterm graphics window when activated. The default is False.
+.TP 5
+\fIdialogBgColor\fP
+Dialog box (i.e. the status line) background color. Dialog text is text which
+is drawn into the dialog area at the bottom of the gterm window, it is
+transient and is not a permanent part of the graphics being drawn. Dialog
+text is normally used to interact with the user or to display messages
+during program operation, without affecting the graphics being drawn.
+.TP 5
+\fIdialogFgColor\fP
+Dialog box (i.e. status line) foreground color.
+.TP 5
+\fIginmodeBlinkInterval\fP
+Graphics cursor blink interval, time is specified in milliseconds. The
+default is 0.
+.TP 5
+\fIginmodeCursor\fP
+Graphics mode cursor type. The default is a full screen cursor custom to
+the widget.
+.TP 5
+\fIheight\fP
+Height of the Gterm window. The default is 480.
+.TP 5
+\fIidleCursor\fP
+Cursor to use when not in graphics mode. The default is a plus sign.
+.TP 5
+\fImarkerHighlightColor\fP
+Highlight color for the active marker. When the pointer moves into a marker
+is it marked "active", the highlight color and width change to which marker
+is active. The default is green.
+.TP 5
+\fImarkerHighlightWidth\fP
+Highlight width for the active marker. The default is 2.
+.TP 5
+\fImaxColors\fP
+The maximum number of colors to use in the private global colormap, the
+default is 216. Out of this number 10 colors (the \fIcolor0\fP thru
+\fIcolor9\fP values) are reserved by the widget as static colors, the
+remainder may be allocated for images.
+.TP 5
+\fIraiseWindow\fP
+Raise the window when active. The default is False.
+.TP 5
+\fIwarpCursor\fP
+Warp the cursor to the window when active. The default is False.
+.TP 5
+\fIwidth\fP
+Width of the Gterm window. The default is 640.
+
+.SH "GTERM WIDGET RESOURCES"
+
+.SS "Class Hierarchy"
+.PP
+\fBCore -> Gterm\fP
+.SS "Resources"
+.PP
+When creating a Gterm widget instance, the following resources are retrieved
+from the arguments list or from the resource database:
+
+.TS
+center;
+lB lB lB lB
+l l l l.
+Name Class Type Default Description
+=
+alphaFont1 XFontStruct nil2 Graphics fonts
+alphaFont2 XFontStruct 5x8 "
+alphaFont3 XFontStruct 6x10 "
+alphaFont4 XFontStruct 7x13 "
+alphaFont5 XFontStruct 8x13 "
+alphaFont6 XFontStruct 9x15 "
+alphaFont7 XFontStruct 9x15 "
+alphaFont8 XFontStruct 9x15 "
+basePixel Int 38 Base of private global colormap
+busyCursor String watch Cursor to use when application is busy
+busyCursorBgColor Foreground white Busy cursor background color
+busyCursorFgColor Foreground black Busy cursor foreground color
+cacheRasters String whenNeeded Save rasters as server pixmaps for faster access
+cmapInitialize Boolean False Initialize colormap at startup
+cmapInterpolate Boolean True Interpolate colormap
+cmapName String default Custom colormap name
+cmapShadow Int 10 Colormap shadow interval
+cmapUpdate Int 60 Colormap update interval
+color0 Background black Default graphics background color
+color1 Foreground white Default graphics foreground color
+color2 Foreground red Optional drawing color
+color3 Foreground green "
+color4 Foreground blue "
+color5 Foreground cyan "
+color6 Foreground yellow "
+color7 Foreground magenta "
+color8 Foreground purple "
+color9 Foreground darkslategray "
+copyOnResize Boolean True Copy raster when resized
+crosshairCursorColor Foreground red Full-screen cursor color
+defaultMarker String rectangle Default marker type
+deiconifyWindow Boolean False Deiconify window when active
+dialogBgColor Foreground yellow Status line background color
+dialogFgColor Foreground black Status line foreground color
+dialogFont1 XFontStruct nil2 Status line fonts
+dialogFont2 XFontStruct 5x8 "
+dialogFont3 XFontStruct 6x10 "
+dialogFont4 XFontStruct 7x13 "
+dialogFont5 XFontStruct 8x13 "
+dialogFont6 XFontStruct 9x15 "
+dialogFont7 XFontStruct 9x15 "
+dialogFont8 XFontStruct 9x15 "
+ginmodeBlinkInterval Int 0 Graphics cursor blink interval
+ginmodeCursor String full_crosshair Graphics cursor type
+ginmodeCursorBgColor Foreground black Graphics cursor background color
+ginmodeCursorFgColor Foreground white Graphics cursor foreground color
+height Dimension 480 Height of graphics window
+idleCursor String Plus Idle cursor type
+idleCursorBgColor Foreground white Idle cursor background color
+idleCursorFgColor Foreground black Idle cursor foreground color
+markerBoxKnotColor Foreground blue Vertex knot color
+markerBoxKnotSize Int 0 Vertex knot size
+markerBoxLineColor Foreground green Marker border color
+markerCircleKnotColor Foreground blue Vertex knot color
+markerCircleKnotSize Int 0 Vertex knot size
+markerCircleLineColor Foreground green Marker border color
+markerCursorBgColor Foreground black Cursor background when in marker
+markerCursorFgColor Foreground yellow Cursor foreground when in marker
+markerEllipseKnotColor Foreground blue Vertex knot color
+markerEllipseKnotSize Int 0 Vertex knot size
+markerEllipseLineColor Foreground green Marker border color
+markerFill Boolean False Flood fill marker area with \fImarkerFillColor\fP
+markerFillBgColor Foreground black Fill area background color
+markerFillColor Foreground slategray Flood fill color
+markerFillStyle Int FillSolid Fill area style
+markerHighlightColor Foreground green Marker highlight color
+markerHighlightWidth Int 2 Marker highlight line width
+markerLineKnotColor Foreground blue Vertex knot color
+markerLineKnotSize Int 5 Vertex knot size
+markerLineLineColor Foreground green Line marker color
+markerLineStyle Int LineSolid Line marker line style
+markerLineWidth Int 1 Line marker width
+markerPgonKnotColor Foreground blue Vertex knot color
+markerPgonKnotSize Int 5 Vertex knot size
+markerPgonLineColor Foreground green Marker border color
+markerRectKnotColor Foreground blue Vertex knot color
+markerRectKnotSize Int 0 Vertex knot size
+markerRectLineColor Foreground green Marker border color
+markerTextBgColor Foreground slategray Text marker background color
+markerTextBorder Int 2 Text marker border width
+markerTextColor Foreground yellow Text marker text color
+markerTextFont XFontStruct 6x13 Text marker font
+markerTextLineColor Foreground green Text marker line color
+markerTextString String NULL Text string
+markerTranslations String default Marker event-to-actions translations
+maxColors Int 216 Max colors in custom colormap
+maxMappings Int 32 Max image mappings
+maxRasters Int 512 Max image rasters
+nearEdge Int 1 T{
+Distance, in pixels, between pointer and marker edge required
+for translation actions for be in effect.
+T}
+nearVertex Int 4 T{
+Distance, in pixels between pointer and marker vertex (i.e. \fIknot\fP)
+required for translation actions for be in effect.
+T}
+raiseWindow Boolean False Raise window when active
+translations String default Event-to-actions translations
+useTimers Boolean True Ok to use timers
+warpCursor Boolean False Enable warp cursor when active
+width Dimension 640 Height of graphics window
+xorFill Boolean False Fill with GXxor
+xorFillBgColor Int 255 Xor-fill background color
+xorFillColor Int 2 Xor-fill color
+.TE
+
+.SH "GTERM WIDGET TRANSLATIONS AND ACTIONS"
+
+.LP
+The default translations for a Gterm window are:
+.TS
+center;
+r l.
+<Btn1Down>: m_create()
+<Btn2Down>: crosshair(on)
+<Btn2Motion>: crosshair(on)
+<Btn2Up>: crosshair(off)
+<EnterWindow>: enter-window()
+<LeaveWindow>: leave-window()
+<KeyPress>: graphics-input()
+<Motion>: track-cursor()
+.TE
+.LP
+The available action procedures for a Gterm window are:
+.RS
+.TP 20
+\fIignore()\fP
+Ignore an event.
+.TP 20
+\fIgraphics-input()\fP
+Handle a graphics input request.
+.TP 20
+\fIcrosshair(on|off)\fP
+Display a crosshair cursor.
+.TP 20
+\fItrack-cursor()\fP
+Track crosshair cursor position.
+.TP 20
+\fIenter-window()\fP
+Handle an EnterWindow event.
+.TP 20
+\fIleave-window()\fP
+Handle an LeaveWindow event.
+.TP 20
+\fIreset()\fP
+Do a soft reset of the Gterm widget.
+.TP 20
+\fIm_create()\fP
+Create a new marker. Valid types include
+.TS
+center;
+l l l l.
+\fItext line polyline rectangle
+box circle ellipse polygon\fP
+.TE
+The default is \fIrectangle\fP, if no type is given the default type
+specified by the \fImarkerType\fP resource will be used.
+.RE
+
+.SH "GTERM MARKER TRANSLATIONS AND ACTIONS"
+
+.LP
+The default translations for a marker are:
+
+.TS
+center;
+r l.
+!Shift <Btn1Motion>: m_rotateResize()
+<Btn1Motion>: m_moveResize()
+!Shift <Btn1Down>: m_raise() m_markpos()
+<Btn1Down>: m_raise() m_markposAdd()
+<Btn1Up>: m_redraw() m_destroyNull()
+<Btn2Down>: m_lower()
+<Key>BackSpace: m_deleteDestroy()
+<Key>Delete: m_deleteDestroy()
+<KeyPress>: m_input()
+<Motion>: track-cursor()
+.TE
+
+Translations affect only the currently active marker, the cursor must be
+within \fInearEdge\fP pixels of a marker edge, or \fInearVertex\fP pixels
+of a marker vertex to take effect.
+
+The available action procedures for a marker are
+.RS
+.TP 18
+\fIm_create(type)\fP
+Create a new marker. Valid types include
+.TS
+center;
+l l l l.
+\fItext line polyline rectangle
+box circle ellipse polygon\fP
+.TE
+The default is \fIrectangle\fP, if no type is given the default type
+specified by the \fImarkerType\fP resource will be used.
+.TP 18
+\fIm_destroy()\fP
+Destroy the active marker.
+.TP 18
+\fIm_destroyNull()\fP
+Destroy the active marker if it is null sized.
+.TP 18
+\fIm_set(attribute, value, ....)\fP
+Set a marker attribute. Valid attributes include
+
+.TS
+center;
+l l l l.
+\fIactivated autoRedraw fill fillBgColor
+fillColor fillPattern fillStyle font
+height highlightColor imageText knotColor
+knotSize lineColor lineStyle lineWidth
+rotangle sensitive textBgColor textBorder
+textColor translations type visible
+width x y \fP
+.TE
+.TP 18
+\fIm_raise()\fP
+Raise the active marker to the top of the display list.
+.TP 18
+\fIm_lower()\fP
+Lower the active marker to the bottom of the display list.
+.TP 18
+\fIm_notify(event, event, ....)\fP
+Notify any clients that have registered callbacks for the specified type
+of events. Recognized events include
+.TS
+center;
+l l l.
+\fInotify \fImoveResize \fImodify
+\fIredraw \fIdestroy \fIinput
+\fIfocusIn \fIfocusOut \fIconstraint\fP
+.TE
+.TP 18
+\fIm_input()\fP
+Notify any clients that have registered a input callback that a input event
+has occurred.
+.TP 18
+\fIm_markpos()\fP
+Mark the current position of the marker, e.g., so that it can later be erased.
+.TP 18
+\fIm_markposAdd()\fP
+Execute either the markpos or add action, depending upon
+the pointer location. If the pointer is over an active marker at a
+location where the add action can be executed this is done, otherwise the
+markpos action is executed.
+.TP 18
+\fIm_redraw()\fP
+Redraw the active marker.
+.TP 18
+\fIm_addPt()\fP
+Add a point (i.e. vertex knot). \fIPolyline\fP and \fIpolygon\fP markers only.
+.TP 18
+\fIm_deletePt()\fP
+Delete a point (i.e. vertex knot).
+.TP 18
+\fIm_movePt()\fP
+Move a point (i.e. vertex knot). \fIPolyline\fP and \fIpolygon\fP markers only.
+.TP 18
+\fIm_deleteDestroy()\fP
+Delete a point or destroy a marker, depending upon the pointer position.
+.TP 18
+\fIm_move()\fP
+Move a marker.
+.TP 18
+\fIm_resize()\fP
+Resize a marker.
+.TP 18
+\fIm_moveResize()\fP
+Move a point or marker, or resize a marker, depending upon the pointer
+position.
+.TP 18
+\fIm_rotate()\fP
+Rotate a marker.
+.TP 18
+\fIm_rotateResize()\fP
+Rotate or resize a marker. A marker is rotated if near a vertex know, or
+resized if near an edge.
+.RE
+
+.SH "GTERM I/O ESCAPE SEQUENCES"
+XGterm uses escape sequences to provide graphics emulation.
+This protocol is an extension of the Tektronix 4012 graphics protocol.
+The basic extensions are patterned after the Retrographics VT640 graphics
+terminal, using GS (octal \\035, aka Ctrl-]) and CAN (octal \\030, aka
+Ctrl-x) to switch between vt100 and graphics modes.
+Additional extensions are defined to support advanced features such as
+color, area fills, graphics erasure, setting the cursor location under
+program control, interactive dialog via the "status line", and so on.
+
+While these escape sequences can be used directly, the best programmatic
+interface is to use the OBM (\fIObject Manager\fP) library supplied with
+the XGterm source as part of the X11IRAF package. Any Tektronix-compatible
+graphics library will suffice for producing vector graphics, the added
+escape sequences used by the Gterm widget are required to make use of
+imaging, area fills, the status line, etc.
+
+All escape sequences begin with an \fBESC\fP character (octal \\033), followed
+by up to three characters defining the action to be taken. All strings in
+capital letters refer to the ASCII code (e.g. \fILF\fP is the ASCII linefeed
+code), a three digit number preceeded by a '\' refers to an octal code (e.g.
+"\012" is octal 12) , all others are characters in the escape code (e.g.
+"/bc" are the three characters '/', 'b', and 'c').
+
+.SS "ESCAPE SEQUENCES"
+
+.RS
+.TP 15
+\fBUS\fP
+.sp -0.5
+.TP 15
+\fBCR\fP
+Switch to alpha mode. Characters are drawn in the graphics window at the
+"current" position (normally set beforehand with a GS/US vector move),
+using the alpha mode font. Receipt of any control code causes alpha mode to be
+exited.
+
+.TP 15
+\fBGS\fP
+Switch to vector polyline mode.
+.sp -0.5
+.TP 15
+\fBFS\fP
+Switch to vector polypoint mode.
+.sp -0.5
+.TP 15
+\fBRS\fP
+Switch to vector mode, vertices are joined as a polygon.
+
+With all three codes, vertices and points are accumulated in a buffer and
+displayed when the buffer fills or when vector mode is terminated by receipt
+of any control code. A workstation open will be done if it hasn't already
+been opened, no-op sequences GS-CAN are filtered out, since they would only
+cause a pointless switch to the graphics frame and back without drawing.
+The open workstation sequence is GS,US, or by the \fIxterm\fP graphics start
+escape sequence "[?38h".
+
+.TP 15
+\fBEM\fP
+Enter message mode. In message mode input text is accumulated in a buffer
+and eventually passed to the object manager, which delivers the message to
+the referenced object. Messages are used to download the user interface to
+be executed by the object manager. During execution, messages are used
+to set the values of user interface parameters to allow the UI to track
+the state of the client application.
+
+.TP 15
+\fBCAN\fP
+Close workstation and enter command mode.
+.TP 15
+\fBBEL\fP
+Ring the screen bell.
+
+.TP 15
+\fBENQ\fP
+Return terminal status. Returned values include the terminal mode, and alpha
+cursor x and y position.
+.TP 15
+\fBSUB\fP
+Initiate a cursor read, values are returned in window coordinates.
+.TP 15
+\fB/SUB\fP
+Return window cursor position in raster coordinates.
+.TP 15
+\fBFF\fP
+Clear the screen.
+.TP 15
+\fB/f\fP
+Set current cursor position.
+.TP 15
+\fB0\fP
+Set character size 0. (Currently ignored).
+.sp -0.5
+.TP 15
+\fB1\fP
+Set character size 1. (Currently ignored).
+.sp -0.5
+.TP 15
+\fB2\fP
+Set character size 2. (Currently ignored).
+.sp -0.5
+.TP 15
+\fB3\fP
+Set character size 3. (Currently ignored).
+.TP 15
+\fB/0d\fP
+Set color index.
+.sp -0.5
+.TP 15
+\fB/1d\fP
+Clear graphics screen.
+.sp -0.5
+.TP 15
+\fB/2d\fP
+Invert graphics screen
+.TP 15
+\fB`\fP
+Select line style 0. (Solid)
+.sp -0.5
+.TP 15
+\fBa\fP
+Select line style 1. (Dashed)
+.sp -0.5
+.TP 15
+\fBb\fP
+Select line style 2. (Dotted)
+.sp -0.5
+.TP 15
+\fBc\fP
+Select line style 3. (DashDot)
+.sp -0.5
+.TP 15
+\fBd\fP
+Select line style 4. (Dash3Dot)
+.TP 15
+\fB/0w\fP
+Select line width 0.
+.sp -0.5
+.TP 15
+\fB/1w\fP
+Select line width 1.
+.sp -0.5
+.TP 15
+\fB/2w\fP
+Select line width 2.
+.sp -0.5
+.TP 15
+\fB/nw\fP
+Select line width 3.
+.TP 15
+\fB/0c\fP
+Select line color 0.
+.sp -0.5
+.TP 15
+\fB/1c\fP
+Select line color 1.
+.sp -0.5
+.TP 15
+\fB/2c\fP
+Select line color 2.
+.sp -0.5
+.TP 15
+\fB/3c\fP
+Select line color 3.
+.sp -0.5
+.TP 15
+\fB/4c\fP
+Select line color 4.
+.sp -0.5
+.TP 15
+\fB/5c\fP
+Select line color 5.
+.sp -0.5
+.TP 15
+\fB/6c\fP
+Select line color 6.
+.sp -0.5
+.TP 15
+\fB/7c\fP
+Select line color 7.
+.sp -0.5
+.TP 15
+\fB/8c\fP
+Select line color 8.
+.sp -0.5
+.TP 15
+\fB/9c\fP
+Select line color 9.
+.RE
+
+.SS "IMAGING ESCAPE SEQUENCES"
+
+These are encoded as follows:
+
+ \fBESC\fP <code> [ \fIP ; P\fP ; ... ] <\fIdata\fP>
+
+where \fIcode\fR is a character sequence and \fIP\fP is an ASCII encoded
+parameter described below.
+.RS
+.TP 15
+\fB/nc\fP
+Select line color. Parameter is the color number in the range 0-9.
+.TP 15
+\fBsre\fP
+\fIReset\fP. Parameters are "reset-str".
+.TP 15
+\fBssz\fP
+\fIResize\fP. Parameters are "resize-str".
+.TP 15
+\fBrir\fP
+\fIInitialize raster\fP.
+.TP 15
+\fBrcr\fP
+\fICreate a raster\fP. Parameters are raster number, type, width, height, and
+depth. Type is 1 for a normal (client) raster, 2 for cached in server memory,
+or 0 if you don't care. Depth may be 1, 8, 16, or 32.
+.TP 15
+\fBrde\fP
+\fIDestroy a raster\fP. Parameter is raster number.
+.TP 15
+\fBrqr\fP
+\fIQuery a raster\fP. Parameter is raster number.
+Output parameters are status, type, width, height, and depth encoded in the
+string ""\\033[5;%d;%d;%d;%d;%d]".
+.TP 15
+\fBrsr\fP
+\fISelect a raster\fP. Parameter is raster number.
+.TP 15
+\fBrwr\fP
+\fIWrite pixels to a rectangular region of a raster\fP. Parameters are raster
+number, encoding type (not used), x1, y1, nx, ny, and depth followed by
+(nx*ny) data pixels.
+.TP 15
+\fBrrd\fP
+\fIRead from a rectangular region of a raster\fP. Parameters are raster
+number, encoding type (not used), x1, y1, nx, ny, and depth followed by (nx*ny)
+data pixels.
+.TP 15
+\fBrrp\fP
+\fIRefresh raster pixels\fP. Parameters are raster number, coordinate type (0
+for pixel, 1 for NDC), x1, y1, nx, ny.
+.TP 15
+\fBrsp\fP
+\fISet all the raster pixels in a region to a single color\fP. Parameters are
+raster number, coordinate type (0 for pixel, 1 for NDC), x1, y1, nx, ny,
+color, and raster operand. If nx=ny=0 the entire raster will be written.
+Raster operands include transient (octal 020), refresh_all (octal 040),
+or refresh_none (octal 100).
+.TP 15
+\fBrco\fP
+\fICopy a region of the source raster to a region of the
+destination raster\fP. Parameters are raster operand, source raster number,
+source type, source x coord, source y coord, source width, source height,
+destination raster number, destination type, destination x coord, destination
+y coord, destination width, destination height, If the input and output
+regions are not the same size the subimage is automatically scaled to fit
+the destination region. If the destination extent DNX or DNY is negative,
+the image is flipped in that axis. The type of spatial scaling performed is
+determined by the scale factors (zoom, dezoom, or no scaling). The rasterop
+argument is used to exercise fine control over how the mapping is performed,
+e.g. to force a refresh, implement a transient mapping, or in the case of a
+dezoom (many-to-one) mapping, select the antialiasing technique to be used.
+.TP 15
+\fBrwc\fP
+\fIWrite a colormap\fP. Parameters are colormap number, first color and the
+number of colors followed by NC colors triples in the data.
+.TP 15
+\fBrrc\fP
+\fIReturn the color assignments for a region of the named colormap\fP.
+Parameters are colormap number, first color and the number of colors followed
+by NC colors triples in the data.
+.TP 15
+\fBrlc\fP
+\fILoad a colormap into the display\fP, optionally scaling the colormap via a
+linear transformation in the process. Parameters are the colormap number, the
+offset value, and the cursor x and Y coordinates in NDC units. The colormap is
+unaffected if offset=0.5, scale=1.0. A negative scale inverts the image.
+If map=0 the linear transformation is applied directly to the display colormap.
+.TP 15
+\fBrfc\fP
+\fIFree a colormap\fP. Parameter is the colormap number.
+.TP 15
+\fBrwo\fP
+\fIWrite the IOmap\fP. Parameters are the first color and the number of colors,
+followed by NC color triples in the data. An iomap is an optional lookup
+table used to isolate the client application from the color model used within
+the Gterm widget. To simplify color allocation the Gterm widget defines a
+logical color space where color 0 is the background, 1 the foreground, 2-N are
+statically allocated standard colors, and colors N+1 and above are dynamically
+allocated by the graphics application. Less-demanding applications use
+only the statically allocated, shared colors. The widget internally maps
+these logical colors to whatever the window system requires, but providing
+a well-defined logical color space isolates the client from the details of
+color allocation in the underlying window system.
+
+An iomap can be used to define a mapping between the color model of the
+client application and the Gterm color model (when we say color model here
+we mean color allocation schemes for 8 bit pseudocolor). By default the
+iomap is one-to-one. The use of an iomap frees the client from having to
+worry about color index translations, and allows color tables to be
+combined in the widget for greater efficiency when color tables are serially
+applied. The iomap applies to all color indices or pixel values passed
+in i/o operations between the client and the Gterm widget.
+.TP 15
+\fBrro\fP
+\fIRead the IOmap\fP. Return values are the first color and the number of
+colors, followed by NC color triples in the data.
+.TP 15
+\fBrim\fP
+\fIDelete all mappings\fP and initialize the mapping subsystem.
+.TP 15
+\fBrsm\fP
+\fIDefine a new mapping function\fP, or modify an old one.
+If a new mapping is defined it is merely enabled, and no refreshing
+of the screen takes place until either some mapped data is written
+to or the mapping is explicitly refreshed. If an existing mapping is
+modified the old and new mappings are examined and only those portions
+of the destination rect for which the mapping changed are updated.
+This permits minor changes to a mapping (e.g. moving an edge) without
+having to redraw the entire region. Regions of the destination drawable
+which were previously covered by the mapping but which were exposed by
+modifying the mapping are redrawn.
+.TP 15
+\fBrgm\fP
+\fIReturn the external parameters of a mapping\fP. Parameter is the mapping
+number, values returned (in the string
+"\\033[6;%d;%d %d;%d;%d;%d;%d;%d %d;%d;%d;%d;%d;%d]") are the mapping
+number, rasterop, source mapping, type, x, y, width, height, and destination
+mapping, type, x, y, width and height.
+.TP 15
+\fBrem\fP
+\fIEnable a mapping\fP. Parameters are the mapping number and an integer
+flag indicating whether to refresh the mapping.
+.TP 15
+\fBrdm\fP
+\fIDisable a mapping\fP. Disabling a mapping does not
+affect the mapping definition, hence a disabled mapping may later be
+reenabled. Parameters are the mapping number and an integer flag indicating
+whether to erase the mapping.
+.TP 15
+\fBrrm\fP
+\fIRefresh a mapping\fP. Parameter is the mapping number.
+.TP 15
+\fBrfm\fP
+\fIFree a mapping\fP. Parameter is the mapping number.
+.RE
+
+.SH "MORE ON IMAGING"
+The imaging model of the Gterm widget defines the following key object or
+data types: \fIrasters\fP, \fImappings\fP, and \fIcolors\fP.
+.TP 10
+.B "raster"
+A raster is a MxN array of pixels. At present pixels are 8 bits deep but
+hooks are built into the widget to expand this in the future. Pixel
+values are indices into the Gterm virtual colormap, with values starting at
+zero. A raster may be any size. A raster is merely a two-dimensional array
+in the graphics server; it is not displayed unless mapped. An exception is
+raster zero, which is the graphics window. Rasters are referred to by number,
+starting with zero. Initially only raster zero exists; new rasters are created
+with the create raster escape code \fBrcr\fP. Space for rasters may be
+allocated either in the graphics server, or in the X server. This has
+implications on performance but is otherwise transparent to the client.
+By default rasters are allocated in the graphics server, i.e., in the X client.
+.TP 10
+.B "mapping"
+A mapping defines a projection of a rectangle of the source raster onto a
+rectangle of the destination raster. Mappings may be either enabled (active)
+or disabled. When a mapping is enabled, any change to a pixel in the source
+rect will cause the corresponding pixels in the destination rect to be
+updated. Mappings are referred to by number starting with one. Initially
+no mappings are defined. If the size of the input and output rect is not
+the same the input rect will be scaled by pixel replication or subsampling
+to fill the output rect. If the argument DW (destination width) or DH
+(destination height) of the destination rect is negative, the image will be
+flipped around the corresponding axis when copied to the destination; the
+region of the destination drawn into is the same in either case. Multiple
+mappings may reference the same source or destination raster. Mappings are
+refreshed in order by the mapping number. Modifying a mapping causes the
+changed regions of the destination rect to be refreshed.
+.TP 10
+.B "color"
+The \fIGterm\fP widget provides a fixed number of preassigned colors
+corresponding to pixel values 0 through 9. Zero is the background color,
+one is the foreground color, and 2-9 (8 colors) are arbitrary colors defined
+by Gterm widget resources. These static colors are normally used to draw
+the background, frame, axes, titles, etc. of a plot, or to draw color
+graphics within the drawing area. The advantage of static colors is that
+they are shared with other X clients, and the values of these colors may be
+assigned by the user to personalize the way plots look.
+
+The \fIGterm\fP widget also allows any number (up to about 200 or so) additional
+colors to be defined at runtime by the client application. These color
+values start at pixel value 10 and go up to the maximum pixel value assigned
+by the client. The client application allocates colors with the
+write colormap escape code \fBrwc\fP. Attempts to overwrite the values of
+the static colors are ignored. The values of already allocated colors may
+be changed dynamically at runtime using write colormap code to write the
+desired range of color values.
+
+Applications should not assume that there are 10 static colors and 200 or
+so allocatable colors. The IRAF graphcap entry for the logical device in use,
+and resources set for the widget,
+defines these parameters for the device. Alternatively, the read colormap
+code may be used to dynamically determine how many colors the server has
+preallocated when the application starts up.
+
+An image may use either static and dynamic pixel values or both types of
+values, but in most cases imaging applications involve smoothly shaded
+surfaces hence will require dynamically assigned private colors.
+
+If for some reason the client application cannot use the \fIGterm\fP widget
+color model, the IOMAP feature can be used to make the widget appear to have
+some externally defined (i.e., client defined) color model.
+.LP
+The maximum number of rasters and maximum number of mappings is defined by
+the Gterm widget resources \fImaxRaster\fP and \fImaxMappings\fP (or in the
+GUI file) when the graphics application starts up. The maximum values should
+be much larger than most applications require. Applications should allocate
+raster or mapping numbers sequentially starting at 1 (more or less) to avoid
+running out of raster or mapping descriptors.
+
+The {read|write}pixels escape codes operate directly on
+raster pixels. The mapping escape codes support two alternative coordinate
+systems, raster pixels and NDC (normalized device coordinates), as indicated
+by the ST or DT argument (source or destination coordinate type). Note
+that the origin of the pixel coordinate system is the upper left corner of
+the display window (consistent with most graphics systems), whereas the origin
+of the NDC coordinate system is the lower left corner (consistent with IRAF).
+
+Pixel coordinates allow precise control of imaging but require the
+application to know the window size, and may result in complications e.g. if
+the window is resized. NDC coordinates pretty much guarantee that a mapping
+will involve sampling, hence are not the most efficient, but the graphics
+will be drawn correctly no matter how the window is resized and for most
+applications the performance difference is negligible. Most applications
+should use NDC coordinates for raster 0 (the display window), and pixel
+coordinates for rasters 1-N.
+
+Although the size of rasters 1 and higher are defined by the client
+application, the size of raster zero, the actual gterm display window, is
+subject to the constraints of the window system. The client can attempt to
+reset the size of the gterm window using create raster escape with raster=0,
+however the Gterm widget, UI containing the \fIGterm\fP widget, and the window
+manager are all free to deny such a request. The query raster escape should be
+called to determine the actual size of the window one will be drawing into.
+
+.SS AN EXAMPLE IMAGING APPLICATION
+
+.LP
+An example of a simple imaging application might be one that downloads an
+image and displays it in the gterm window, filling the window. This could
+be done as follows (following a graphics open and other escape codes to
+prepare the drawing surface).
+
+.TP 15
+\fIcreate raster\fP
+Create raster 1 the size of the pixel array to be displayed. This need not
+be the same as the size of the gterm display window.
+.TP 15
+\fIset mapping\fP
+Define a mapping between raster 1 and raster 0, the display window, using
+NDC coordinates to define the region of the display window to be
+filled. The mapping number is arbitrary but mappings should normally be
+allocated starting with 1. The mapping is automatically enabled
+when first defined.
+.TP 15
+\fIwrite colormap\fP
+(Optional). Define the pixel value to RGB color assignments for the image
+pixels.
+.TP 15
+\fIwrite pixels\fP
+This escape is called one or more times to write pixels into raster 1.
+At most 32K pixels can be written in each call. As each write is
+made the affected region of the display window will be updated.
+.LP
+Alternatively, one could write the pixels and then define the mapping to
+cause the entire image to be displayed at once.
+
+Note that the imaging escape can be combined with normal graphics to draw text
+and graphics around or on top of an image region. The order in which drawing
+operations occur is important, e.g., to draw graphics or text on top of an
+image the image should be drawn first.
+
+.SH "MARKERS"
+Markers are a general feature of the \fIGterm\fP widget and are used more
+extensively in other programs (e.g. the prototype IRAF science GUI
+applications), but they have no real use in \fIxgterm\fP when used as
+simply a graphics terminal. All markers share some of the same characteristics,
+so it is worthwhile learning basic marker manipulation keystrokes (as defined
+using the default marker translations), especially how to delete an
+accidentally created marker:
+.RS
+.TP 3
+\fBo\fP
+\fIDelete\fP or \fIBackspace\fP in a marker deletes it.
+.TP 3
+\fBo\fP
+MB1 anywhere inside a marker may be used to drag the marker.
+.TP 3
+\fBo\fP
+MB1 near a marker corner or edge, depending on the type of marker,
+resizes the marker.
+.TP 3
+\fBo\fP
+Shift-MB1 on the corner of most markers will rotate the marker.
+.TP 3
+\fBo\fP
+Markers stack, if you have several markers and you put one on top of
+the other. The active marker is highlighted to tell you which of the
+stacked markers is active. If the markers overlap, this will be marker
+"on top" in the stacking order.
+.TP 3
+\fBo\fP
+MB2 in the body of a marker "lowers" the marker, i.e. moves it to the
+bottom of the stacking order.
+.RE
+
+.SH ENVIRONMENT
+.I XGterm
+sets the environment variables ``TERM'' and ``TERMCAP'' properly for the
+size window you have created.
+It also uses and sets the environment
+variable ``DISPLAY'' to specify which bit map display terminal to use.
+The environment variable ``WINDOWID'' is set to the X window id number
+of the \fIxgterm\fP window.
+
+.SH "SEE ALSO"
+xterm(1), resize(1), X(1), pty(4), tty(4)
+.br
+\fIXterm Control Sequences\fP (in the \fIxterm\fP source directory)
+
+.SH BUGS
+Many of the same bugs affecting \fIxterm\fP also apply here.
+
+\fIXgterm\fP is not normally installed with setuid permissions. On some
+Linux systems, for example, where the /dev/tty and /dev/pty devices have
+root ownership and permission 600 this can cause problems. Workarounds
+are to either install \fIXGterm\fP with setuid permissions or modify the
+/dev/tty and /dev/pty devices to have permission 666.
+
+.SH COPYRIGHT
+Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
+