NAME
Xaw - X Athena Widgets
DESCRIPTION
Xaw
is a widget set based on the X Toolkit Intrinsics (Xt) Library. This
release by the X.org Foundation includes additions and modifications
originally made for The XFree86 Project, Inc. This manual page describes
these changes as well as some of the common interfaces between its version
and the previous X Consortium release (Xaw6).
ACTIONS
All of the _X_a_w widgets now have the additional translations
call-proc, declare, get-values
and sseett--vvaalluueess. The syntax for these actions is:
action-name ((_b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n,, _a_r_g_u_m_e_n_t_s))</ii>>
<
>
AAccttiioonn--nnaammee iiss oonnee ooff _c_a_l_l_-_p_r_o_c,, _d_e_c_l_a_r_e,,
_g_e_t_-_v_a_l_u_e_s oorr _s_e_t_-_v_a_l_u_e_s..
<
>
BBoooolleeaann--eexxpprreessssiioonn iiss ccoommppoosseedd wwiitthh tthhee ooppeerraattoorrss _| (or), _&
(and), _^ (xor), and _~ (not). The operands can be a variable name,
which starts with a _$; a resource name without the bindings _.
or _*; or a constant name, including _m_i_n_e (event->xany.window
== XtWindow(widget)), _f_a_k_e_d (event->xany.send_event != 0), _t_r_u_e (1)
and _f_a_l_s_e (0).
AArrgguummeennttss are self-explanatory; when starting with a _$ they name
a variable, otherwise, they indicate a resource name.
-
call-proc _(_b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_, _p_r_o_c_e_d_u_r_e_-_n_a_m_e_)_<_/_b_>
_<_d_d_>
_T_h_i_s _a_c_t_i_o_n _a_l_l_o_w_s _t_h_e _e_v_a_l_u_a_t_i_o_n _o_f _a _b_o_o_l_e_a_n _e_x_p_r_e_s_s_i_o_n _i_n _t_h_e _f_i_r_s_t
_p_a_r_a_m_e_t_e_r _b_e_f_o_r_e _c_a_l_l_i_n_g _a _a_c_t_i_o_n _p_r_o_c_e_d_u_r_e_. _T_h_e _p_r_o_c_e_d_u_r_e _i_s _o_n_l_y _c_a_l_l_e_d
_i_f _t_h_e _e_x_p_r_e_s_s_i_o_n _e_v_a_l_u_a_t_e_s _a_s _t_r_u_e_. _E_x_a_m_p_l_e_:
_<_b_r_>_<_b_r_>
_<_b_r_>
_<_p_r_e_>
_c_a_l_l_-_p_r_o_c_(_"_$_i_n_s_i_d_e _& _$_p_r_e_s_s_e_d_"_, _n_o_t_i_f_y_)
-
declare _(_b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_, _v_a_r_i_a_b_l_e_, _v_a_l_u_e_, _._._._)_<_/_b_>
_<_d_d_>
_T_h_i_s _a_c_t_i_o_n _i_s _u_s_e_d _t_o _c_r_e_a_t_e _n_e_w _v_a_r_i_a_b_l_e_s _o_r _c_h_a_n_g_e _t_h_e_i_r _v_a_l_u_e_s_. _A_n_y
_n_u_m_b_e_r _o_f _v_a_r_i_a_b_l_e_-_v_a_l_u_e _t_u_p_l_e_s _m_a_y _b_e _s_p_e_c_i_f_i_e_d_. _E_x_a_m_p_l_e_:
_<_b_r_>_<_b_r_>
_<_b_r_>
_<_p_r_e_>
_d_e_c_l_a_r_e_(_1_, _$_p_r_e_s_s_e_d_, _1_)
-
get-values _(_b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_, _v_a_r_i_a_b_l_e_, _v_a_l_u_e_, _._._._)_<_/_b_>
_<_d_d_>
_T_h_i_s _a_c_t_i_o_n _r_e_a_d_s _a _w_i_d_g_e_t _r_e_s_o_u_r_c_e _v_a_l_u_e _i_n_t_o _a _v_a_r_i_a_b_l_e_. _A_n_y _n_u_m_b_e_r _o_f
_v_a_r_i_a_b_l_e_-_v_a_l_u_e _t_u_p_l_e_s _m_a_y _b_e _s_p_e_c_i_f_i_e_d_. _E_x_a_m_p_l_e_:
_<_b_r_>_<_b_r_>
_<_b_r_>
_<_p_r_e_>
_g_e_t_-_v_a_l_u_e_s_(_1_, _$_f_g_, _f_o_r_e_g_r_o_u_n_d_, _$_b_g_, _b_a_c_k_g_r_o_u_n_d_)
-
set-values _(_b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_, _v_a_r_i_a_b_l_e_, _v_a_l_u_e_, _._._._)_<_/_b_>
_<_d_d_>
_T_h_i_s _a_c_t_i_o_n _s_e_t_s _a _w_i_d_g_e_t _r_e_s_o_u_r_c_e _t_o _t_h_e _g_i_v_e_n _v_a_l_u_e_, _w_h_i_c_h _m_a_y _b_e _a
_v_a_r_i_a_b_l_e_. _A_n_y _n_u_m_b_e_r _o_f _v_a_r_i_a_b_l_e_-_v_a_l_u_e _t_u_p_l_e_s _m_a_y _b_e _s_p_e_c_i_f_i_e_d_. _E_x_a_m_p_l_e_:
_<_b_r_>_<_b_r_>
_<_b_r_>
_<_p_r_e_>
_s_e_t_-_v_a_l_u_e_s_(_1_, _f_o_r_e_g_r_o_u_n_d_, _$_b_g_, _b_a_c_k_g_r_o_u_n_d_, _$_f_g_)
Here is a sample translation to make a label widget behave like a button:
DISPLAY LISTS
All of the XXaaww widgets have now the additional resource
_d_i_s_p_l_a_y_L_i_s_t. This resource allows drawing the widget decorations
using commands embedded in a resource string. The displayList resource has
the syntax:
_[_c_l_a_s_s_-_n_a_m_e_:_]_f_u_n_c_t_i_o_n_-_n_a_m_e _a_r_g_u_m_e_n_t_s_[_[_{_;_\_n_}_]_._._._]
CCllaassss--nnaammee is any registered set of functions to draw in the widget.
Currently the only existing class is _x_l_i_b, which provides access to
the Xlib drawing primitives.
FFuunnccttiioonn--nnaammee is the drawing or configuration function to be called,
described bellow.
AArrgguummeennttss may be anything suitable to the displayList function being
called. When the function requires a coordinate, the syntax is
_{_+_-_}_<_i_n_t_e_g_e_r_> or _<_i_n_t_e_g_e_r_>_/_<_i_n_t_e_g_e_r_>. Examples:
+0,+0 top, left
-0,-0 bottom, right
-+10,-+10 bottom+10, right+10
+0,1/2 left, vertical-center
-
arc-mode _m_o_d_e_<_/_b_>
_<_d_d_>
_S_e_t_s _t_h_e _a_r_c _m_o_d_e_. _A_c_c_e_p_t_e_d _m_o_d_e_s _a_r_e _"_p_i_e_s_l_i_c_e_" _a_n_d _"_c_h_o_r_d_"_, _w_h_i_c_h
_s_e_t _t_h_e _a_r_c _t_o _A_r_c_P_i_e_S_l_i_c_e _o_r _A_r_c_C_h_o_r_d_, _r_e_s_p_e_c_t_i_v_e_l_y_. _E_x_a_m_p_l_e_:
_<_b_r_>_<_b_r_>
_<_b_r_>
_<_p_r_e_>
_a_r_c_-_m_o_d_e _c_h_o_r_d
-
bg _c_o_l_o_r_-_s_p_e_c_<_/_b_>
_<_d_d_>
_<_d_t_>
_<_b_>_b_a_c_k_g_r_o_u_n_d color-spec
-
Sets the background color. _c_o_l_o_r_-_s_p_e_c must a valid color
specification. Example:
background red
-
cap-style style
-
Sets the cap style. Accepted _s_t_y_l_es are "notlast", "butt", "round",
and "projecting", which set the cap style to CapNotLast, CapBut, CapRound
or CapProjecting, respectively. Example:
cap-style round
-
clip-mask pixmap-spec
-
Sets the pixmap for the clip mask. Requires a pixmap parameter, as
described in the PPIIXXMMAAPPSS section below. Example:
clip-mask xlogo11
-
clip-origin x,y
-
Sets the clip x and y origin. Requires two arguments, the x and y
coordinates. Example:
clip-origin 10,10
-
clip-rects x1,y1,x2,y2 [...,xn,yn]
-
-
clip-rectangles x1,y1,x2,y2 [...,xn,yn]
-
Sets a list of rectangles to the clip mask. The number of arguments must
be a multiple of four. The arguments are coordinates. The parser
calculates the width and height of the rectangles. Example:
clip-rects 0,0,10,20, 20,10,30,30
-
coord-mode mode
-
Changes the coord mode for _f_i_l_l_-_p_o_l_y_g_o_n, _d_r_a_w_-_l_i_n_e_s, and
_d_r_a_w_-_p_o_i_n_t_s. Accepted parameters are "modeorigin" and "previous",
that sets the coord mode to CoordModeOrigin or CoordModePrevious,
respectively. Example:
coord-mode previous
-
copy-area {pixmap-spec|.},dstx,dsty[,x2,y2,srcx,srcy]
-
Calls XCopyArea. The character _. means copy the window contents;
pixmap-spec is as defined in the PPIIXXMMAAPPSS section below. _X_2 and
_y_2 are the coordinates of the end copy, not the width and height; if
not defined, the parser calculates them. _s_r_c___x and _s_r_c___y
default to zero. Example:
copy-area Term,10,10
-
copy-plane {pixmap-spec|.},dstx,dsty[,x2,y2,srcx,srcy,plane]
-
Calls XCopyPlane. The character _. means copy the window contents;
pixmap-spec is as defined in the PPIIXXMMAAPPSS section below. _X_2 and
_y_2 are the coordinates of the end copy, not the width and height; if
not defined, the parser calculates them. _s_r_c___x and _s_r_c___y
default to zero. _P_l_a_n_e defaults to one. Example:
copy-plane star,10,10
-
dashes i1[...,in]
-
Sets the dashes for line drawing. Accepts up to 127 arguments. Example:
dashes 3,7 9,10
-
draw-arc x1,y1,x2,y2[,start-angle,end-angle]
-
Draws an arc. The four first arguments are the rectangle enclosing the
arc. The two remaining arguments, if specified, are the start and end
angle, in degrees. Example:
draw-arc +0,+0,-1,-1,0,90
-
draw-rect x1,y1,x2,y2
-
-
draw-rectangle x1,y1,x2,y2
-
Draws a rectangle. Requires four arguments, which are the start and end
coordinate pairs. Example:
draw-rect +1,+1,-5,-5
-
draw-string x,y,"string"
-
Draws a text string. Requires three arguments, a x coordinate, a y
coordinate, and a string. Strings that have white space can be quoted with
the _" character; the backslash character _\ can also be used,
but it will be necessary escape it twice. Example:
draw-string 10,10, "Hello world!"
-
exposures boolean
-
Sets graphics exposures in the GC. Allowed parameters are a integer or the
strings "true", "false", "on" and "off". Example:
exposures true
-
fill-arc x1,y1,x2,y2[,start-angle,end-angle]
-
Like _d_r_a_w_-_a_r_c, but fills the contents of the arc with the currently
selected foreground. Example:
fill-arc +0,+0,-1,-1,0,180
-
fill-poly x1,y1 [...,xn,yn]
-
-
fill-polygon x1,y1 [...,xn,yn]
-
Like _d_r_a_w_-_l_i_n_e_s, but fills the enclosed polygon and joins the first
and last point, if they are not at the same position. Example:
fill-poly +0,+10, +10,+20, +30,+0
-
fill-rect x1,y1,x2,y2
-
-
fill-rectangle x1,y1,x2,y2
-
Like _d_r_a_w_-_r_e_c_t, but fills the contents of the rectangle with the
selected foreground color. Example:
fill-rect +10,+10,-20,-20
-
fill-rule rule
-
Sets the fill rule. Accepted parameters are "evenodd" and "winding", which
set the fill rule to EvenOddRule or WindingRule, respectively. Example:
fill-rule winding
-
fill-style style
-
Sets the fill style. Allowed parameters are "solid", "tiled", "stippled" and
"opaquestippled", which set the fill style to FillSolid, FillTiled,
FillStippled or FillOpaqueStippled, respectively. Example:
fill-style tiled
-
font font-spec
-
Sets the font for text functions. Example:
font -*-*-*-R-*-*-*-120-*-*-*-*-ISO8859-1
-
fg color-spec
-
-
foreground color-spec
-
Like _b_a_c_k_g_r_o_u_n_d, but sets the current foreground color. Example:
foreground blue
-
mask
-
This command is useful when you want to draw only in the region that really
needs to be repainted. Requires no arguments.
-
function function-spec
-
Sets the specific GC function. Allowed parameters are "set", "clear", "and",
"andreverse", "copy", "andinverted", "noop", "xor", "or", "nor", "equiv",
"invert", "orreverse", "copyinverted" and "nand", which set the function to
GXset, GXclear, GXand, GXandReverse, GXcopy, GXandInverted, GXnoop, GXxor,
GXor, GXnor, GXequiv, GXinvert, GXorReverse, GXcopyInverted or GXnand,
respectively. Example:
function xor
-
join-style style
-
Sets the join style. Allowed parameters are "miter", "round" and "bevel",
which set the join style to JoinMiter, JoinRound and JoinBevel,
respectively. Example:
join-style round
-
image {pixmap-spec},xs,ys,[xe,ye]
-
This function is implemented as a way to quickly compose complex
decorations in widgets. _P_i_x_m_a_p_-_s_p_e_c is as defined in the
PPIIXXMMAAPPSS section below. _x_s and _y_s are the coordinates from
where to start copying the pixmap; _x_e and _y_e are optional (they
default to xs + pixmap.width and ys + pixmap.height, respectively). If the
pixmap has a mask, the copy is masked accordingly. Example:
image pixmap.xpm,0,0,20,20
-
line x1,y1,x2,y2
-
-
draw-line x1,y1,x2,y2
-
Draws a line with the current foreground color. Requires four arguments,
the starting and ending coordinate pairs. Example:
line +0,+0, -1,-1
-
line-width integer
-
Selects a line width for drawing. Example:
line-width 2
-
line-style style
-
Sets the line style. Accepted parameters are "solid", "onoffdash" and
"doubledash", which set the line style to LineSolid, LineOnOffDash or
LineDoubleDash, respectively. Example:
line-style onoffdash
-
lines x1,y1,x2,y2 [...,xn,yn]
-
-
draw-lines x1,y1,x2,y2 [...,xn,yn]
-
Draws a list of lines. Any number of argument pairs may be supplied.
Example:
lines +0,-1, -1,-1, -1,+0
-
paint-string x,y,"string"
-
Identical to draw-string, but also uses the background color. Example:
paint-string 10,20, "Sample text"
-
point x,y
-
-
draw-point x,y
-
Draws a point. Requires two arguments, a coordinate pair. Example:
point +10,+10
-
plane-mask integer
-
Sets the plane mask. Requires an integer parameter. Example:
plane-mask -1
-
points x1,y1 [...,xn,yn]
-
-
draw-points x1,y1 [...,xn,yn]
-
Draws a list of points at the specified coordinates. Example:
points +1,+2, +1,+4, +1,+6
-
segments x1,y1,x2,y2 [...,xn,yn]
-
-
draw-segments x1,y1,x2,y2 [...,xn,yn]
-
Draws a list of segment lines. The number of parameters must be multiple
of 4. Example:
segments +1,+2,+1,-3, +2,-2,-3,-2
-
shape-mode mode
-
Sets the shape mode used in _f_i_l_l_-_p_o_l_y_g_o_n. Accepted parameters are
"complex", "convex" or "nonconvex", which set the shape mode to Complex,
Convex or Nonconvex, accordingly. Example:
shape-mode convex
-
stipple pixmap-spec
-
Sets the pixmap for a stipple. Requires a pixmap parameter, as described
in the PPIIXXMMAAPPSS section below. Example:
stipple plaid
-
subwindow-mode mode
-
Sets the subwindow mode in the GC. Accepted parameters are
"includeinferiors" and "clipbychildren", which set the subwindow mode to
IncludeInferiors or ClipByChildren, respectively. Example:
subwindow-mode includeinferiors
-
tile pixmap-spec
-
Sets the pixmap for a tile. Requires a pixmap parameter, as described
in the PPIIXXMMAAPPSS section below. Example:
tile xlogo11?foreground=red&background=gray80
-
ts-origin x,y
-
Sets the tile stipple x and y origin. Requires two arguments, a x and y
coordinate. Example:
ts-origin 10,10
-
umask
-
Disables the GC mask, if it has been set with the command _m_a_s_k.
Requires no arguments.
Example for drawing a shadow effect in a widget:
foreground gray30;\
draw-lines +1,-1,-1,-1,-1,+1;\
foreground gray85;\
draw-lines -1,+0,+0,+0,+0,-1
PIXMAPS
A String to Pixmap converter has been added to XXaaww. This converter
is meant to be extended, and has enough abstraction to allow loading
several image formats. It uses a format that resembles a _U_R_L, with
the syntax:
[type:]name[?arg=val[{&}...]]
TTyyppee can be one of _b_i_t_m_a_p, _g_r_a_d_i_e_n_t or _x_p_m.
NNaammee may be a file name, or, in the case of type _g_r_a_d_i_e_n_t, may be
either _v_e_r_t_i_c_a_l or _h_o_r_i_z_o_n_t_a_l.
AArrgg==vvaall is a list of arguments to the converter. An argument list is
preceded by a question mark, and multiple arguments are separated by
ampersands. The most common arguments are _f_o_r_e_g_r_o_u_n_d and
_b_a_c_k_g_r_o_u_n_d. Gradients also support the arguments _s_t_a_r_t and
_e_n_d (colors with which to start and end the gradient); the
_s_t_e_p_s argument, to allow using less colors; and the _d_i_m_e_n_s_i_o_n
argument to specify the size of the gradient. The _x_p_m converter
understands the _c_l_o_s_e_n_e_s_s argument, which aids in using fewer colors
(useful if you have a limited colormap).
TEXT WIDGET
Most of the changes to this version of the Xaw library were done in the
TextWidget, TextSrcObject, TextSinkObject and related files.
A couple of highly visible changes in the Text widget are due to many bugs
in the Xaw6 implementation involving scrollbars and auto-resizing.
Scrollbars being added or removed caused several problems in keeping the
text cursor visible, and in Xaw6 it was very easy to have a widget thinking
the cursor was visible, when it was not. Also, permitting automatic
resizing of the widget to a larger geometry created other problems, making
it difficult to have a consistent layout in the application, and, if the
window manager did not interfere, windows larger than the screen could
result. Therefore, some functionality involving scrollbars and
auto-resizing has been disabled; see the section on new and modified
Text widget resources below.
The Text widget's default key bindings were originally based on the Emacs
text editor. In this release, even more operations familiar to Emacs users
have been added. New text actions include:
-
indent
-
Indents text blocks. Not bound by default. The Text widget also does not
attempt to perform auto-indentation of its source object by default.
-
keyboard-reset
-
Resets the keyboard state. Reverts the action multiplier to 1, and if undo
is enabled, toggles between undo and redo. Bound by default to
_C_o_n_t_r_o_l_<_K_e_y_>_G.
-
kill-ring-yank
-
In this version of Xaw, text killed in any text field is kept in memory,
allowing cut and paste operations internally to the program between text
fields. Bound by default to _M_e_t_a_<_K_e_y_>_Y.
-
numeric
-
Listed here only for purposes of documentation. Called by default when one
of the characters _1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _0_, or _- is typed,
allowing composition of the multiplication number of text actions.
-
set-keyboard-focus
-
Sets the input focus of the top level widget to the text field. Not
enabled by default, but bound to the _<_B_t_n_1_D_o_w_n_> event.
-
toggle-overwrite
-
Toggles overwrite mode. In overwrite mode, any text inserted in a text
field will replace existing text. Bound by default to _<_K_e_y_>_I_n_s_e_r_t.
-
undo
-
Sets the _e_n_a_b_l_e_U_n_d_o resource of the textSrcObject. Not enabled by
default, but bound to _C_o_n_t_r_o_l_<_K_e_y_>__.
New and modified Text widget resources include:
-
justify (_C_l_a_s_s JJuussttiiffyy))</bb>>
<>
SSeettss tthhee tteexxtt jjuussttiiffiiccaattiioonn.. CCaann bbee oonnee ooff _l_e_f_t_, _r_i_g_h_t_, _c_e_n_t_e_r,, oorr
_f_u_l_l.. OOnnllyy eennaabblleedd wwhheenn tthhee _a_u_t_o_F_i_l_l rreessoouurrccee iiss sseett,, aanndd tthhee
rreessoouurrcceess _l_e_f_t_C_o_l_u_m_n aanndd _r_i_g_h_t_C_o_l_u_m_n aarree ccoorrrreeccttllyy sseett..
<>
<>lleeffttCCoolluummnn ((_C_l_a_s_s CCoolluummnn))</bb>>
<>
SSppeecciiffiieess tthhee lleefftt ccoolluummnn aatt wwhhiicchh ttoo bbrreeaakk tteexxtt.. TTeexxtt lliinneess ssttaarrtteedd wwiitthh
aann aallpphhaannuummeerriicc cchhaarraacctteerr wwiillll aauuttoommaattiiccaallllyy ssttaarrtt aatt tthhiiss ccoolluummnn..
<>
<>ppoossiittiioonnCCaallllbbaacckk ((_C_l_a_s_s CCaallllbbaacckk))</bb>>
<>
AAlllloowwss iinnssttaallllaattiioonn ooff aa ccaallllbbaacckk ttoo bbee ccaalllleedd eevveerryy ttiimmee tthhee ccuurrssoorr iiss
mmoovveedd,, aanndd//oorr tthhee ffiillee cchhaannggeess iittss ssiizzee.. TThhee ccaallllbbaacckk iiss ccaalllleedd wwiitthh aa
ppooiinntteerr ttoo aa ssttrruuccttuurree ccoonnttaaiinniinngg tthhee ffoolllloowwiinngg ddaattaa::
<>
<
>
ttyyppeeddeeff ssttrruucctt {{
iinntt lliinnee__nnuummbbeerr;;
iinntt ccoolluummnn__nnuummbbeerr;;
XXaawwTTeexxttPPoossiittiioonn iinnsseerrtt__ppoossiittiioonn;;
XXaawwTTeexxttPPoossiittiioonn llaasstt__ppoossiittiioonn;;
BBoooolleeaann oovveerrwwrriittee__mmooddee;;
}} XXaawwTTeexxttPPoossiittiioonnIInnffoo;;
</pprree>>
TThhiiss ccaallllbbaacckk iiss iinntteennddeedd ttoo hheellpp pprrooggrraammmmeerrss wwrriittee tteexxtt eeddiittoorrss bbaasseedd
oonn tthhee XXaaww wwiiddggeett sseett..
<>
<>rreessiizzee ((_C_l_a_s_s RReessiizzee))</bb>>
<>
NNoo lloonnggeerr ssuuppppoorrtteedd,, bbuutt rreeccooggnniizzeedd ffoorr bbaacckkwwaarrdd ccoommppaattiibbiilliittyy wwiitthh
rreessoouurrccee ssppeecciiffiiccaattiioonnss wwrriitttteenn ffoorr tthhee XXaaww66 TTeexxtt wwiiddggeett..
<>
<>rriigghhttCCoolluummnn ((_C_l_a_s_s CCoolluummnn))</bb>>
<>
SSppeecciiffiieess tthhee rriigghhtt ccoolluummnn aatt wwhhiicchh ttoo bbrreeaakk tteexxtt.. TTeexxtt lliinneess ssttaarrtteedd wwiitthh
aann aallpphhaannuummeerriicc cchhaarraacctteerr wwiillll aauuttoommaattiiccaallllyy eenndd aatt tthhiiss ccoolluummnn..
<>
<>ssccrroollllHHoorriizzoonnttaall ((_C_l_a_s_s SSccrroollll))</bb>>
<>
<>
<>ssccrroollllVVeerrttiiccaall ((_C_l_a_s_s SSccrroollll))</bb>>
<>
TThheessee rreessoouurrcceess ccoonnttrrooll tthhee ppllaacceemmeenntt ooff ssccrroollllbbaarrss oonn tthhee lleefftt aanndd bboottttoomm
eeddggeess ooff tthhee TTeexxtt wwiiddggeett.. TThheeyy aacccceepptt tthhee vvaalluueess _X_a_w_t_e_x_t_S_c_r_o_l_l_A_l_w_a_y_s
aanndd _X_a_w_t_e_x_t_S_c_r_o_l_l_N_e_v_e_r.. AA ccoonnvveerrtteerr iiss rreeggiisstteerreedd ffoorr tthhiiss rreessoouurrccee
tthhaatt wwiillll ccoonnvveerrtt tthhee ffoolllloowwiinngg ssttrriinnggss:: _a_l_w_a_y_s aanndd _n_e_v_e_r.. TThhee
vvaalluuee _X_a_w_t_e_x_t_S_c_r_o_l_l_W_h_e_n_N_e_e_d_e_d ((aanndd _w_h_e_n_N_e_e_d_e_d,, rreeccooggnniizzeedd bbyy
tthhee ccoonnvveerrtteerr)),, iiss aacccceepptteedd ffoorr bbaacckkwwaarrddss ccoommppaattiibbiilliittyy wwiitthh rreessoouurrccee
ssppeecciiffiiccaattiioonnss wwrriitttteenn ffoorr tthhee XXaaww66 TTeexxtt wwiiddggeett,, bbuutt iiggnnoorreedd ((eeffffeeccttiivveellyy
ttrreeaatteedd aass _X_a_w_t_e_x_t_S_c_r_o_l_l_N_e_v_e_r))..
</ddll>>
<> TTEEXXTT SSOOUURRCCEE OOBBJJEECCTT </hh33>>
TThhee tteexxttSSrrccOObbjjeecctt aalllloowwss ddiissppllaayy ooff iittss ccoonntteennttss ttoo mmoorree tthhaann oonnee wwiinnddooww,,
aanndd aallssoo ssttoorreess uunnddoo iinnffoorrmmaattiioonn.. TThhee nneeww rreessoouurrcceess ffoorr tthhee tteexxttSSrrccOObbjjeecctt
aarree::
<>
<>
<>ccaallllbbaacckk ((_C_l_a_s_s CCaallllbbaacckk))</bb>>
<>
PPrreevviioouuss vveerrssiioonnss ooff XXaaww hhaadd tthhiiss rreessoouurrccee iinn ssuubbccllaasssseess ooff tthhee TTeexxttSSoouurrccee
oobbjjeecctt.. TThhiiss wwaass cchhaannggeedd ttoo mmaakkee iitt ppoossssiibbllee ttoo tteellll tthhee ccaallllbbaacckk tthhee
ssttaattee ooff tthhee tteexxtt wwhheenn uunnddoo iiss eennaabblleedd..
<>
<>eennaabblleeUUnnddoo ((_C_l_a_s_s UUnnddoo))</bb>>
<>
AA bboooolleeaann rreessoouurrccee tthhaatt eennaabblleess oorr ddiissaabblleess tthhee uunnddoo ffuunnccttiioonn.. TThhee ddeeffaauulltt
vvaalluuee iiss FFaallssee..
<>
<>ssoouurrcceeCChhaannggeedd ((_C_l_a_s_s CChhaannggeedd))</bb>>
<>
LLiikkee tthhee ccaallllbbaacckk rreessoouurrccee,, tthhiiss rreessoouurrccee wwaass pprreevviioouussllyy iinn ssuubbccllaasssseess ooff
tthhee TTeexxttSSoouurrccee oobbjjeecctt.. IItt iiss nnooww iinn tthhee tteexxttSSrrccOObbjjeecctt ttoo ccoonnttrrooll tthhee
cchhaannggeedd//uunncchhaannggeedd ssttaattee wwhheenn uunnddoo iiss eennaabblleedd..
</ddll>>
<> TTEEXXTT SSIINNKK OOBBJJEECCTT </hh33>>
TThhee tteexxttSSiinnkkOObbjjeecctt ssuubbccllaasssseess aasscciiiiSSiinnkkOObbjjeecctt aanndd mmuullttiiSSiinnkkOObbjjeecctt hhaavvee bbeeeenn
cchhaannggeedd sslliigghhttllyy ttoo uussee aa nneeww ccuurrssoorr sshhaappee ((nnoo lloonnggeerr aa ccaarreett aatt tthhee
bbaasseelliinnee)) tthhaatt iinnddiiccaatteess tthhee iinnppuutt ffooccuuss ooff tthhee tteexxtt wwiiddggeett,, aanndd aallllooww
ssppeecciiffiiccaattiioonn ooff tthhee ccuurrssoorr ccoolloorr.. TThhee nneeww rreessoouurrccee iiss::
<>
<>
<>ccuurrssoorrCCoolloorr ((_C_l_a_s_s CCoolloorr))</bb>>
<>
SSeettss tthhee ccuurrssoorr ccoolloorr ooff tthhee tteexxtt.. TThhiiss ccoolloorr iiss aallssoo uusseedd ttoo ddrraaww
sseelleecctteedd tteexxtt..
</ddll>>
<> SSIIMMPPLLEE MMEENNUU WWIIDDGGEETT </hh33>>
TThhee ssiimmpplleeMMeennuuWWiiddggeett aallggoorriitthhmm ttoo llaayy oouutt mmeennuu eennttrriieess hhaass bbeeeenn cchhaannggeedd ttoo
eennaabbllee mmuullttiippllee ccoolluummnnss wwhheenn aa ssiinnggllee ccoolluummnn ddooeess nnoott ffiitt oonn tthhee ssccrreeeenn..
IItt wwaass aallssoo mmooddiiffiieedd ttoo eennaabbllee ssuubbmmeennuuss..
<> SSMMEE BBSSBB OOBBJJEECCTT </hh33>>
AA nneeww rreessoouurrccee hhaass bbeeeenn aaddddeedd ttoo tthhee ssmmeeBBSSBBOObbjjeecctt ttoo aallllooww bbiinnddiinngg ssuubbmmeennuuss
ttoo iitt.. TThhee nneeww rreessoouurrccee iiss::
<>
<>
<>mmeennuuNNaammee ((_C_l_a_s_s MMeennuuNNaammee))</bb>>
<>
SSppeecciiffiieess tthhee nnaammee ooff tthhee ppooppuupp wwiiddggeett ttoo bbee ppooppppeedd uupp wwhheenn tthhee ppooiinntteerr iiss
oovveerr tthhee mmeennuu eennttrryy,, oorr NNUULLLL.. NNoottee tthhaatt tthhee nnaammeedd mmeennuu mmuusstt bbee aa cchhiilldd ooff
tthhee ppooppuupp ppaarreenntt ooff tthhee ssmmeeBBSSBBOObbjjeecctt..
</ddll>>
<> AAUUTTHHOORRSS </hh33>>
TThhee oorriiggiinnaall XX CCoonnssoorrttiiuumm vveerrssiioonn ooff tthhee AAtthheennaa WWiiddggeett SSeett aanndd iittss
ddooccuummeennttaattiioonn wweerree tthhee wwoorrkk ooff mmaannyy ppeeooppllee,, iinncclluuddiinngg CChhrriiss DD.. PPeetteerrssoonn,,
RRaallpphh SSwwiicckk,, MMaarrkk AAcckkeerrmmaann,, DDoonnnnaa CCoonnvveerrssee,, JJiimm FFuullttoonn,, LLoorreettttaa
GGuuaarriinnoo--RReeiidd,, CChhaarrlleess HHaayynneess,, RRiicchh HHyyddee,, MMaarryy LLaarrssoonn,, JJooeell MMccCCoorrmmaacckk,, RRoonn
NNeewwmmaann,, JJeeaannnnee RRiicchh,, TTeerrrryy WWeeiissssmmaann,, MMiikkee GGaannccaarrzz,, PPhhiill KKaarrllttoonn,, KKaatthhlleeeenn
LLaannggoonnee,, RRaamm RRaaoo,, SSmmookkeeyy WWaallllaaccee,, AAll MMeennttoo,, aanndd JJeeaann DDiiaazz..
<>
TThhee aaddddiittiioonnss aanndd mmooddiiffiiccaattiioonnss ttoo _X_a_w which were
originally made for XFree86 were written by Paulo
César Pereira de Andrade.
SEE ALSO
Athena Widget Set - C Language Interface