DtTerm(3)

DtTerm - DtTerm widget class

As shipped in IRIX 6.5.22. Added in IRIX 6.5.19.

     NAME
          DtTerm - DtTerm widget class

     SYNOPSIS
          #include <Dt/Term.h>

     DESCRIPTION
          The DtTerm widget provides the core set of functionality
          needed to emulate an ANSI X3.64-1979- and ISO 6429:1992(E)-
          style terminal, such as the DEC VT220.  This functionality
          includes text rendering, scrolling, margin and tab support,
          escape sequence parsing and the low-level OS-specific
          interface required to allocate and configure a pty or
          STREAMS pseudo-terminal device and write the system's utmp
          device.

        Classes
          The DtTerm widget inherits behavior and resources from the
          Core and XmPrimitive classes.

          The class pointer is dtTermWidgetClass .

          The class name is DtTerm.

        New Resources
          The following table defines a set of widget resources used
          by the application to specify data.  The application can
          also set the resource values for the inherited classes to
          set attributes for this widget.  To reference a resource by
          name or by class in a .Xdefaults file, the application must
          remove the DtN or DtC prefix and use the remaining letters.
          To specify one of the defined values for a resource in a
          .Xdefaults file, the application must remove the Dt prefix
          and use the remaining letters (in either lower case or upper
          case, but including any underscores between words).  The
          codes in the access column indicate if the given resource
          can be set at creation time (C), set by using XtSetValues()
          (S), retrieved by using XtGetValues() (G), or is not
          applicable (N/A).

                                    DtTerm Resource Set, Part 1 of 2
          ____________________________________________________________________________________
          Name                     Class                  Type          Default         Access
          ____________________________________________________________________________________
          DtNallowSendEvents       DtCAllowSendEvents     Boolean       False           CSG
          DtNappCursorDefault      DtCAppCursorDefault    Boolean       False           CSG
          DtNappKeypadDefault      DtCAppKeypadDefault    Boolean       False           CSG
          DtNautoWrap              DtCAutoWrap            Boolean       True            CSG
          DtNbackgroundIsSelect    DtCBackgroundIsSelect  Boolean       False           CG
          DtNbaseHeight            DtCBaseHeight          int           0               G

          DtNbaseWidth             DtCBaseWidth           int           0               G
          DtNblinkRate             DtCBlinkRate           int           250             CSG
          DtNc132                  DtCC132                Boolean       False           CSG
          DtNcharCursorStyle       DtCCharCursorStyle     unsigned      DtTERM_CHAR-    CSG
                                                             char          _CURSOR_BOX
          DtNcolumns               DtCColumns             short         80              CSG
          DtNconsoleMode           DtCConsoleMode         Boolean       False           CG
          DtNemulationID           DtCEmulationID         String        ``DtTermWidget''CSG
          DtNheightInc             DtCHeightInc           int           0               G
          DtNinputVerifyCallback   DtCCallback            XtCallbackListNULL            C
          DtNjumpScroll            DtCJumpScroll          Boolean       True            CSG
          DtNkshMode               DtCKshMode             Boolean       False           CSG
          DtNlogging               DtCLogging             Boolean       False           CSG
          DtNmapOnOutput           DtCMapOnOutput         Boolean       False           CSG
          DtNmapOnOutputDelay      DtCMapOnOutputDelay    int           0               CSG
          DtNmarginBell            DtCMarginBell          Boolean       False           CSG
          DtNmarginHeight          DtCMarginHeight        Dimension     2               CSG
          DtNmarginWidth           DtCMarginWidth         Dimension     2               CSG
          DtNnMarginBell           DtCNMarginBell         int           10              CSG
          DtNoutputLogCallback     DtCCallback            XtCallbackListNULL            C
          DtNpointerBlank          DtCPointerBlank        Boolean       False           CSG
          DtNpointerBlankDelay     DtCPointerBlankDelay   int           2               CSG
          DtNpointerColor          DtCForeground          String        dynamic         CSG
          DtNpointerColorBackgroundDtCBackground          String        dynamic         CSG
          DtNpointerShape          DtCPointerShape        String        xterm           CSG
          DtNreverseWrap           DtCReverseWrap         Boolean       False           CSG
          DtNrows                  DtCRows                short         24              CSG
          DtNsaveLines             DtCSaveLines           string        4s              CG
          DtNshadowType            DtCShadowType          unsigned      DtSHADOW_IN     CSG
                                                             char
          DtNstatusChangeCallback  DtCCallback            XtCallbackListNULL            C
          DtNsubprocessArgv        DtCSubprocessArgv      String *      NULL            CG
          DtNsubprocessCmd         DtCSubprocessCmd       String        NULL            CG
          DtNsubprocessExec        DtCSubprocessExec      Boolean       True            CSG
          DtNsubprocessLoginShell  DtCSubprocessLoginShellBoolean       False           CG
          DtNsubprocessPid         DtCSubprocessPid       int           -1              G
          DtNsubprocess-           DtCCallback            XtCallbackListNULL            C
             TerminationCallback
          DtNsubprocess-           DtCSubprocess-         Boolean       True            CSG
             TerminationCatch         TerminationCatch
          DtNsunFunctionKeys       DtCSunFunctionKeys     Boolean       False           CSG
          DtNtermDevice            DtCTermDevice          int           -1              CG
          DtNtermDeviceAllocate    DtCTermDeviceAllocate  Boolean       True            CG
          DtNtermId                DtCTermId              String        ``vt220''       CSG
          DtNtermName              DtCTermName            String        ``dtterm''      CSG
          DtNtermSlaveName         DtCTermSlaveName       String        NULL            CG
          DtNttyModes              DtCTtyModes            String        NULL            CSG
          DtNuserBoldFont          DtCUserBoldFont        XmFontList    dynamic         CSG
          DtNuserFont              DtCUserFont            XmFontList    dynamic         CSG
          DtNverticalScrollBar     DtCVerticalScrollBar   Widget        NULL            CSG

          DtNvisualBell            DtCVisualBell          Boolean       False           CSG
          DtNwidthInc              DtCWidthInc            int           0               G

             allowSendEvents
                   Specifies that the terminal emulator allow
                   synthetic events (generated and sent by another
                   application).  Enabling this resource opens up a
                   possible security hole.

             appCursorDefault
                   Specifies the initial cursor mode.  If True, the
                   cursor keys are initially in application mode.  If
                   False, the cursor keys are initially in cursor
                   mode.

             appKeypadDefault
                   Specifies the initial keypad mode.  If True, the
                   keypad keys are initially in application mode.  If
                   False, the keypad keys are initially in numeric
                   mode.

             c132
                   Specifies whether or not the DECCOLM escape
                   sequence that switches between a 132- and 80-column
                   window is honored.

             consoleMode
                   Specifies that output directed at /dev/console be
                   directed instead to the terminal window.  It is
                   provided as a way to prevent output that would
                   normally be displayed on the internal terminal
                   emulator (ITE) from overwriting the X server's
                   display.  It is not provided as a general mechanism
                   to direct the output from an arbitrary system's
                   /dev/console to an arbitrary X server.  Ownership
                   of, and read-write permission for, /dev/console is
                   required to redirect console output.

             DtNautoWrap
                   Specifies whether or not auto-wrap is initially
                   enabled.

             DtNbackgroundIsSelect
                   Controls the background color.  When False, the
                   background color is the color specified.  When
                   True, the background color is the select color
                   corresponding to the background and is constant
                   with other Motif-based applications.

             DtNbaseHeight
                   Specifies the terminal window's base height.  With
                   this resource the application computes its base
                   height for the shell widget, which then allows the
                   window manager to provide appropriate sizing
                   feedback to the user.  The height of the terminal
                   window is:

                        DtNbaseHeight + DtNrows x DtNheightInc

             DtNbaseWidth
                   Specifies the terminal window's base width.  With
                   this resource the application computes its base
                   width for the shell widget, which then allows the
                   window manager to provide appropriate sizing
                   feedback to the user.  The width of the terminal
                   window is:

                        DtNbaseWidth + DtNcolumns x DtNwidthInc

             DtNblinkRate
                   Specifies the number of milliseconds the cursor is
                   in the on and off states while blinking.  A value
                   of 250 blinks the cursor two times per second.  A
                   value of zero turns blinking off.

             DtNc132
                   This resource specifies whether or not the DECCOLM
                   escape sequence should be honored.

             DtNcharCursorStyle
                   Specifies the text cursor shape.  A
                   DtTERM_CHAR_CURSOR_BOX value specifies a cursor the
                   width and height of the base font's bounding box.
                   A DtTERM_CHAR_CURSOR_BAR value specifies a cursor
                   the width of the base font's bounding box, two
                   pixels high, and drawn with its top on the
                   baseline.  The default is DtTERM_CHAR_CURSOR_BOX.

             DtNcolumns
                   Specifies the number of text columns in the
                   terminal window.  For additional information, see
                   DtNbaseWidth.

             DtNemulationID
                   Specifies the string to which the TERMINAL_EMULATOR
                   environment variable is set.

             DtNheightInc
                   Specifies the character cell height used as the
                   height increment when calculating the size of the
                   terminal window.  For additional information, see
                   DtNbaseHeight.

             DtNinputVerifyCallback
                   Specifies the list of callbacks called before the
                   DtTerm widget sends text to the child process.  The
                   text may be generated either in response to
                   keyboard input, selection or drag and drop.  The
                   DtTermInputVerifyCallbackStruct structure's address
                   is passed to this callback.  DtCR_TERM_INPUT_VERIFY
                   is the reason set by the callback.

             DtNjumpScroll
                   Specifies that the DtTerm widget uses jump
                   scrolling.  Under jump scrolling, the screen may be
                   scrolled more than one line at a time.  This means
                   faster screen updates when multiple lines of text
                   are sent to the terminal.  The maximum number of
                   lines that may be jump scrolled is limited to the
                   number of lines in the terminal window.  The DtTerm
                   widget guarantees that all lines are displayed.

             DtNkshMode
                   Enables ksh mode.  With ksh mode, a key pressed
                   with the extend modifier bit set generates an
                   escape character followed by the character
                   generated by the unextended keystroke.  This option
                   is provided for use with emacs(1) and the emacs
                   command-line editor mode of ksh(1).  It conflicts
                   with the normal meta key use for generating
                   extended single byte characters and for generating
                   multi-byte Asian characters.

             DtNmapOnOutput
                   Indicates that the terminal widget map (de-iconify)
                   itself upon subprocess output if it is unmapped
                   (iconified).  An initial period of time during
                   which the terminal widget does not map itself upon
                   subprocess output can be specified via the
                   DtNmapOnOutputDelay resource.

             DtNmapOnOutputDelay
                   Specifies the number of seconds after start-up that
                   the widget does not honor the DtNmapOnOutput
                   resource.  This allows for initial output (for
                   example, shell prompts) to be sent to the terminal
                   without auto-mapping the window.  The default is
                   zero (no delay).

             DtNmarginBell
                   Specifies whether or not the bell rings when the
                   user types near the right margin.  The distance
                   from the right margin is specified by the
                   nMarginBell resource.

             DtNmarginHeight
                   Specifies the height of the margin between the text
                   and the top and bottom of the DtTerm widget's
                   window.

             DtNmarginWidth
                   Specifies the width of the margin between the text
                   and both sides of the DtTerm widget's window.

             DtNnMarginBell
                   Specifies the number of characters from the right
                   margin at which the margin bell rings when enabled
                   via the DtNmarginBell resource.

             DtNoutputLogCallback
                   Specifies the list of callbacks called when the
                   widget receives text from the child process.
                   DtTermOutputLogCallbackStruct is the structure type
                   whose address is passed to this callback.
                   DtCR_TERM_OUTPUT_LOG is the reason set by the
                   callback.

             DtNpointerBlank
                   Indicates that the pointer cursor is in blanking
                   mode.  In this mode, the cursor turns on when the
                   pointer is moved, and is blanked either after a
                   selectable number of seconds or after keyboard
                   input.  The delay is set via the
                   DtNpointerBlankDelay resource.

             DtNpointerBlankDelay
                   Specifies the number of seconds to wait after the
                   pointer has stopped moving before blanking the
                   pointer (see DtNpointerBlank).  A value of zero
                   prevents the pointer from blanking until a key is
                   pressed.

             DtNpointerColor
                   Specifies the foreground color the DtTerm widget
                   uses for the terminal window's pointer (X11
                   cursor).  The default is the terminal window's
                   foreground color.

             DtNpointerColorBackground
                   Specifies the background color the DtTerm widget
                   uses for the terminal window's pointer (X11
                   cursor).  The default is the terminal window's
                   background color.

             DtNpointerShape
                   Specifies the X cursor font character the DtTerm
                   widget uses as the pointer cursor.  The font
                   character should be specified as a string from the
                   include file, <X11/cursorfont.h>, with the leading
                   XC_ removed.  The default is xterm(1X).

             DtNreverseWrap
                   Specifies whether or not reverse-wraparound is
                   enabled.

             DtNrows
                   Specifies the number of rows of text in the
                   terminal window.  For additional information, see
                   DtNbaseHeight.

             DtNsaveLines
                   Defines the number of lines in the terminal buffer
                   beyond the length of the window.  The resource
                   value consists of a number followed by an optional
                   suffix.  If no suffix is included or the suffix is
                   ``l'' (ell), the total length of the terminal
                   buffer is the number plus the length of the
                   terminal window.  If the suffix is ``s,'' the total
                   length of the terminal buffer is (the number plus
                   one) times the length of the terminal window.  The
                   DtTerm widget tries to maintain the same buffer-
                   to-window ratio when the window is resized larger.

             DtNshadowType
                   Specifies the type of shadow drawn around the
                   terminal window.  See the XmFrame(3X) widget for
                   supported shadow types.

             DtNstatusChangeCallback
                   Specifies the list of callbacks called when the
                   DtTerm widget's status changes.  Status changes
                   include changes such as cursor position, caps lock
                   state and insert char state.  The
                   DtTermStatusChangeCallbackStruct structure's
                   address is passed to this callback.
                   DtCR_TERM_STATUS_CHANGE is the reason the callback
                   sends.

             DtNsubprocessArgv
                   Specifies the argument list passed to the
                   subprocess if DtNsubprocessExec is True.  If
                   DtNsubprocessCmd is NULL, the first string of this
                   argument is used as the name of the command to
                   execute.

             DtNsubprocessCmd
                   Specifies the name of the command to run if
                   DtNsubprocessExec is True.  If DtNsubprocessExec is
                   NULL, the first string of the DtNsubprocessArgv
                   argument is used.
             DtNsubprocessExec
                   This resource specifies whether or not a subprocess
                   is fork(2) and exec(2).  If True, a subprocess is
                   launched as specified via the DtNsubprocessArgv
                   resource, if set, or the DtNsubprocessCmd resource,
                   if set, or the SHELL environment variable, if set,
                   or the default system shell.

             DtNsubprocessloginShell
                   Indicates that the starting shell be a login shell
                   (that is, the first character of argv[0] be a
                   dash), that tells the shell to read the system's
                   profile and the user's .profile files (for ksh(1)
                   and sh(1)) or the system's csh.login and the user's
                   .login (for csh(1)).

             DtNsubprocessPid
                   Supplies the process ID of the subprocess running
                   in the terminal widget when DtNsubprocessExec is
                   True.

             DtNsubprocessTerminationCallback
                   Supplies the list of callbacks called when the
                   subprocess associated with the DtTerm widget exits.
                   The DtTermSubprocessTerminationCallbackStruct
                   structure's address is passed to this callback.
                   DtCR_TERM_SUBPROCESS_TERMINATION is the reason the
                   callback sends.

             DtNsubprocessTerminationCatch
                   Specifies whether or not the DtTerm widget installs
                   a signal handler to catch the subprocess
                   termination.  If the application installs its own
                   signal handler, the application must catch the
                   subprocess termination and inform the DtTerm widget
                   via the DtTermSubprocReap(3) function.

             DtNsunFunctionKeys
                   Specifies whether or not Sun Function Key escape
                   sequences are generated for function keys instead
                   of standard escape sequences.

             DtNtermDevice
                   Supplies the file descriptor for the master side of
                   the pty or STREAMS pseudo-terminal device
                   associated with the DtTerm widget.

             DtNtermDeviceAllocate
                   Specifies whether or not the DtTerm widget
                   allocates a pty or STREAMS pseudo-terminal device,
                   or uses the pseudo-terminal device passed to it via
                   the DtNtermDevice resource.
             DtNtermId
                   Supplies the name the DtTerm widget uses to select
                   the correct response to terminal ID queries.  Valid
                   values are vt100, vt101, vt102 and vt220.

             DtNtermName
                   Supplies the name the DtTerm widget uses in setting
                   the TERM environment variable.  The default is
                   dtterm(1).

             DtNtermSlaveName
                   Supplies the name of the slave device of the pty or
                   STREAMS pseudo-terminal device associated with the
                   DtTerm widget.  The DtTerm widget uses this
                   resource to update the system's utmp entry
                   associated with the subprocess.

             DtNttyModes
                   Specifies a string containing terminal-setting
                   keywords and the characters to which they may be
                   bound.  Allowable keywords include:  intr, quit,
                   erase, kill, eof, eol, swtch, start, stop, brk,
                   susp, dsusp, rprnt, flush, weras and lnext.  The
                   terminal emulator correctly parses and silently
                   ignores keywords that do not apply to a specific
                   architecture.  Control characters can be specified
                   as ^char (for example, ^c or ^u), and ^? can be
                   used to indicate delete.  This is useful for
                   overriding the default terminal settings without
                   having to do an stty(1) every time a DtTerm widget
                   is created.

             DtNuserBoldFont
                   Supplies the XmFontList the DtTerm widget uses to
                   display bold terminal text.  The terminal emulator
                   supports only character or mono-spaced fonts.  When
                   using proportional fonts, the behavior is
                   undefined.  The terminal emulator generates a
                   default bold font based on the XLFD name of the
                   userFont.  If that font is not available, the
                   terminal emulator generates bold text by
                   overstriking (with a one pixel offset) the
                   userFont.

             DtNuserFont
                   Supplies the XmFontList the DtTerm widget uses to
                   display terminal text.  The terminal emulator
                   supports only character or mono-spaced fonts.  When
                   using proportional fonts, the behavior is
                   undefined.  The terminal emulator gets a default
                   font via the XmNtextFontList value of the parent
                   bulletin board (see the XmBulletinBoard(3X) widget)
                   in the same manner as the XmText(3X) widget.

             DtNverticalScrollBar
                   Specifies a an application-supplied vertical scroll
                   bar widget to update as scrolling occurs.  The
                   DtTerm widget does not create the scroll bar.

             DtNvisualBell
                   Specifies whether the DtTerm widget uses a visible
                   bell (that is, flashing) instead of an audible bell
                   when <control>-G is received.

             DtNwidthInc
                   Specifies the character cell width the DtTerm
                   widget uses as the width increment when calculating
                   the size of the terminal window.  For additional
                   information, see DtNbaseWidth.

        Inherited Resources
          The DtTerm widget inherits behavior and resources from the
          following named superclasses.  For a complete description of
          each resource, see the man page for that superclass.

                                    XmPrimitive Resource Set
          ____________________________________________________________________________
          Name                 Class                Type          Default       Access
          ____________________________________________________________________________
          XmNbottomShadowColor XmCBottomShadowColor Pixel         dynamic       CSG
          XmNbottom-           XmCBottom-           Pixmap        XmUNSPECIFIED-CSG
             ShadowPixmap         ShadowPixmap                       _PIXMAP
          XmNforeground        XmCForeground        Pixel         dynamic       CSG
          XmNhelpCallback      XmCCallback          XtCallbackListNULL          C
          XmNhighlightColor    XmCHighlightColor    Pixel         dynamic       CSG
          XmNhighlightOnEnter  XmCHighlightOnEnter  Boolean       False         CSG
          XmNhighlightPixmap   XmCHighlightPixmap   Pixmap        dynamic       CSG
          XmNhighlightThicknessXmCHighlightThicknessDimension     2             CSG
          XmNnavigationType    XmCNavigationType    XmNavigation- XmNONE        G
                                                       Type
          XmNshadowThickness   XmCShadowThickness   Dimension     2             CSG
          XmNtopShadowColor    XmCTopShadowColor    Pixel         dynamic       CSG
          XmNtopShadowPixmap   XmCTopShadowPixmap   Pixmap        dynamic       CSG
          XmNtraversalOn       XmCTraversalOn       Boolean       True          CSG
          XmNunitType          XmCUnitType          unsigned char dynamic       CSG
          XmNuserData          XmCUserData          Pointer       NULL          CSG

                                           Core Resource Set
          ___________________________________________________________________________________
          Name                  Class                 Type          Default            Access
          ___________________________________________________________________________________
          XmNaccelerators       XmCAccelerators       XtAcceleratorsNULL               CSG
          XmNancestorSensitive  XmCSensitive          Boolean       dynamic            G
          XmNbackground         XmCBackground         Pixel         dynamic            CSG
          XmNbackgroundPixmap   XmCPixmap             Pixmap        XmUNSPECIFIED-     CSG
                                                                       _PIXMAP
          XmNborderColor        XmCBorderColor        Pixel         XtDefaultForegroundCSG
          XmNborderPixmap       XmCPixmap             Pixmap        XmUNSPECIFIED-     CSG
                                                                       _PIXMAP
          XmNborderWidth        XmCBorderWidth        Dimension     0                  CSG
          XmNcolormap           XmCColormap           Colormap      dynamic            CG
          XmNdepth              XmCDepth              int           dynamic            CG
          XmNdestroyCallback    XmCCallback           XtCallbackListNULL               C
          XmNheight             XmCHeight             Dimension     dynamic            CSG
          XmNinitial-           XmCInitial-           Boolean       True               CG
             ResourcesPersistent   ResourcesPersistent
          XmNmapped-            XmCMapped-            Boolean       True               CSG
          WhenManaged           WhenManaged
          XmNscreen             XmCScreen             Screen *      dynamic            CG
          XmNsensitive          XmCSensitive          Boolean       True               CSG
          XmNtranslations       XmCTranslations       XtTranslationsNULL               CSG
          XmNwidth              XmCWidth              Dimension     dynamic            CSG
          XmNx                  XmCPosition           Position      0                  CSG
          XmNy                  XmCPosition           Position      0                  CSG

        Callback Information
          A pointer to the DtTermStatusChangeCallbackStruct callback
          structure, which includes at least the following members, is
          passed to callbacks for DtNstatusChangeCallback.

          int                    reason           Indicates why the callback was
                                                  invoked:
                                                  DtCR_TERM_STATUS_CHANGE.
          XEvent                 *event           Points to the XEvent, if any,
                                                  that triggered the callback or
                                                  NULL.
          int                    cursorX          The current text cursor X
                                                  (column) position.
          int                    cursorY          The current text cursor Y (row)
                                                  position.
          Boolean                capsLock         The current state of the caps
                                                  lock indicator.
          Boolean                stop             The current state subprocess
                                                  output parsing.  Processing
                                                  output from the subprocess can
                                                  be turned on and off via the
                                                  stop() action (similar to the

                                                  XON/XOFF handshake invoked via
                                                  <control>-S/<control>-Q).
     DtTermInsertCharMode   insertCharMode   Not used by the DtTerm widget.
     Boolean                locked           The current state of the
                                             keyboard caps lock.

          A pointer to the DtTermSubprocessTerminationCallbackStruct
          callback structure, which includes at least the following
          members, is passed to callbacks for
          DtNsubprocessTerminationCallback.

          int      reason   Indicates why the callback was invoked:
                            DtCR_TERM_SUBPROCESS_TERMINATION.
          XEvent   *event   Points to the XEvent, if any, that
                            triggered the callback or NULL.
          pid_t    pid      The process ID of the terminated
                            subprocess.
          int      status   The exit status of the terminated
                            subprocess.

          A pointer to the DtTermInputVerifyCallbackStruct callback
          structure, which includes at least the following members, is
          passed to callbacks for DtNinputVerifyCallback.

          int             reason   Indicates why the callback was invoked:
                                   DtCR_TERM_INPUT_VERIFY.
          XEvent          *event   Points to the XEvent, if any, that
                                   triggered the callback or NULL.
          Boolean         doit     Indicates whether the text should be
                                   sent to the child process.  Setting doit
                                   to False negates the action.
          unsigned char   *text    Points to the text (either single- or
                                   multi-byte depending on the locale) to
                                   be sent to the child process.
          int             length   Specifies the number of bytes to be sent
                                   to the child process.

          A pointer to the DtTermOutputlogVerifyCallbackStruct
          callback structure, which includes at least the following
          members, is passed to callbacks for DtNoutputLogCallback.

          int             reason   Indicates why the callback was invoked:
                                   DtCR_TERM_OUTPUT_LOG.
          XEvent          *event   Points to the XEvent, if any, that
                                   triggered the callback or NULL.
          unsigned char   *text    Points to the text (either single- or
                                   multi-byte depending on the locale)
                                   received from the child process.
                                   Specifies the number of bytes received
                                   from the child process.

          int             length

        Translations
          The DtTerm widget includes translations from
          XmPrimitive(3X).

          Altering translations in #override or #augment mode is
          undefined.

              Key Pressed                       Action Routine
      ____________________________________________________________________
      Shift ~Ctrl<Key>KP_Multiply:   XtDisplayInstalledAccelerators()
      ~Shift Ctrl<Key>KP_Multiply:   XtDisplayAccelerators()
      Shift Ctrl<Key>KP_Multiply:    XtDisplayTranslations()
      <Key>osfCancel:                process-cancel()
      <Key>osfCopy:                  copy-clipboard()
      <Key>osfCut:                   copy-clipboard()
      <Key>osfPaste:                 paste-clipboard()
      <Key>osfBeginLine:             beginning-of-buffer()
      <Key>osfEndLine:               end-of-buffer()
      Shift<Key>osfUp:               scroll(1,line)
      Shift<Key>osfDown:             scroll(-1,line)
      <Key>osfUp:                    move-cursor(up)
      <Key>osfDown:                  move-cursor(down)
      <Key>osfLeft:                  move-cursor(backward)
      <Key>osfRight:                 move-cursor(forward)
      <Key>Do:                       vt-edit-key(do)
      <Key>Help:                     vt-edit-key(help)
      <Key>Menu:                     vt-edit-key(menu)
      <Key>Find:                     vt-edit-key(find)
      <Key>Insert:                   vt-edit-key(insert)
      <Key>Select:                   vt-edit-key(select)
      ~Shift<Key>osfPageUp:          vt-edit-key(prior)
      ~Shift<Key>osfPageDown:        vt-edit-key(next)
      <Key>osfPageUp:                scroll(-1,page)
      <Key>osfPageDown:              scroll(1,page)
      Mod1<Key>Break:                soft-reset()
      Shift<Key>Break:               hard-reset()
      ~Shift ~Mod1<Key>Break:        vt-break()
      Ctrl<Key>Cancel:               stop(long)
      ~Ctrl<Key>Cancel:              stop()
      ~Shift<Key>Tab:                tab()
      ~Mod1<Key>KP_Space:            keypad-key-execute(space)
      ~Mod1<Key>KP_Tab:              keypad-key-execute(tab)
      ~Mod1<Key>KP_Enter:            keypad-key-execute(enter)
      ~Mod1<Key>KP_F1:               keypad-key-execute(f1)
      ~Mod1<Key>KP_F2:               keypad-key-execute(f2)
      ~Mod1<Key>KP_F3:               keypad-key-execute(f3)
      ~Mod1<Key>KP_F4:               keypad-key-execute(f4)
      ~Mod1<Key>KP_Equal:            keypad-key-execute(equal)
      ~Mod1<Key>KP_Multiply:         keypad-key-execute(multiply)
      ~Mod1<Key>KP_Add:              keypad-key-execute(add)

      ~Mod1<Key>KP_Separator:        keypad-key-execute(separator)
      ~Mod1<Key>KP_Subtract:         keypad-key-execute(subtract)
      ~Mod1<Key>KP_Decimal:          keypad-key-execute(decimal)
      ~Mod1<Key>KP_Divide:           keypad-key-execute(divide)
      ~Mod1<Key>KP_0:                keypad-key-execute(0)
      ~Mod1<Key>KP_1:                keypad-key-execute(1)
      ~Mod1<Key>KP_2:                keypad-key-execute(2)
      ~Mod1<Key>KP_3:                keypad-key-execute(3)
      ~Mod1<Key>KP_4:                keypad-key-execute(4)
      ~Mod1<Key>KP_5:                keypad-key-execute(5)
      ~Mod1<Key>KP_6:                keypad-key-execute(6)
      ~Mod1<Key>KP_7:                keypad-key-execute(7)
      ~Mod1<Key>KP_8:                keypad-key-execute(8)
      ~Mod1<Key>KP_9:                keypad-key-execute(9)
      Shift<Key>F1:                  vt-function-key-execute(1, UDK)
      Shift<Key>F2:                  vt-function-key-execute(2, UDK)
      Shift<Key>F3:                  vt-function-key-execute(3, UDK)
      Shift<Key>F4:                  vt-function-key-execute(4, UDK)
      Shift<Key>F5:                  vt-function-key-execute(5, UDK)
      Shift<Key>F6:                  vt-function-key-execute(6, UDK)
      Shift<Key>F7:                  vt-function-key-execute(7, UDK)
      Shift<Key>F8:                  vt-function-key-execute(8, UDK)
      Shift<Key>F9:                  vt-function-key-execute(9, UDK)
      Shift<Key>F10:                 vt-function-key-execute(10, UDK)
      Shift<Key>F11:                 vt-function-key-execute(11, UDK)
      Shift<Key>F12:                 vt-function-key-execute(12, UDK)
      Shift<Key>F13:                 vt-function-key-execute(13, UDK)
      Shift<Key>F14:                 vt-function-key-execute(14, UDK)
      Shift<Key>F15:                 vt-function-key-execute(15, UDK)
      Shift<Key>F16:                 vt-function-key-execute(16, UDK)
      Shift<Key>F17:                 vt-function-key-execute(17, UDK)
      Shift<Key>F18:                 vt-function-key-execute(18, UDK)
      Shift<Key>F19:                 vt-function-key-execute(19, UDK)
      Shift<Key>F20:                 vt-function-key-execute(20, UDK)
      Shift<Key>F21:                 vt-function-key-execute(21, UDK)
      Shift<Key>F22:                 vt-function-key-execute(22, UDK)
      Shift<Key>F23:                 vt-function-key-execute(23, UDK)
      Shift<Key>F24:                 vt-function-key-execute(24, UDK)
      Shift<Key>F25:                 vt-function-key-execute(25, UDK)
      Shift<Key>F26:                 vt-function-key-execute(26, UDK)
      Shift<Key>F27:                 vt-function-key-execute(27, UDK)
      Shift<Key>F28:                 vt-function-key-execute(28, UDK)
      Shift<Key>F29:                 vt-function-key-execute(29, UDK)
      Shift<Key>F30:                 vt-function-key-execute(30, UDK)
      Shift<Key>F31:                 vt-function-key-execute(31, UDK)
      Shift<Key>F32:                 vt-function-key-execute(32, UDK)
      Shift<Key>F33:                 vt-function-key-execute(33, UDK)
      Shift<Key>F34:                 vt-function-key-execute(34, UDK)
      Shift<Key>F35:                 vt-function-key-execute(35, UDK)
      ~Shift<Key>F1:                 vt-function-key-execute(1, function)

      ~Shift<Key>F2:                 vt-function-key-execute(2, function)
      ~Shift<Key>F3:                 vt-function-key-execute(3, function)
      ~Shift<Key>F4:                 vt-function-key-execute(4, function)
      ~Shift<Key>F5:                 vt-function-key-execute(5, function)
      ~Shift<Key>F6:                 vt-function-key-execute(6, function)
      ~Shift<Key>F7:                 vt-function-key-execute(7, function)
      ~Shift<Key>F8:                 vt-function-key-execute(8, function)
      ~Shift<Key>F9:                 vt-function-key-execute(9, function)
      ~Shift<Key>F10:                vt-function-key-execute(10, function)
      ~Shift<Key>F11:                vt-function-key-execute(11, function)
      ~Shift<Key>F12:                vt-function-key-execute(12, function)
      ~Shift<Key>F13:                vt-function-key-execute(13, function)
      ~Shift<Key>F14:                vt-function-key-execute(14, function)
      ~Shift<Key>F15:                vt-function-key-execute(15, function)
      ~Shift<Key>F16:                vt-function-key-execute(16, function)
      ~Shift<Key>F17:                vt-function-key-execute(17, function)
      ~Shift<Key>F18:                vt-function-key-execute(18, function)
      ~Shift<Key>F19:                vt-function-key-execute(19, function)
      ~Shift<Key>F20:                vt-function-key-execute(20, function)
      ~Shift<Key>F21:                vt-function-key-execute(21, function)
      ~Shift<Key>F22:                vt-function-key-execute(22, function)
      ~Shift<Key>F23:                vt-function-key-execute(23, function)
      ~Shift<Key>F24:                vt-function-key-execute(24, function)
      ~Shift<Key>F25:                vt-function-key-execute(25, function)
      ~Shift<Key>F26:                vt-function-key-execute(26, function)
      ~Shift<Key>F27:                vt-function-key-execute(27, function)
      ~Shift<Key>F28:                vt-function-key-execute(28, function)
      ~Shift<Key>F29:                vt-function-key-execute(29, function)
      ~Shift<Key>F30:                vt-function-key-execute(30, function)
      ~Shift<Key>F31:                vt-function-key-execute(31, function)
      ~Shift<Key>F32:                vt-function-key-execute(32, function)
      ~Shift<Key>F33:                vt-function-key-execute(33, function)
      ~Shift<Key>F34:                vt-function-key-execute(34, function)
      ~Shift<Key>F35:                vt-function-key-execute(35, function)
      <KeyRelease>:                  key-release()
      <KeyPress>:                    insert()
      ~Shift~Ctrl<Btn1Down>:         grab-focus()
      Shift~Ctrl<Btn1Down>:          extend-start()
      ~Ctrl<Btn1Motion>:             select-adjust()
      ~Ctrl<Btn1Up>:                 extend-end()
      ~Shift<Btn2Down>:              process-bdrag()
      ~Shift<Btn2Up>:                copy-to()
      <EnterWindow>:                 enter()
      <LeaveWindow>:                 leave()
      <FocusIn>:                     focus-in()
      <FocusOut>:                    focus-out()

        Action Routines
          The DtTerm widget supports the following action routines:

             bell([percentage])
                   Rings the keyboard bell at the specified percentage
                   above or below the base volume.

             break()
                   Sends an RS232 break signal to the child process.

             cancel()
                   Sends a CAN (cancel) character to the child
                   process.

             copy-clipboard()
                   Copies current selection to the clipboard.

             copy-to()
                   Sends the primary selection to the subprocess.

             do()  Sends the escape sequence (see dtterm(5))
                   associated with the Do key to the child process.

             edit-key(string)
                   Sends the escape sequence (see dtterm(5))
                   associated with the corresponding edit key to the
                   child process.  The interpretation of these keys is
                   application-specific.  Valid values for string are:

                        find
                        insert
                        next
                        prior
                        remove
                        select

             extend-start()
                   Starts the extension of the currently selected
                   text.  The amount of text selected depends on the
                   number of mouse clicks (see grab-focus()).

             extend-end()
                   Extends the current selection.  The amount of text
                   selected depends on the number of mouse clicks (see
                   grab-focus()).

             function-key-execute(num[, type])
                   Sends the escape sequence (see dtterm(5))
                   associated with the corresponding function key num
                   to the child process.  Valid values for num are 1
                   to 35, inclusive.  If type is set to function (or
                   not set at all), the escape sequence (see
                   dtterm(5)) associated with function key num is sent
                   to the child process.  If type is set to UDK, then
                   the string associated with user defined key num is
                   sent to the child process.

             grab-focus()
                   Performs one of the following depending on the
                   number of multiple mouse clicks.  One click
                   deselects any selected text and sets the selection
                   anchor at the pointer position; two clicks selects
                   a word; three clicks selects a line of text; and
                   four clicks selects all text.

             hard-reset()
                   Performs a hard reset on the terminal emulator.
                   See dtterm(5) for a definition of hard reset.

             help()
                   Sends the escape sequence (see dtterm(5))
                   associated with the DEC VT220 Help key to the child
                   process.  The interpretation of this key is
                   application-specific.

             keymap(name)
                   Defines a new translation table whose resource name
                   is named with the suffix Keymap (case is
                   significant).  The name None restores the original
                   translation table.

             keypad-key-execute(string)
                   Sends the escape sequence (see dtterm(5))
                   associated with the corresponding keypad key to the
                   child process.  The interpretation of these keys is
                   application-specific.  Valid values for string are:

                        f1 - f4
                        space
                        tab
                        enter
                        equal
                        multiply
                        add
                        separator
                        subtract
                        decimal
                        divide
                        0 - 9

             move-cursor(direction)
                   Sends the escape sequence (see dtterm(5))
                   associated with the corresponding cursor motion to
                   the child process.  The interpretation of these
                   keys is application-specific.  Valid values for
                   direction are:

                        up
                        down
                        backward
                        forward

             paste-clipboard()
                   Sends the contents of the clipboard to the
                   subprocess.

             process-bdrag()
                   The result of this action is determined by several
                   factors:  position of the location cursor, motion
                   of the location cursor and the interval between a
                   BTransfer release.

                   This action sends the current selection to the
                   subprocess if text is selected, the location cursor
                   is disjoint from the current selection and no
                   motion is detected within a given time interval.

                   The action drags the current selection if the
                   location cursor is positioned on the selection, the
                   time interval is exceeded and movement of the
                   location cursor is detected.  This action creates a
                   DragContext object whose XmNexportTargets resource
                   value includes target types of COMPOUND_TEXT,
                   STRING and TEXT.

             redraw-display()
                   Redraws the contents of the text window.

             scroll(count[, units])
                   Scrolls the display memory down if count is greater
                   than zero, or up if count is less than zero.  The
                   number of lines scrolled is based on count and
                   units.  The default for units is line.  Valid
                   values for units are:

                        page
                        halfpage
                        line

             select-adjust()
                   Extends the selection.  The amount of text selected
                   depends on the number of mouse clicks.  One click
                   selects characters; two clicks selects words; three
                   clicks selects lines; and four clicks selects the
                   entire buffer.

             select-all()
                   Selects all text.

             select-page()
                   Selects all text currently displayed on the screen.
             self-insert()
                   Sends the character associated with the key pressed
                   to the child process.

             soft-reset()
                   Performs a soft reset of the terminal.  For a
                   definition of soft reset see the ``Reset'' section
                   in dtterm(5).

             stop(state)
                   Toggles, starts, or stops the process of reading
                   data from the child process.  Valid values for
                   state are:

                        toggle
                        on
                        off

             string(string)
                   Inserts the specified text string as if it had been
                   typed.  The string must be quoted if it contains
                   white space or non-alphanumeric characters.  The
                   string is interpreted as a hexadecimal character
                   constant if it begins with the characters 0x.

             tab() Sends a tab to the child process.

             visual-bell()
                   Flashes the window quickly.

        Virtual Bindings
          The bindings for virtual keys are vendor-specific.  Virtual
          bindings do not apply when the DtTerm widget has input
          focus.  For information about bindings for virtual buttons
          and keys, see VirtualBindings(3X).

     SEE ALSO
          dtterm(1), DtTerm(5), DtTermInitialize(3),
          DtTermDisplaySend(3), DtTermSubprocSend(3),
          DtTermSubprocReap(3), dtterm(5), pty(7), XtSetValues(1X),
          XtGetValues(1X), XmFrame(3X), XmPrimitive(3X),
          XmFontList(3X), XmBulletinBoard(3X), XmText(3X),
          VirtualBindings(3X), Core(3X).