Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ olText(TRUE) — Amiga System V Release 4 Version 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought



TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



WIDGET CLASS NAME
     Text

SYNOPSIS
     #include <Intrinsic.h>
     #include <StringDefs.h>
     #include <OpenLook.h>
     #include <Text.h>
     widget = XtCreateWidget(name, textWidgetClass, ...);

DESCRIPTION
     The Text widget provides a single and multi-line text editor
     that  has  both a customizable user interface and a program-
     matic interface.  It can  be  used  for  single-line  string
     entry,  forms  entry with verification procedures, multiple-
     page document viewing, and full-window editing.  It provides
     an  application with a consistent editing paradigm for entry
     of textual data.  The display of the  textual  data  on  the
     screen  can  be  adjusted to scroll, wrap, or grow automati-
     cally as the user reaches the edge of the view of the  text.
     The  Text  widget provides separate callback lists to verify
     insertion cursor movement, modification  of  the  text,  and
     leaving  the  Text widget.  Each of these callbacks provides
     the verification function  with  the  widget  instance,  the
     event  that  caused  the  callback,  and  a  data  structure
     specific to the verification type.  From  this  information,
     the function can verify if the application considers this to
     be a legitimate state change and signal the  widget  whether
     to  continue with the action.  The verification function can
     also manipulate the widget through the class methods defined
     by  the  Text widget class.  The verification callback lists
     are explained in detail below.























Amiga Unix                Last change:                          1





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     Editing Capabilities The Text widget  provides  the  editing
     capabilities listed in the following table.
     _________________________________________________________________________________
    |_Name_______|_Editing_Action____________________________________________________|
    | CHARFWD    | Move the caret forward one character                              |
    | CHARBAK    | Move the caret back one character                                 |
    | ROWDOWN    | Move the caret down one line in the current column                |
    | ROWUP      | Move the caret up one line in the current column                  |
    | WORDFWD    | Move the caret forward one word                                   |
    | WORDBAK    | Move the caret back one word                                      |
    | LINESTART  | Move the caret to the beginning of the current display line       |
    | LINEEND    | Move the caret to the end of the current display line             |
    | DOCSTART   | Move the caret to the beginning of the source                     |
    | DOCEND     | Move the caret to the end of the source                           |
    | DELCHARFWD | Delete the character to the right of the caret                    |
    | DELCHARBAK | Delete the character to the left of the caret                     |
    | DELWORDFWD | Delete the word to the right of the caret                         |
    | DELWORDBAK | Delete the word to the left of the caret                          |
    | DELLINEFWD | Delete to the end of the current display line from the caret      |
    | DELLINEBAK | Delete to the beginning of the current display line from the caret|
    |____________|___________________________________________________________________|

     This second table displays the virtual expressions and  key-
     board  equivalents  for  the editing functions.  See VIRTUAL
     KEY/BUTTON(3W) earlier in this guide for more information on
     virtual_expressions.____________________________________
    | Name      |  Virtual Expression|  Keyboard Equivalents|
    |___________|____________________|______________________|
    | CHARFWD   |  charFwdKey        |  CTRL-F, ->          |
    | CHARBAK   |  charBakKey        |  CTRL-B, <-          |
    | ROWDOWN   |  rowDownKey        |  CTRL-N, ↓           |
    | ROWUP     |  rowUpKey          |  CTRL-P, ↑           |
    | WORDFWD   |  wordFwdKey        |  ALT-F, ALT- ->      |
    | WORDBAK   |  wordBakKey        |  ALT-B, ALT- <-      |
    | LINESTART |  lineStartKey      |  CTRL-A, CTRL- <-    |
    | LINEEND   |  lineEndKey        |  CTRL-E, CTRL- ->    |
    | DOCSTART  |  docStartKey       |  ALT-↑, ALT- <       |
    | DOCEND    |  docEndKey         |  ALT-↓, ALT- >       |
    | DELCHARFWD|  delCharFwdKey     |  CTRL-D, DELETE      |
    | DELCHARBAK|  delCharBakKey     |  CTRL-H, BACKSPACE   |
    | DELWRDFWD |  delWordFwdKey     |  ALT-D               |
    | DELWORDBAK|  delWordBakKey     |  ALT-H               |
    | DELLINEFWD|  delLineFwdKey     |  CTRL-K              |
    |_DELLINEBAK|__delLineBakKey_____|__ALT-K_______________|











Amiga Unix                Last change:                          2





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     Hierarchical Text Text is considered  to  be  hierarchically
     composed of white space, words, lines and paragraphs.  White
     space is defined as any  non-empty  sequence  of  the  ASCII
     characters  space, tab, linefeed or carriage return (decimal
     values of 32, 9, 10, 13, respectively); a word is  any  non-
     empty  sequence  of characters bounded on both sides by whi-
     tespace.  A source line is any (possibly empty) sequence  of
     characters  bounded by newline characters; a display line is
     any (possibly empty) sequence of characters appearing  on  a
     single  screen  display  line.   A  source  paragraph is any
     sequence of characters bounded by sets of two or more  adja-
     cent newline characters.  A display paragraph is any (possi-
     bly empty) sequence of characters bounded by newline charac-
     ters (Note:  This is identical to the definition of a source
     line.)  In all cases, the beginning or end of the edit  text
     is  an  acceptable  bounding element in the previous defini-
     tions.

     Sizing the Display When making display decisions,  the  Text
     widget first determines whether all the text will fit in the
     current display.  If it does not, and  growing  is  enabled,
     the  widget  will  request a resize from its parent.  If the
     request is denied or only  partially  satisfied,  no  future
     growth  requests will be made unless there is an intervening
     resize operation externally imposed.

     If any source line is still too long to fit in  the  display
     after  growing  is attempted, wrapping is checked.  If wrap-
     ping is disabled, one display line is drawn for each  source
     line.   If  a source line is too long for the display, it is
     truncated at the right margin after the last full  character
     that  fits.  If wrapping is enabled, a new display line will
     be started with the first word that  does  not  fit  on  the
     current  line.   If the wrap break option is OL_WRAP_ANY, as
     many characters from that word as will fit before the  right
     margin  are  written  to  the current display line, then the
     next character starts at the left margin of the next display
     line.   If the wrap break option is OL_WRAP_WHITE_SPACE, the
     line break is instead made after the first whitespace  char-
     acter  that  follows the last full word that does fit on the
     current display line.  If, however, under white space break,
     the first full word that does not fit is also the first word
     on the line, the wrap break is made as if  OL_WRAP_ANY  were
     selected.

     Scrolled Window The  application  can  decide  if  the  Text
     widget  can  have a scrollbar at the side. With a scrollbar,
     the end user can move through the text  easily.   Without  a
     scrollbar,  the Text widget either grows its window, if pos-
     sible, to show the complete content, or wraps  a  long  line
     onto   another  line.   The  proportion  indicators  on  the
     scrollbar show how much of the text  the  user  can  see  at



Amiga Unix                Last change:                          3





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     once,  compared with the entire text buffer or file.  As the
     user enters text, the view will automatically scroll left to
     keep  the  insert  point  in view, unless the Text widget is
     operating in a wrap or grow mode.



















































Amiga Unix                Last change:                          4





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     Application Callbacks Three types of verification  callbacks
     are supported by the Text widget:

     - one for motion operations, to verify a  new  insert  posi-
       tion;

     - one for modifying operations, to verify  insertion,  dele-
       tion or replacement of text; and

     - one for widget exit, to verify state consistency  on  loss
       of  focus by the widget.  The call_data value is a pointer
       to an OlTextVerifyCD structure.  The  C  data  types  used
       here are:
             typedef enum {
                     motionVerify,
                     modVerify,
                     leaveVerify
             } OlVerifyOpType;

             typedef struct {
                     int              firstPos;
                     int              length;
                     unsigned char    *ptr;
             } OlTextBlock, *OlTextBlockPtr;

             typedef struct {
                     XEvent           *xevent;
                     OlVerifyOpType   operation;
                     Boolean          doit;
                     OlTextPosition   currInsert, newInsert;
                     OlTextPosition   startPos, endPos;
                     OlTextBlock      *text;
             } OlTextVerifyCD, *OlTextVerifyPtr;

       The elements of an OlTextBlock structure are as follows:

     firstPos
             the offset of the starting  character  in  the  text
             block.

     length  the size of the text block.

     ptr     a pointer to the text block.

     Before the verification callbacks are issued for  any  given
     operation,  a  structure  of type OlTextVerifyCD is initial-
     ized.  The initial values are:

     xevent  for a leave operation, the current event pointer.

     operation
             element of OlVerifyOpType  signifying  the  type  of



Amiga Unix                Last change:                          5





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



             verification operation.

     doit    TRUE.




















































Amiga Unix                Last change:                          6





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     currInsert
             current position of the insert point.

     newInsert
             for a motion operation, the  position  the  user  is
             attempting  to  move the insert point to; otherwise,
             the same value as currInsert.

     startPos
             for a modify operation, the  beginning  position  in
             the  current  source of the text about to be deleted
             or replaced, or where new text will be inserted.  If
             not  a modify operation, it will have the same value
             as currInsert

     endPos  for a modify operation, the ending position  in  the
             current  source  of  the text about to be deleted or
             replaced.  If no text is being removed, it will have
             the  same value as startPos.  If not a modify opera-
             tion, the same value as currInsert.

     text    for a modify operation with new text to be inserted,
             a  pointer  to a structure of type OlTextBlock, that
             references the  text  to  be  inserted.   Otherwise,
             NULL.   It  is  possible  for the client to register
             more than one callback procedure for  any  of  these
             callback  types.   Since  there can be more than one
             callback, each verification procedure  should  first
             check the doit field.  On return from the last call-
             back, the Text widget will look at the  doit  member
             of  the OlTextVerifyCD structure.  If it is false, a
             callback has  already  rejected  the  operation,  so
             there  is  no need for further evaluation.  If it is
             still true, the Text widget will  proceed  with  the
             operation;  otherwise,  it will not.  Any user feed-
             back for the rejected operation is the  responsibil-
             ity  of  the  verification  procedure.  Verification
             callbacks are permitted to modify some of  the  data
             in  the  OlTextVerifyCD  structure.  The Text widget
             will only look at certain fields on return,  though,
             according to the operation type:

     - For a motion operation, only the newInsert  position  will
       be looked at.

     - For a modify operation, only startPos,  endPos,  and  text
       will be examined for changes.

     - For a leave operation, no fields will be examined.   There
       is  no  mechanism  for  preventing a verification callback
       from making other changes to the editing state through the
       documented  interface, but the results of such behind-the-



Amiga Unix                Last change:                          7





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



       back actions are undefined.

       Application Access to Text The Text has several  resources
       that identify entry points that the application can use to
       access the internal buffer that the Text  widget  manages.
       For  example,  if  the  widget  is  being  used to enter a
       string, the program can get a copy of the string (i.e. the
       internal  buffer)  with  the  function under the resources
       XtNtextCopyBuffer or XtNtextReadSubString.














































Amiga Unix                Last change:                          8





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



       Keyboard Traversal Users can traverse among Text and Text-
       Field  widgets  within any ancestor ControlArea, Bulletin-
       Board, or Form widget using the  NEXTFIELD  and  PREVFIELD
       keys:

     -    NEXTFIELD moves the caret to the next traversable  Text
          or  TextField  widget  in the managing ancestor widget.
          When the caret is in the last traversable field,  NEXT-
          FIELD moves the caret to the first traversable field.

     -    PREVFIELD moves the caret to the  previous  traversable
          field  in  the managing ancestor widget. When the caret
          is in the first traversable field, PREVFIELD moves  the
          caret  to  the last traversable field.  The default key
          mappings  for  NEXTFIELD  and  PREVFIELD  are  TAB  and
          SHIFT-TAB,  respectively.   A  user  may  change  these
          defaults through the appropriate  Workspace  Properties
          window.

          Selecting and Copying the Text Text  can  be  moved  or
          copied   to   and  from  the  Text  widget.   See  TEXT
          SELECTION(3W) earlier in this manual for  the  descrip-
          tion of these operations.

          Text Coloration Figure 1 illustrates the resources that
          affect the coloration of the Text widget.
                        Figure 1.  Text Coloration


SUBSTRUCTURE
     Vertical Scrollbar component
     Names: verticalscrollbar
     Class: Scrollbar
     See the regular resource list for alternate names  used  for
     some key Scrollbar resources.


RESOURCES

















Amiga Unix                Last change:                          9





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     ___________________________________________________________________________________________
    |_____________________________________Text_Resource_Set____________________________________|
    | Name                 |  Class               |  Type          |  Default         |  Access|
    ||||||
    | XtNancestorSensitive |  XtCSensitive        |  Boolean       |  TRUE            |  G*    |
    |______________________|______________________|________________|__________________|________|
    |_XtNbackground________|__XtCBackground_______|__Pixel_________|__White___________|__SGI†__|
    | XtNbackgroundPixmap  |  XtCPixmap           |  Pixmap        |  (none)          |  SGI†  |
    |______________________|______________________|________________|__________________|________|
    |_XtNborderColor_______|__XtCBorderColor______|__Pixel_________|__Black___________|__SGI†__|
    | XtNborderPixmap      |  XtCPixmap           |  Pixmap        |  (none)          |  SGI†  |
    |______________________|______________________|________________|__________________|________|
    |_XtNborderWidth_______|__XtCBorderWidth______|__Dimension_____|__0_______________|__SGI___|
    | XtNbottomMargin      |  XtCMargin           |  Dimension     |  0               |  SGI   |
    |______________________|______________________|________________|__________________|________|
    |_XtNcursorPosition____|__XtCTextPosition_____|__OlTextPosition|__0_______________|__SGI___|
    | XtNcurrentPage       |  XtCCurrentPage      |  int           |  1               |  SGI   |
    |______________________|______________________|________________|__________________|________|
    |_XtNdepth_____________|__XtCDepth____________|__int___________|__(parent's)______|__GI____|
    | XtNdestroyCallback   |  XtCCallback         |  XtCallbackList|  NULL            |  SI    |
    |______________________|______________________|________________|__________________|________|
    |_XtNdisplayPosition___|__XtCTextPosition_____|__OlTextPosition|__0_______________|__SGI___|
    | XtNeditType          |  XtCEditType         |  OlDefine      |  OL_TEXT_EDIT    |  SGI   |
    |______________________|______________________|________________|__________________|________|
    |_XtNfile______________|__XtCFile_____________|__String________|__NULL____________|__SGI___|
    | XtNfont              |  XtCFont             |  XFontStruct * |  (OPEN LOOK font)|  SI    |
    |______________________|______________________|________________|__________________|________|
    |_XtNfontColor_________|__XtCFontColor________|__Pixel_________|__Black*__________|__SGI___|
    | XtNforeground        |  XtCForeground       |  Pixel         |  Black           |  SGI†  |
    |______________________|______________________|________________|__________________|________|
    |_XtNgrow______________|__XtCGrow_____________|__OlDefine______|__OLGROWOFF_____|__SGI___|
    | XtNhorizontalSB      |  XtCHorizontalSB     |  Boolean       |  FALSE           |  SGI   |
    |______________________|______________________|________________|__________________|________|
    |_XtNleaveVerification_|__XtCCallback_________|__XtCallbackList|__NULL____________|__SI____|
    | XtNleftMargin        |  XtCMargin           |  Dimension     |  0               |  SGI   |
    |______________________|______________________|________________|__________________|________|
    |_XtNmappedWhenManaged_|__XtCMappedWhenManaged|__Boolean_______|__TRUE____________|__SGI___|
    | XtNmaximumSize       |  XtCLength           |  int           |  (none)          |  SGI   |
    |______________________|______________________|________________|__________________|________|
    |_XtNmodifyVerification|__XtCCallback_________|__XtCallbackList|__NULL____________|__SI____|
    | XtNmotionVerification|  XtCCallback         |  XtCallbackList|  NULL            |  SI    |
    |______________________|______________________|________________|__________________|________|
    |_XtNrecomputeSize_____|__XtCRecomputeSize____|__Boolean_______|__TRUE____________|__SGI___|
    | XtNreferenceWidget   |  XtCReferenceWidget  |  Widget        |  (Widget)0       |  GI    |
    |______________________|______________________|________________|__________________|________|
    |_XtNrightMargin_______|__XtCMargin___________|__Dimension_____|__0_______________|__SGI___|









Amiga Unix                Last change:                         10





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     ____________________________________________________________________________________________________
    |_____________________________________Text_Resource_Set_(cont.)_____________________________________|
    | Name                 |  Class                |  Type               |  Default            |  Access|
    ||||||
    | XtNsensitive         |  XtCSensitive         |  Boolean            |  TRUE               |  SGI   |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNshowPage__________|__XtCShowPage__________|__OlDefine___________|__OLNONE____________|__SGI___|
    | XtNsourceType        |  XtCSourceType        |  OlDefine           |  OL_STRING_SRC      |  SGI   |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNstring____________|__XtCString____________|__String_____________|__NULL_______________|__SGI___|
    | XtNtextClearBuffer   |  XtCTextClearBuffer   |  void(*)()          |  (n/a)              |  G     |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNtextCopyBuffer____|__XtCTextCopyBuffer____|__unsigned_char(*)()_|__(n/a)______________|__G_____|
    | XtNtextGetInsertPoint|  XtCTextGetInsertPoint|  OlTextPosition(*)()|  (n/a)              |  G     |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNtextGetLastPos____|__XtCTextGetLastPos____|__OlTextPosition(*)()|__(n/a)______________|__G_____|
    | XtNtextInsert        |  XtCTextInsert        |  void(*)()          |  (n/a)              |  G     |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNtextReadSubStr____|__XtCTextReadSubStr____|__int(*)()___________|__(n/a)______________|__G_____|
    | XtNtextRedraw        |  XtCTextRedraw        |  void(*)()          |  (n/a)              |  G     |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNtextReplace_______|__XtCTextReplace_______|__OlEditResult(*)()__|__(n/a)______________|__G_____|
    | XtNtextSetInsertPoint|  XtCTextSetInsertPoint|  void(*)()          |  (n/a)              |  G     |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNtextUpdate________|__XtCTextUpdate________|__void(*)()__________|__(n/a)______________|__G_____|
    | XtNtopMargin         |  XtCMargin            |  Dimension          |  0                  |  SGI   |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNtraversalOn_______|__XtCTraversalOn_______|__Boolean____________|__TRUE_______________|__SGI___|
    | XtNuserData          |  XtCUserData          |  XtPointer          |  NULL               |  SGI   |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNverticalSB________|__XtCVerticalSB________|__Boolean____________|__FALSE______________|__SGI___|
    | XtNviewHeight        |  XtCViewHeight        |  Dimension          |  (calculated)       |  SGI   |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNwidth_____________|__XtCWidth_____________|__Dimension__________|__(calculated)_______|__SGI___|
    | XtNwrap              |  XtCWrap              |  Boolean            |  TRUE               |  SGI   |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNwrapBreak_________|__XtCWrapBreak_________|__OlDefine___________|__OLWRAPWHITESPACE|__SGI___|
    | XtNx                 |  XtCPosition          |  Position           |  0                  |  SGI   |
    |______________________|_______________________|_____________________|_____________________|________|
    |_XtNy_________________|__XtCPosition__________|__Position___________|__0__________________|__SGI___|

     XtNbottomMargin

     Range of Values:
          0 < XtNbottomMargin
     This resource is the number of pixels used  for  the  bottom
     margin.

     XtNcursorPosition

     Range of Values:
          0 < XtNcursorPosition < (current size of the text)



Amiga Unix                Last change:                         11





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     This resource is the position in  the  text  source  of  the
     insert cursor.

     XtNdisplayPosition

     Range of Values:
          0 < XtNdisplayPosition

     This resource contains the position in the text source  that
     will  be  displayed  at the top of the screen.  A value of 0
     indicates the start of the text source.  Note:
     The specified position must correspond to the first  charac-
     ter  position  of  a  source line (i.e., it must be 0, or it
     must be a position immediately following a  newline  charac-
     ter).  Otherwise, correct behavior is not guaranteed.

     XtNeditType

     Range of Values:
          OL_TEXT_READ/"read"
          OL_TEXT_EDIT/"edit"

     This resource controls the edit state of the source:

     OL_TEXT_READ
                 The source is read-only;  the  end  user  cannot
                 edit it.

     OL_TEXT_EDIT
                 The source is fully editable.  Note:
                 This option is available for text buffers  only;
                 text files cannot be edited.

                 XtNfile  This  resource  is  used  only  if  the
                 XtNsourceType    resource    has    the    value
                 OL_DISK_SOURCE.  It is the absolute pathname  of
                 a disk file to be viewed.

                 XtNfont

     Range of Values:
          (any valid return from XLoadQueryFont())
Default:
     (chosen to match the scale and screen resolution)

     This resource identifies the font to be used to display  the
     text.   The default value points to a cached font structure;
     an application should not expect to get this  value  with  a
     call to XtGetValues() and use it reliably thereafter.

     XtNfontColor




Amiga Unix                Last change:                         12





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     Range of Values:
          (any Pixel value valid for  the  current  display)/(any
          name from the rgb.txt file)

     This resource specifies the color for the font.  If not set,
     the  color from the XtNforeground resource, if available, is
     used for the font.  See the note about  the  interaction  of
     this  resource with other color resources under the descrip-
     tion of the XtNbackground resource in CORE(3W).














































Amiga Unix                Last change:                         13





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     XtNforeground This resource defines the foreground color for
     the  widget.   See  the  note  about the interaction of this
     resource with other color resources under the description of
     the XtNbackground resource in CORE(3W).

     XtNgrow

     Range of Values:
          OL_GROW_OFF/"off"
          OL_GROW_HORIZONTAL/"horizontal"
          OL_GROW_VERTICAL/"vertical"
          OL_GROW_BOTH/"both"

     This resource controls if the widget will try to resize  its
     window  when  it  needs  more height or width to display the
     text:

     OL_GROW_OFF
             It will not resize itself.

     OL_GROW_HORIZONTAL
             It will attempt to change its width when  lines  are
             too long for the current screen width.

     OL_GROW_VERTICAL
             it will attempt to resize its height when the number
             of  text lines is greater than can be displayed with
             the current screen height.

     OL_GROW_BOTH
             It will attempt resizes in both dimensions.  XtNver-
             ticalSB

     Range of Values:
          TRUE
          FALSE

     These resources determine if the Text  widget  will  have  a
     scrollbar along the side.


     XtNleaveVerification This is the callback list used when the
     input focus leaves the Text widget.  The call_data parameter
     is a pointer to an OlTextVerifyCD structure  described  ear-
     lier in TEXT.

     XtNleftMargin

     Range of Values:
          0 < XtNleftMargin





Amiga Unix                Last change:                         14





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     This resource is the number of pixels used for the left mar-
     gin.





















































Amiga Unix                Last change:                         15





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     XtNmaximumSize

     Range of Values:
          0 < XtNmaximumSize

     This resource is used only if the XtNsourceType resource has
     the  value  OL_STRING_SOURCE.   It  is the maximum number of
     characters that can be entered into the internal buffer.  If
     this  value  is  not  set,  then  the  internal  buffer will
     increase its size as needed, limited only by the space limi-
     tations of the process.

     XtNmodifyVerification This callback list  is  called  before
     text  is deleted from or inserted into the text source.  The
     call_data parameter is a pointer to an OlTextVerifyCD struc-
     ture described earlier.

     XtNmotionVerification This callback list  is  called  before
     the  insertion  cursor  is  moved  to  a  new position.  The
     call_data parameter is a pointer to an OlTextVerifyCD struc-
     ture described earlier in TEXT.

     XtNrecomputeSize

     Range of Values:
          TRUE
          FALSE

     This resource indicates whether the Text widget should  cal-
     culate  its  size  and  automatically  set the XtNheight and
     XtNwidth resources.  If set to TRUE, the Text widget will do
     normal  size  calculations  that  may  cause its geometry to
     change.  If set to FALSE, the Text  widget  will  leave  its
     size  alone.   This  resource  is ignored for each dimension
     that has an associated scrollbar.

     XtNreferenceWidget

     This resource specifies a position for inserting the current
     widget  in  its  managing ancestor's traversal list.  If the
     reference widget is non-null  and  exists  in  the  managing
     ancestor's  traversal  list,  the  current  widget  will  be
     inserted in front of it.  Otherwise, the current widget will
     be inserted at the end of the list.

     XtNrightMargin

     Range of Values:
          0 < XtNrightMargin

     This resource is the number of pixels  used  for  the  right
     margin.



Amiga Unix                Last change:                         16





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     XtNshowPage  This  resource  is  directed  to  the  vertical
     scrollbar  in  the  Text  widget.   See  SCROLLBAR  for more
     detail.




















































Amiga Unix                Last change:                         17





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     XtNsourceType

     Range of Values:
          OL_STRING_SOURCE/"stringsrc"
          OL_DISK_SOURCE/"disksrc"

     This resource defines the type of the text source.

     XtNstring This resource is used only  if  the  XtNsourceType
     resource has the value OL_STRING_SOURCE.  This is the string
     to be viewed and/or edited.  A copy is made into an internal
     buffer  allocated  by  the  Text  widget.   A call to XtGet-
     Values() on this resource will return a copy of the internal
     buffer.   The application program is responsible for freeing
     the space allocated by this copy.

     XtNtextClearBuffer
     Synopsis:
          void (*textClearBuffer)();

          static Arg query[] = {
                  { XtNtextClearBuffer,(XtArgVal)&textClearBuffer }
          };
          XtGetValues(widget, query, XtNumber(query));
          (*textClearBuffer)(w)
          Widget w;
This function clears the internal buffer.  After this  call,  all
characters in the buffer have been removed.

XtNtextCopyBuffer
Synopsis:

     unsigned char *(*textCopyBuffer)(), *buf;
     static Arg query[] = {
             { XtNtextCopyBuffer, (XtArgVal)&textCopyBuffer }
     };
     XtGetValues(widget, query, XtNumber(query));

     buf = (*textCopyBuffer)(w)
     Widget w;
This function uses XtMalloc() to create  space  for  copying  the
internal buffer and returns the pointer to that copy.  The appli-
cation is responsible for freeing the space.

XtNtextGetInsertPoint
Synopsis:
     OlTextPosition (*textGetInsertPoint)(), pos;

     static Arg query[] = {
             { XtNtextGetInsertPoint,(XtArgVal)&textGetInsertPoint }
     };
     XtGetValues(widget, query, XtNumber(query));



Amiga Unix                Last change:                         18





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     pos = (*textGetInsertPoint)(w)
     Widget w;
This function returns the insertion position.

XtNtextGetLastPos
Synopsis:

     OlTextPosition  (*textGetLastPos)(), pos;
     static Arg query[] = {
             { XtNtextGetLastPos, (XtArgVal)&textGetLastPos }
     };
     XtGetValues(widget, query, XtNumber(query));

     pos = (*textGetLastPos)(w, lastPos)
     Widget w;
     OltextPosition lastPos;

     This function returns the last  character  position  in  the
     buffer.

     XtNtextInsert
     Synopsis:
          void (*textInsert)();

          static Arg query[] = {
                  { XtNtextInsert, (XtArgVal)&textInsert }
          };
          XtGetValues(widget, query, XtNumber(query));
          (*textInsert)(w, string)
          Widget w;
          unsigned char *string;
This function inserts the string at the current  insertion  posi-
tion  and  advances  the  insertion  position  to  the end of the
string.

XtNtextReadSubString
Synopsis:
  int (*textReadSubString)();

  static Arg query[] = {
          { XtNtextReadSubString,(XtArgVal)&textReadSubString }
  };
  XtGetValues(widget, query, XtNumber(query));
  (*textReadSubString)(w,startpos,endpos,target,tsize,tused)
  Widget w;
  OltextPosition startpos, endpos;
  unsigned char *target;
  int tsize, *tused;
This function will move  characters  from  the  buffer  into  the
caller's  space.   The caller must provide the space to copy into
and its size in bytes.  The routine will  return  the  number  of
positions  moved.  The value of tused returns the number of bytes



Amiga Unix                Last change:                         19





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



used in the target string by the move.

XtNtextRedraw
Synopsis:

     void (*textRedraw)();
     static Arg query[] = {
             { XtNtextRedraw, (XtArgVal)&textRedraw }
     };
     XtGetValues(widget, query, XtNumber(query));

     (*textRedraw)(w);
     Widget w;
This function refreshes the widget's window.
XtNtextReplace
Synopsis:

     OlEditResult (*textReplace)(), result;
     static Arg query[] = {
             { XtNtextReplace, (XtArgVal)&textReplace }
     };
     XtGetValues(widget, query, XtNumber(query));

     result = (*textReplace)(w, startPos, endPos, text)
     Widget w;
     OltextPosition startPos, endPos;
     unsigned char *text;
This function removes text in the source from startPos to  endPos
and  inserts  the  string text starting at startPos.  If startPos
and endPos are the same, the action is an insertion.  If text  is
the empty string, the action is a deletion.

XtNtextSetInsertPoint
Synopsis:
  void (*textSetInsertPoint)();

  static Arg query[] = {
          { XtNtextSetInsertPoint, (XtArgVal)&textSetInsertPoint }
  };
  XtGetValues(widget, query, XtNumber(query));
  (*textSetInsertPoint)(w, position)
  Widget w;
  OltextPosition position;
This function sets the insertion point.

XtNtextUpdate
Synopsis:

     void (*textUpdate)();
     static Arg query[] = {
             { XtNtextUpdate, (XtArgVal)&textUpdate }
     };



Amiga Unix                Last change:                         20





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     XtGetValues(widget, query, XtNumber(query));

     (*textUpdate)(w, status)
     Widget w;
     Boolean status;
This function turns the widget's screen updating function on  and
off.   If  the  application  needs  to  make a sequence of source
change calls, a call to OlTextUpdate(FALSE) will  prevent  screen
flash.   After  the  sequence  of  calls  the  application  calls
OlTextUpdate(TRUE) to update the window and resume normal  updat-
ing.   Note  that  it  is  not necessary to turn off updating for
functions that only get values from the widget, nor is it  neces-
sary  to  turn it off if the application only makes one call that
changes the widget.

XtNtopMargin

     Range of Values:
          0 < XtNtopMargin

     This resource is the number of pixels used for the top  mar-
     gin.

     XtNviewHeight

     Range of Values:
          0 < XtNviewHeight

     This resource gives the preferred height, in lines,  of  the
     text  pane.   If a nonzero value is given, the corresponding
     XtNheight resource is computed by converting this number  to
     pixels  and adding the thickness of any scrollbar and border
     that appears.  In this case,  any  value  in  the  XtNheight
     resource is overwritten.

     If a zero value is given in the XtNviewHeight resource,  the
     XtNheight resource is used as an estimate.  The text pane is
     sized to show an integral number of  lines,  such  that  the
     overall  height  of the Text widget is less than or equal to
     XtNheight, if possible.  However, the text  pane  is  always
     large  enough  to  show  at least one line and is no shorter
     than  the  minimum  scroll  bar  size.    If   neither   the
     XtNviewHeight resource nor the XtNheight resource is set, or
     both are set to zero, the text pane is made as small as pos-
     sible, limited as described above.










Amiga Unix                Last change:                         21





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



     XtNtraversalOn

     Range of Values:
          TRUE
          FALSE
     This resource specifies whether this  widget  is  selectable
     during traversal.

     XtNwrap

     Range of Values:
          TRUE
          FALSE
     This resource specifies how the widget displays lines longer
     than  the  screen  width.   When set to FALSE, the lines may
     extend off screen to the right.  When set to TRUE, the lines
     will  be  wrapped  at  the  right  margin, with the position
     determined by the resource XtNwrapBreak.

     XtNwrapBreak

     Range of Values:
          OL_WRAP_ANY/"wrapany"
          OL_WRAP_WHITE_SPACE/"wrapwhitespace"

     This resource specifies how the wrap position is determined.
     When set to OL_WRAP_ANY, the wrap will happen at the charac-
     ter position closest to  the  right  margin.   When  set  to
     OL_WRAP_WHITE_SPACE,  the wrap will happen at the last white
     space before the right margin.  If the line  does  not  have
     white space, it will be wrapped as OL_WRAP_ANY.

     Growing,  Wrapping,  Scrolling  The  XtNgrow,  XtNwrap,  and
     XtNverticalSB  resources are used to control how the view of
     the text is adjusted as new text is inserted.  Assuming  the
     insertion  would  cause  the current view to be too small to
     show all the text, the following table  explains  what  hap-
     pens.  A "yes" in the first column means that XtNgrow allows
     growing in the affected direction; a "no" means it does not.
     A  "yes"  in  the second column means that the XtNverticalSB
     resource is TRUE.
     ____________________________________________________________
     XtNgrowCanscroll?XtNwrapAffect
                               TRUE
                    yes      _________  grow if can, else scroll
               ________________FALSE_____________________________
        yes                    TRUE
                    no       _________  grow if can, else clip
     __________________________FALSE_____________________________
                               TRUE     wrap
                    yes      ____________________________________
               ________________FALSE____scroll___________________



Amiga Unix                Last change:                         22





TEXT WIDGET(3W)   MISC. REFERENCE MANUAL PAGES    TEXT WIDGET(3W)



                               TRUE     wrap
                    no       ____________________________________
     __________________________FALSE____clip_____________________
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |   no   |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |
    |        |             |         |                          |













Amiga Unix                Last change:                         23



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026