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