Provided by: libxaw7-dev_1.0.12-1_amd64 bug

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).

       The bulk of the Xaw documentation is  located  in  the  API  specification  which  may  be
       installed in /usr/share/doc/libxaw7-dev, or found on the X.Org website.

ACTIONS

       All of the Xaw widgets now have the additional translations call-proc, declare, get-values
       and set-values. The syntax for these actions is:

       action-name (boolean-expression, arguments)

       Action-name is one of call-proc, declare, get-values or set-values.

       Boolean-expression is composed with the operators | (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   mine   (event->xany.window   ==
       XtWindow(widget)), faked (event->xany.send_event != 0), true (1) and false (0).

       Arguments  are  self-explanatory;  when starting with a $ they name a variable, otherwise,
       they indicate a resource name.

       call-proc (boolean-expression, procedure-name)
               This action allows the evaluation of a boolean expression in the  first  parameter
               before calling a action procedure.  The procedure is only called if the expression
               evaluates as true.  Example:
               call-proc("$inside & $pressed", notify)

       declare (boolean-expression, variable, value, ...)
               This action is used to create new variables or change their values.  Any number of
               variable-value tuples may be specified.  Example:
               declare(1, $pressed, 1)

       get-values (boolean-expression, variable, value, ...)
               This  action  reads  a  widget  resource  value  into  a  variable.  Any number of
               variable-value tuples may be specified.  Example:
               get-values(1, $fg, foreground, $bg, background)

       set-values (boolean-expression, variable, value, ...)
               This action sets a widget resource to the given value, which may  be  a  variable.
               Any number of variable-value tuples may be specified.  Example:
               set-values(1, foreground, $bg, background, $fg)

       Here is a sample translation to make a label widget behave like a button:

       <Map>:      get-values(1, $fg, foreground, $bg, background)\n\
       <Btn1Down>: set-values(1, foreground, yellow, background, gray30)\n\
       <Btn1Up>:   set-values(1, foreground, $fg, background, $bg)

DISPLAY LISTS

       All of the Xaw widgets have now the additional resource displayList.  This resource allows
       drawing the widget  decorations  using  commands  embedded  in  a  resource  string.   The
       displayList resource has the syntax:

       [class-name:]function-name arguments[[{;\n}]...]

       Class-name  is  any registered set of functions to draw in the widget.  Currently the only
       existing class is xlib, which provides access to the Xlib drawing primitives.

       Function-name is the drawing or configuration function to be called, described bellow.

       Arguments may be anything suitable to the displayList  function  being  called.  When  the
       function  requires  a  coordinate,  the  syntax  is  {+-}<integer> or <integer>/<integer>.
       Examples:
            +0,+0      top, left
            -0,-0      bottom, right
            -+10,-+10  bottom+10, right+10
            +0,1/2     left, vertical-center

       arc-mode mode
               Sets the arc mode.  Accepted modes are "pieslice" and "chord", which set  the  arc
               to ArcPieSlice or ArcChord, respectively.  Example:
               arc-mode chord

       bg color-spec
       background color-spec
               Sets  the   background  color.   color-spec  must  a  valid  color  specification.
               Example:
               background red

       cap-style style
               Sets  the  cap  style.   Accepted  styles  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 PIXMAPS 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 fill-polygon, draw-lines,  and  draw-points.   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 PIXMAPS section below.  X2 and y2 are the coordinates of the end
               copy, not the width and height; if not defined, the parser calculates them.  src_x
               and src_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 PIXMAPS section below.  X2 and y2 are the coordinates of the end
               copy, not the width and height; if not defined, the parser calculates them.  src_x
               and src_y default to zero. Plane 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  draw-arc,  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 draw-lines, 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  draw-rect,  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 background, 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.  Pixmap-spec is as defined in the PIXMAPS section below. xs  and  ys  are
               the  coordinates  from  where  to start copying the pixmap; xe and ye 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 fill-polygon.  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
               PIXMAPS 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
               PIXMAPS 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  mask.   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 Xaw.  This converter is meant to be
       extended, and has enough abstraction to allow loading several image formats.   It  uses  a
       format that resembles a URL, with the syntax:

       [type:]name[?arg=val[{&}...]]

       Type can be one of bitmap, gradient or xpm.

       Name  may  be  a  file  name,  or, in the case of type gradient, may be either vertical or
       horizontal.

       Arg=val 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 foreground and background.  Gradients also support the arguments  start  and
       end  (colors with which to start and end the gradient); the steps argument, to allow using
       less colors; and the dimension argument to specify the size of the  gradient.     The  xpm
       converter  understands the closeness 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 Control<Key>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 Meta<Key>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 <Btn1Down> event.

       toggle-overwrite
               Toggles overwrite mode.  In overwrite mode, any text inserted in a text field will
               replace existing text.  Bound by default to <Key>Insert.

       undo    Sets  the  enableUndo  resource of the textSrcObject.  Not enabled by default, but
               bound to Control<Key>_.

       New and modified Text widget resources include:

       justify (Class Justify)
               Sets the text justification.  Can be one of left, right, center,  or  full.   Only
               enabled  when  the  autoFill  resource  is  set,  and the resources leftColumn and
               rightColumn are correctly set.

       leftColumn (Class Column)
               Specifies the left column at which to break text.   Text  lines  started  with  an
               alphanumeric character will automatically start at this column.

       positionCallback (Class Callback)
               Allows  installation  of  a  callback to be called every time the cursor is moved,
               and/or the file changes its size.  The callback is called  with  a  pointer  to  a
               structure containing the following data:
               typedef struct {
                   int line_number;
                   int column_number;
                   XawTextPosition insert_position;
                   XawTextPosition last_position;
                   Boolean overwrite_mode;
               } XawTextPositionInfo;
               This  callback is intended to help programmers write text editors based on the Xaw
               widget set.

       resize (Class Resize)
               No longer supported, but  recognized  for  backward  compatibility  with  resource
               specifications written for the Xaw6 Text widget.

       rightColumn (Class Column)
               Specifies  the  right  column  at which to break text.  Text lines started with an
               alphanumeric character will automatically end at this column.

       scrollHorizontal (Class Scroll)
       scrollVertical (Class Scroll)
               These resources control the placement of scrollbars on the left and  bottom  edges
               of   the   Text   widget.    They   accept   the  values  XawtextScrollAlways  and
               XawtextScrollNever.  A converter is registered for this resource that will convert
               the  following  strings: always and never.  The value XawtextScrollWhenNeeded (and
               whenNeeded, recognized by the converter), is accepted for backwards  compatibility
               with  resource  specifications  written  for  the  Xaw6  Text  widget, but ignored
               (effectively treated as XawtextScrollNever).

TEXT SOURCE OBJECT

       The textSrcObject allows display of its contents to more than one window, and also  stores
       undo information. The new resources for the textSrcObject are:

       callback (Class Callback)
               Previous versions of Xaw had this resource in subclasses of the TextSource object.
               This was changed to make it possible to tell the callback the state  of  the  text
               when undo is enabled.

       enableUndo (Class Undo)
               A  boolean resource that enables or disables the undo function.  The default value
               is False.

       sourceChanged (Class Changed)
               Like the callback resource, this resource was  previously  in  subclasses  of  the
               TextSource   object.    It   is   now   in   the   textSrcObject  to  control  the
               changed/unchanged state when undo is enabled.

TEXT SINK OBJECT

       The textSinkObject  subclasses  asciiSinkObject  and  multiSinkObject  have  been  changed
       slightly  to use a new cursor shape (no longer a caret at the baseline) that indicates the
       input focus of the text widget, and allow specification of  the  cursor  color.   The  new
       resource is:

       cursorColor (Class Color)
               Sets the cursor color of the text.  This color is also used to draw selected text.

SIMPLE MENU WIDGET

       The simpleMenuWidget algorithm to lay out menu entries has been changed to enable multiple
       columns when a single column does not fit on the screen.  It was also modified  to  enable
       submenus.

SME BSB OBJECT

       A  new  resource  has been added to the smeBSBObject to allow binding submenus to it.  The
       new resource is:

       menuName (Class MenuName)
               Specifies the name of the popup widget to be popped up when the  pointer  is  over
               the  menu  entry,  or NULL.  Note that the named menu must be a child of the popup
               parent of the smeBSBObject.

AUTHORS

       The original X Consortium version of the Athena Widget Set and its documentation were  the
       work  of  many  people,  including  Chris  D.  Peterson, Ralph Swick, Mark Ackerman, Donna
       Converse, Jim Fulton, Loretta Guarino-Reid, Charles Haynes, Rich Hyde, Mary  Larson,  Joel
       McCormack,  Ron  Newman, Jeanne Rich, Terry Weissman, Mike Gancarz, Phil Karlton, Kathleen
       Langone, Ram Rao, Smokey Wallace, Al Mento, and Jean Diaz.

       The additions and modifications to Xaw which were originally made for XFree86 were written
       by Paulo César Pereira de Andrade.

SEE ALSO

       Athena Widget Set - C Language Interface