From 22b3f683453a64443ded4ce655c3cf5cd25761c0 Mon Sep 17 00:00:00 2001
From: lecoanet
Date: Wed, 27 Sep 2000 14:45:09 +0000
Subject: *** empty log message ***

---
 doc/refman.tex | 3301 ++++++++++++++++++++++++++++++++------------------------
 1 file changed, 1889 insertions(+), 1412 deletions(-)

(limited to 'doc/refman.tex')

diff --git a/doc/refman.tex b/doc/refman.tex
index bba14d3..532b643 100644
--- a/doc/refman.tex
+++ b/doc/refman.tex
@@ -1,4 +1,4 @@
-\documentclass[11pt,twoside]{report}
+\documentclass[11pt,twoside]{book}
 \usepackage{a4wide}
 \usepackage{html}
 \usepackage{makeidx}
@@ -14,6 +14,8 @@
 \newcommand{\ident}[1] {%
   {\tt\large #1}}
 
+\newenvironment{blockindent}{\begin{quotation}}{\end{quotation}\vspace{\parskip}}
+
 \newcommand{\option}[3]{%
   \label{opt:#1}
   \index{#1}
@@ -39,11 +41,11 @@
   \htmlrule[WIDTH="300" left]
   {\tt\large mapinfo #1 {\bf #2} #3}}
 
-\newcommand{\attribute}[2]{%
-  \label{attr:#1}
+\newcommand{\attrtype}[1]{%
+  \label{attrtype:#1}
   \index{#1}
   \htmlrule[WIDTH="300" left]
-  {\tt {\bf -#1} #2}
+  {\tt {\bf #1}}
   \vspace{-2\parskip}}
 
 \newcommand{\available}[1]{%
@@ -54,11 +56,13 @@
   }
 
 \newcommand{\cmdref}[1]{%
+  \index{#1}
   \hyperref[page]{\ident{#1}}{\ident{#1} (}{)}{cmd:#1}
   }
 
-\newcommand{\attrref}[1]{%
-  \hyperref[page]{\ident{-#1}}{\ident{-#1} (}{)}{attr:#1}
+\newcommand{\attribute}[3]{%
+  \ident{-#1} \hyperref[no]{\tt \bf #2}{\ident{#1}}{attrtype:#2}
+  \begin{quotation}#3\end{quotation}
   }
 
 \newcommand{\object}[1]{%
@@ -78,8 +82,6 @@
   }
 
 
-\newenvironment{blockindent}{\begin{quotation}}{\end{quotation}\vspace{\parskip}}
-
 
 \makeindex
 
@@ -88,1353 +90,1372 @@
 
 \title{Zinc reference manual\\Version 3.0}
 \author{Patrick Lecoanet}
-\date{7 Feb 2000}
+\date{21 Sep 2000}
 
 
 \begin{document}
 
 \maketitle
 
+This reference manual describes the Tk \ident{zinc} widget interface. It shows
+how to create and configure a \ident{zinc} widget, and how to use the commands
+it provides to create and manipulate items.
 
-  This reference manual describes the Tk \ident{zinc} widget interface. It shows
-  how to create and configure a \ident{zinc} widget, and how to use the commands
-  it provides to create and manipulate items.
-
-
-
-\chapter{Widget options}
-\concept{options}
-  \option{borderwidth}{borderWidth}{BorderWidth}
-  \begin{blockindent}
-    Specifies the width of the 3d border that should be displayed around the widget
-    window. This border does not overlap the active zinc display area. The area
-    requested from the geometry manager (or the window manager if applicable)
-    is the overall area, display area plus borders. This value can be given
-    in any of the forms valid for coordinates (See \cident{TkGet\_Pixels}).
-    The default value is 2.
-  \end{blockindent}
-  
-  \option{backcolor}{backColor}{BackColor}
-  \begin{blockindent}
-    This the color that will be used to fill the zinc window. It is also
-    used as a default color for some item attributes of type color. See each
-    color attribute for the actual source of the default color. Its default
-    value is white.
-  \end{blockindent}
-  
-  \option{cursor}{cursor}{Cursor}
-  \begin{blockindent}
-    Specifies the cursor to use when the pointer is in the zinc window.
-    The default value is set to preserve the cursor provided at widget
-    creation.
-  \end{blockindent}
-  
-  \option{font}{font}{Font}
-  \begin{blockindent}
-    The font specified by this option is used as a default font
-    for item attributes of type font. Its default value is
-    -adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*.
-  \end{blockindent}
-  
-  \option{forecolor}{foreColor}{ForeColor}
-  \begin{blockindent}
-    The color specified by this option is used as a default color
-    for many item attributes of type color. See each each color
-    attribute for the actual source of the default color. Its
-    default value is black.
-  \end{blockindent}
-
-  \option{fullreshape}{fullReshape}{FullReshape}
-  \begin{blockindent}
-    If this option is True, the shape applied to the zinc window will
-    propagate up the window hierarchy to the top level window. The
-    result will be a shaped top level. See also the \optref{reshape} option,
-    it controls whether a shape is applied to the zinc window or not.
-    The default is True.
-  \end{blockindent}
-
-  \option{height}{height}{Height}
-  \begin{blockindent}
-    Specifies the height of the actual zinc area (i.e, this dimension
-    does not include the border width). This value can be given in any of
-    the forms valid for coordinates (See \cident{Tk\_GetPixels}). The default is
-    100 pixels.
-  \end{blockindent}
-  
-  \option{highlightbackground}{highlightBackground}{HighlightBackground}
-  \begin{blockindent}
-    Specifies the color to display in the traversal highlight region when the
-    widget does not have the input focus. The default value is \#c3c3c3.
-  \end{blockindent}
-
-  \option{highlightcolor}{highlightColor}{HighlightColor}
-  \begin{blockindent}
-    Specifies the color to use for the traversal highlight rectangle that is
-    drawn around the widget when it has the input focus. The default value
-    is Black.
-  \end{blockindent}
-
-  \option{highlightthickness}{highlightThickness}{HighlightThickness}
-  \begin{blockindent}
-    Specifies a non-negative value indicating the width of the highlight
-    rectangle drawn around the outside of the widget when it has the input
-    focus. The value may have any of the forms acceptable to \cident{Tk\_GetPixels}.
-    If the value is zero, no focus highlight is drawn around the widget.
-    The default value is 2.
-  \end{blockindent}
-
-  \option{insertbackground}{insertBackground}{InsertBackground}
-  \begin{blockindent}
-    Specifies the color to use as background in the area covered by the
-    insertion cursor. This color will normally override either the normal
-    background for the widget (or the selection background if the insertion
-    cursor happens to fall in the selection). The default value is Black.
-  \end{blockindent}
-
-  \option{insertofftime}{insertOffTime}{InsertOffTime}
-  \begin{blockindent}
-    Specifies a non-negative integer value indicating the number of
-    milliseconds the insertion cursor should remain off in each blink cycle.
-    If this option is zero then the cursor is on all the time. The
-    default value is 300.
-  \end{blockindent}
-
-  \option{insertontime}{insertOnTime}{InsertOnTime}
-  \begin{blockindent}
-    Specifies a non-negative integer value indicating the number of
-    milliseconds the insertion cursor should remain on in each blink cycle.
-    The default value is 600.
-  \end{blockindent}
-
-  \option{insertwidth}{insertWidth}{InsertWidth}
-  \begin{blockindent}
-    Specifies a value indicating the width of the insertion cursor.
-    The value may have any of the forms acceptable to \cident{Tk\_GetPixels}.
-    The default value is 2.
-  \end{blockindent}
-
-  \option{mapdistancesymbol}{mapDistanceSymbol}{MapDistanceSymbol}
-  \begin{blockindent}
-    This option specifies the symbol to be used as a milestone
-    along map lines. This option can be given any Tk bitmap which
-    can be obtained by \cident{Tk\_GetBitmap}. The spacing between markers is
-    10 nautic miles. The default value is AtcSymbol19.
-  \end{blockindent}
-  
-  \option{maptextfont}{mapTextFont}{MapTextFont}
-  \begin{blockindent}
-    Specifies the font used to draw the texts contained in maps. The
-    default is -adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*.
-  \end{blockindent}
-  
-  \option{overlapmanager}{overlapManager}{OverlapManager}
-  \begin{blockindent}
-    This option accepts an item id. It specifies if the label overlapping
-    avoidance algorithm should be allowed to do its work on the track labels
-    and which group should be considered to look for tracks. The default
-    is to enable the avoidance algorithm in the top group (id 1).
-  \end{blockindent}
-  
-  \option{pickaperture}{pickAperture}{PickAperture}
-  \begin{blockindent}
-    Specifies the size of an area around the pointer that is used to tell
-    if the pointer is inside an item. This is useful to lessen the precision
-    required when picking graphical elements. This value must be a positive
-    integer. It defaults to 1.
-  \end{blockindent}
-
-  \option{relief}{relief}{Relief}
-  \begin{blockindent}
-    Specifies the border relief. This option can be given any legal value
-    for a relief (See \cident{Tk\_GetRelief} for a description of possible values).
-  \end{blockindent}
-
-  \option{reshape}{reshape}{Reshape}
-  \begin{blockindent}
-    Specifies if the clipping shape that can be set in the top group item
-    should clip the top group children or be used to reshape the zinc
-    window. This option can be used with the fullreshape option to reshape
-    the toplevel window as well. The default value is True.
-  \end{blockindent}
-    
-  \option{selectbackground}{selectBackground}{SelectBackground}
-  \begin{blockindent}
-    Specifies the background color to use for displaying the selection
-    in text items. The default value is \#a0a0a0.
-  \end{blockindent}
-  
-  \option{speedvectorlength}{speedVectorLength}{SpeedVectorLength}
-  \begin{blockindent}
-    Specifies the duration of track speed vectors. This option is expressed
-    using a time unit that should be chosen by the application (often minutes)
-    and kept coherent with the unit of the track attribute \attrref{speedvector}
-    (often nautic mile / minutes). The default value is 3.
-  \end{blockindent}
-
-  \option{takefocus}{takeFocus}{TakeFocus}
-  \begin{blockindent}
-    (From the Tk options manpage).
-    
-    Determines whether the window accepts the focus during keyboard traversal
-    (e.g., Tab and Shift-Tab). Before setting the focus to a window, the
-    traversal scripts consult the value of the takeFocus option. A value of 0
-    means that the window should be skipped entirely during keyboard traversal.
-    1 means that the window should receive the input focus as long as it is
-    viewable (it and all of its ancestors are mapped). An empty value for the
-    option means that the traversal scripts make the decision about whether or
-    not to focus on the window: the current algorithm is to skip the window if
-    it is disabled, if it has no key bindings, or if it is not viewable. If the
-    value has any other form, then the traversal scripts take the value, append
-    the name of the window to it (with a separator space), and evaluate the
-    resulting string as a Tcl script. The script must return 0, 1, or an empty
-    string: a 0 or 1 value specifies whether the window will receive the input
-    focus, and an empty string results in the default decision described above.
-    Note: this interpretation of the option is defined entirely by the Tcl scripts
-    that implement traversal: the widget implementations ignore the option
-    entirely, so you can change its meaning if you redefine the keyboard traversal
-    scripts. The default value is empty.
-  \end{blockindent}
-  
-  \option{tile}{tile}{Tile}
-  \begin{blockindent}
-    Specifies an image name to be used as a tile for painting the zinc window
-    background. The default value is none (the empty string).
-  \end{blockindent}
-  
-  \option{trackmanagedhistorysize}{trackManagedHistorySize}{TrackManagedHistorySize}
-  \begin{blockindent}
-    This option accepts only positive integers. It specifies the size of
-    the past position list that can be maintained by the track items. See
-    also the \optref{trackmanagehistory} option and the \attrref{visiblehistorysize}
-    track attribute. The default value is 6.
-  \end{blockindent}
-
-  
-  \option{trackmanagehistory}{trackManageHistory}{TrackManageHistory}
-  \begin{blockindent}
-    This option accepts any form valid for a boolean. It specifies if
-    the track items should maintain a list of their past positions to be
-    displayed as trailing speckles. If this option is turned off and then
-    back on, the history list is erased and the collection is resumed at
-    the next available position. The number of position collected in the
-    history list is specified by the option \optref{trackmanagedhistorysize}.
-    When this many positions are collected, the oldest is dropped to make
-    room for the new one on a first in first out basis. The number of past
-    positions actually displayed if specified for each track by the
-    attribute \attrref{visiblehistorysize}.
-    The default is to enable the history collection.
-  \end{blockindent}
-
-  
-  \option{width}{width}{Width}
-  \begin{blockindent}
-    Specifies the width of the actual zinc area (i.e, this dimension
-    does not include the border width). This value can be given in any of
-    the forms valid for coordinates (See \cident{Tk\_GetPixels}). The default is
-    100 pixels.
-  \end{blockindent}
-
-  
-\chapter{Item IDs and Tags}
-\concept{tagOrId}
-Décrire les ids, tags, field tags et part tags. Les deux derniers
-n'étant employes que par bind doit-on les décrire ici ou dans la commande ?
-Parler de current, all.
-
-
-\chapter{Coordinates and transformations}
-
-\chapter{Widget commands}
-
-  The available commands are listed in alphabetical order.
-  
-  The command set for the \ident{zinc} widget is much inspired by the \ident{canvas}
-  command set. Someone comfortable with the \ident{canvas} should not have much trouble
-  using the \ident{zinc}'s commands. Eventually, the command set will be a superset
-  of the \ident{canvas} command set.
-
-\vspace{.5cm}  
-\zinccmd{add}{?type group? ?args? ?option value? ... ?option? value?}
-  \begin{blockindent}
-    This command is used to create new items in a zinc widget. It can be called with
-    no parameters to return the list of all item types currently known by
-    the zinc widget. It can also be called with a valid item type as first
-    parameter and a group item as second parameter to create a new item of this
-    type in the given group.
-
-    After these first two parameters come some item type specific arguments.
-    Here is detailed description of these arguments by type:
-    \begin{description}
-    \item{arc type} \\
-      The arc type expects a list of four floating point numbers ``xo yo xc yc'',
-      giving the coordinates of the origin and the corner of the enclosing rectangle.
-    \item{bezier} \\
-      The bezier type expects a list of floating point numbers ``x0 y0 x1 y1 ... xn yn'',
-      giving the coordinates of the bezier segment controls. The number of values
-      should be pair (or the last value will be discarded), and there should be at
-      least two control points. The segments are built as follow: if there is at
-      least four points, they are used as the four controls of a cubic Bezier. Then,
-      if more than four points are provided , the first three are discarded and
-      the process is restarted using as first control the last control of the previous
-      segment. The process is repeated until there is less than four points left.
-      If three points are left, a segment is drawn using the second point for the
-      two off-curve controls. If two points are left, a line segment is drawn
-      between the two.
-    \item{curve} \\
-      The curve type expects a list of floating point numbers ``x0 y0 x1 y1 ... xn yn'',
-      giving the coordinates of the curve vertices. The number of values should be
-      pair (or the last value will be discarded) but the list can be empty building
-      an empty invisible curve to be used in geometric operations (see the
-      \cmdref{contour} command). As a side effect of the curve behavior a one vertex
-      curve is essentially the same as an empty curve, it only waste some more memory.
-    \item{rectangle type} \\
-      The rectangle type expects a list of four floating point numbers ``xo yo xc yc'',
-      giving the coordinates of the origin and the corner of the rectangle.
-    \item{tabular, track, waypoint} \\
-      These types expects the number of fields they will manage in the label or
-      tabular form. This number must be greater or equal to zero.
-    \item{group, icon, map, reticle, text, window} \\
-      These types doesn't expect type specific arguments.
-    \end{description}
-    
-    Following the creation args the command accept any number of
-    attributes\ -\ values pairs to configure the newly created item.
-    All the configurable item type attributes are valid in this context. The
-    command returns the item id.
-  \end{blockindent}
-
-\zinccmd{addtag}{tag searchSpec ?arg arg ...?}
-  \begin{blockindent}
-     This command add the given tag to all items matching the
-     search specification. If the tag is already present on some item,
-     nothing is done for that item. The command has no effect if no
-     item satisfy the given criteria. The command returns an empty
-     string. The search specification an the associated arguments can
-     take the following forms:
-     \begin{description}
-     \item{\tt above tagOrId ?inGroup? ?recursive?} \\
-       Selects the item just above the one given by {\tt tagOrId}. If
-       {\tt tagOrId} names more than one item, the topmost of these
-       items in the display list will be used. If {\tt tagOrId} does
-       not refer to any item then nothing happen. The inGroup and
-       recursive optional parameters can be specified to restrict the
-       search with a tag matching several items. inGroup specifies a
-       group to start with instead of the top group and recursive
-       tells if the search should descend in the item tree or not.
-
-     \item{\tt all ?inGroup? ?recursive?} \\
-       Selects all the items in the widget. The inGroup and
-       recursive can be specified to restrict the search. inGroup specifies
-       a group to start with instead of the top group and recursive tells
-       if the search should descend in the item tree or not.
-
-     \item{\tt atpriority priority ?inGroup? ?recursive?} \\
-       Selects all the items at the given priority. The inGroup and
-       recursive can be specified to restrict the search. inGroup specifies
-       a group to start with instead of the top group and recursive tells
-       if the search should descend in the item tree or not.
-
-     \item{\tt below tagOrId ?inGroup? ?recursive?} \\
-       Selects the item just below the one given by {\tt tagOrId}. If
-       {\tt tagOrId} names more than one item, the lowest of these
-       items in the display list will be used. If {\tt tagOrId} does
-       not refer to any item then nothing happen. The inGroup and
-       recursive optional parameters can be specified to restrict the
-       search with a tag matching several items. inGroup specifies a
-       group to start with instead of the top group and recursive
-       tells if the search should descend in the item tree or not.
-
-     \item{\tt closest x y ?halo? ?start?} \\
-       Selects the item closest to the point {\tt x - y}. Any item overlapping
-       the point is considered as closest and the topmost is selected. If {\tt halo}
-       is given, it defines the size of the point {\tt x - y}. {\tt halo} must
-       be a non negative integer. If {\tt start} is specified, it must be
-       an item tag or id. If it names a valid item (for a tag, the lowest
-       item with the tag is considered), the search starts with the item
-       below {\tt start} instead of the first item in the display
-       order. If {\tt start} does not name a valid item, it is ignored.
-
-     \item{\tt enclosed xo yo xc yc} \\
-       Selects all the items completely enclosed in the rectangle whose
-       origin is at {\tt xo - yo} and corner at {\tt xc - yc}. {\tt xc}
-       must be no greater than {\tt xo} and {\tt yo} must be no greater
-       than {\tt yc}. All coordinates must be integers.
-
-     \item{\tt overlapping xo yo xc yc} \\
-       Selects all the items that overlaps or are enclosed in the rectangle
-       whose origin is at {\tt xo - yo} and corner at {\tt xc - yc}. {\tt xc}
-       must be no greater than {\tt xo} and {\tt yo} must be no greater than
-       {\tt yc}. All coordinates must be integers.
-
-     \item{\tt withtag tagOrId ?inGroup? ?recursive?} \\
-       Selects all the items given by {\tt tagOrId}. The inGroup and
-       recursive can be specified to restrict the search. inGroup specifies
-       a group to start with instead of the top group and recursive tells
-       if the search should descend in the item tree or not.
-
-     \item{\tt withtype type ?inGroup? ?recursive?} \\
-       Selects all the items of type {\tt type}. The inGroup and
-       recursive can be specified to restrict the search. inGroup specifies
-       a group to start with instead of the top group and recursive tells
-       if the search should descend in the item tree or not.
-     \end{description}
-  \end{blockindent}
-
-\zinccmd{anchorxy}{tagOrId anchor}
-  \begin{blockindent}
-    Returns the (device) coordinate of an item anchor. If no item is
-    named by {\tt tagOrId} or if the item doesn't support anchors, an
-    error is raised. If more than one item match {\tt tagOrId}, the topmost
-    in display list order is used.
-  \end{blockindent}
-    
-\zinccmd{bbox}{tagOrId ?tagOrId ...?}
-  \begin{blockindent}
-    Returns a list of 4 numbers describing the (device) coordinates of the origin
-    and corner of a rectangle bounding all the items named by the {\tt tagOrId}
-    arguments. If no items are named by the {\tt tagOrId} or if the matching items
-    have an empty bounding box, an empty string is returned.
-  \end{blockindent}
-
-\zinccmd{becomes}{}
-  \begin{blockindent}
-    Not yet implemented.
-  \end{blockindent}
-
-\zinccmd{bind}{tagOrId ?sequence? ?command?}
-  \begin{blockindent}
-    This command associates {\tt command} with the item tag, item id, part tag
-    {\tt tagOrId}. If an event sequence matching {\tt sequence}
-    occurs for an item, or an item part, the command will be invoked.
-    If all parameters are specified a new binding between {\tt sequence} and
-    {\tt command} is established, overriding any existing binding for the
-    sequence. If the first character of {\tt command} is ``+'', then
-    {\tt command} augments the existing binding instead of replacing it.
-    In this case the command returns an empty string. If the {\tt command}
-    parameter is omitted, the command return the {\tt command} associated
-    with {\tt tagOrId} and {\tt sequence} or an error is raised if there
-    is no such binding. If only {\tt tagOrId} is specified the command
-    returns a list of all the sequences for which there are bindings for
-    {\tt tagOrId}.
-    
-    This widget command is similar to the \ident{bind} command except that
-    it operates on \ident{zinc} items instead of widgets. Another difference
-    with the \ident{bind} command is that only mouse and keyboard related events
-    can be specified (such as \ident{Enter}, \ident{Leave}, \ident{ButtonPress},
-    \ident{ButtonRelease}, \ident{Motion}, \ident{KeyPress}, \ident{KeyRelease}).
-    The \ident{bind} manual page is the most accurate place to look for a
-    definition of {\tt sequence} and {\tt command} and for a general understanding
-    of how the binding mecanism works.
-
-    The handling of events in the widget is done with respect to the
-    current item and when applicable the current item part (see
-    \conceptref{Item IDs and tags}{tagOrId} for a discussion of the
-    \ident{current} tag and the special tags used in bindings). \ident{Enter}
-    and \ident{Leave} events are trigerred for an item when it becomes or cease
-    to be the current item. Mouse related events are reported with respect to
-    the current item. Keyboard related events are reported with respect to the
-    focus item (which can be the current item or none).
-
-    It is possible that several bindings match a particular event sequence.
-    When this occurs, all matching bindings are triggered. The order of
-    invocation is as follow: the binding associated with the tag \ident{all}
-    is invoked first, followed by the bindings associated with the item tags
-    in order, followed by followed bindings associated with the part tags if
-    relevant, followed by the binding associated with the item id, followed
-    by the binding associated with the item part if relevant.
-    If there are more than one binding for a single tag, only the most
-    specific is triggered.
-    
-    If bindings have been registered for the widget window using the
-    \ident{bind} command, they are invoked in addition to bindings registered
-    for the items using this widget command. The bindings for items will be
-    invoked before the bindings for the window.
-  \end{blockindent}
-
-\zinccmd{cget}{option}
-  \begin{blockindent}
-    Returns the current value of the widget option given by {\tt option}.
-    {\tt option} may be any of the options described in the
-    chapter \conceptref{Widget options}{options}.
-  \end{blockindent}
-
-\zinccmd{chggroup}{tagOrId group ?adjustTransform?}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{clone}{tagOrId ?option value ...?}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{configure}{?option? ?value? ?option value ...?}
-  \begin{blockindent}
-    Query or modify the options of the widget. If no {\tt option}
-    is given, returns a list describing all the supported options (see the
-    chapter \conceptref{Widget options}{options}). If an {\tt option} is
-    specified without any {\tt value}, the command returns a list
-    describing the named option. If some
-    {\tt option - value} pairs are given, then the corresponding options
-    are changed and the command return an empty string.
-  \end{blockindent}
-
-\zinccmd{contour}{tagOrId operator coordListOrTagOrId}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{coords}{tagOrId ?add/remove? ?contour? ?index? ?coordList?}
-  \begin{blockindent}
-    This command understands the following forms:
-
-    \begin{description}
-    \item{\code{.r coords tagOrId contour}}\\
-      Get all coordinates of contour.
-      
-    \item{\code{.r coords tagOrId contour coordList}}\\
-      Set all coordinates of contour.
-      
-    \item{\code{.r coords tagOrId contour index}}\\
-      Get coordinate at index in contour.
-      
-    \item{\code{.r coords tagOrId contour index coordList}}\\
-      Set coordinate at index in contour.
-      
-    \item{\code{.r coords tagOrId remove contour index}}\\
-      Remove coordinate at index in contour.
-      
-    \item{\code{.r coords tagOrId add contour coordList}}\\
-      Add coordinates at the end of contour.
-      
-    \item{\code{.r coords tagOrId add contour index coordList}}\\
-      Add coordinates at in index in contour.
-    \end{description}
-    
-    And the slightly abbreviated forms:
-    
-    \begin{description}
-    \item{\code{.r coords tagOrId}}\\
-      Get all coordinates of contour 0.
-      
-    \item{\code{.r coords tagOrId coordList}}\\
-      Set all coordinates of contour 0.
-      
-    \item{\code{.r coords tagOrId remove index}}\\
-      Remove coordinate at index in contour 0.
-      
-    \item{\code{.r coords tagOrId add coordList}}\\
-      Add coordinates at the end of contour 0.
-    \end{description}
-  \end{blockindent}
-
-\zinccmd{currentpart}{}
-  \begin{blockindent}
-    Returns an integer specifying the item part over which the pointer is.
-    If the current item doesn't have parts or if the pointer is not over
-    an item (no item has the \ident{current} tag) the command return -1.
-  \end{blockindent}
-
-\zinccmd{cursor}{tagOrId index}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{dchars}{tagOrId first ?last?}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{dtag}{tagOrId ?tagToDelete?}
-  \begin{blockindent}
-    Delete the tag {\tt tagToDelete} from the list of tags associated
-    with each item named by {\tt tagOrId}. If an item doesn't have
-    the tag then it is leaved unaffected. If {\tt tagToDelete} is
-    omitted, {\tt tagOrId} is used instead. The command returns an
-    empty string as result.
-  \end{blockindent}
-
-\zinccmd{find}{searchCommand ?arg arg ...?}
-  \begin{blockindent}
-    This command returns the list of all items selected by {\tt searchCommand}
-    and the {\tt args}. See the \cmdref{addtag} command for an explanation of
-    {\tt searchCommand} and the various {\tt args}. The items are sorted in
-    drawing order, topmost first.
-  \end{blockindent}
-
-\zinccmd{fit}{coordList error}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{focus}{focus ?tagOrId?}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{gettags}{tagOrId}
-  \begin{blockindent}
-    This command returns the list of all the tags associated with
-    the item specified by {\tt tagOrId}. If more than one item is
-    named by {\tt tagOrId}, then the topmost in display list order
-    is used to return the result. If no item is named by {\tt tagOrId},
-    then the empty list is returned.
-  \end{blockindent}
-
-\zinccmd{group}{tagOrId}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{hasanchors}{tagOrId}
-  \begin{blockindent}
-    This command returns a boolean telling if the item specified by
-    {\tt tagOrId} supports anchors. If more than one item is named by
-    {\tt tagOrId}, then the topmost in display list order is used to
-    return the result. If no items are named by {\tt tagOrId}, an error
-    is raised.
-  \end{blockindent}
-
-\zinccmd{hasfields}{tagOrId}
-  \begin{blockindent}
-    This command returns a boolean telling if the item specified by
-    {\tt tagOrId} supports fields. If more than one item is named by
-    {\tt tagOrId}, then the topmost in display list order is used to
-    return the result. If no items are named by {\tt tagOrId}, an error
-    is raised.
-  \end{blockindent}
-
-\zinccmd{hastag}{tagOrId tag}
-  \begin{blockindent}
-    This command returns a boolean telling if the item specified by
-    {\tt tagOrId} has the specified tag. If more than one item is
-    named by {\tt tagOrId}, then the topmost in display list order
-    is used to return the result. If no items are named by {\tt tagOrId},
-    an error is raised.
-  \end{blockindent}
-
-\zinccmd{index}{tagOrId string}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{insert}{insert tagOrId before string}
-  \begin{blockindent}
-  \end{blockindent}
-
-\zinccmd{itemcget}{tagOrId ?field? attr}
-  \begin{blockindent}
-    Returns the current value of the attribute given by {\tt attr} for
-    the item named by {\tt tagOrId}. If {\tt tagOrId} name more than
-    one item, the topmost in display list order is used. If {\tt field} is
-    given, it must be a valid field index for the item or an error will be
-    reported. If a field index is given, the command will interpret {\tt attr}
-    as a field attribute (see \objectref{field}), otherwise it will be interpreted
-    as an item attribute (see the chapter \conceptref{Item types}{items}).
-    If the attribute is not available for the field or item type, an error is
-    reported.
-  \end{blockindent}
-
-\zinccmd{itemconfigure}{tagOrId ?field? ?attr? ?value? ?attr value ...?}
-  \begin{blockindent}
-    Query or modify the attributes of an item or field. If no attribute
-    is given, returns a list describing all the supported attributes. If
-    a single attribute is specified without a value, the command returns
-    a list describing the name attribute. For these two form of the command
-    the topmost item described by {\tt tagOrId} is used.
-
-    If at least one attribute - value pair is given, then the corresponding
-    attributes are changed for all the items described by {\tt tagOrId} and
-    the command return an empty string.
-    If {\tt field} is given, it must be a valid field index for the item or
-    an error will be reported. If a field index is given, the command will
-    interpret the given attributes as field attributes, otherwise they will
-    be interpreted as item attributes.
-  \end{blockindent}
-
-\zinccmd{lower}{tagOrId ?belowThis?}
-  \begin{blockindent}
-    Reorder all the items given by {\tt tagOrId} so that they will be
-    under the item given by {\tt belowThis}. If {\tt tagOrId} name more
-    than one item, their relative order will be preserved. If
-    {\tt tagOrId} doesn't name an item, an error is raised. If
-    {\tt belowThis} name more than one item, the bottom most them is used.
-    If {\tt belowThis} doesn't name an item, an error is raised. If
-    {\tt belowThis} is omitted the items are put at the bottom most
-    position. The command returns an empty string.
-    As a side affect of this command, the \attrref{priority} attribute of
-    all the reordered items is ajusted to match the priority of the
-    {\tt belowThis} item (or the priority of the bottom most item).
-  \end{blockindent}
-
-\zinccmd{monitor}{?onOff?}
-  \begin{blockindent}
-    This command controls the gathering of performance data. The data
-    gathering is inited and turned on when the command is called with
-    a boolean true parameter. The gathering is stopped if the command
-    is called with a boolean false parameter. If the command is called
-    with no parameters or with a boolean false parameter, it returns a
-    string describing the currently collected data. The other form of
-    the command returns the empty string.
-  \end{blockindent}
-
-\zinccmd{numparts}{tagOrId}
-  \begin{blockindent}
-    This command tells how many private parts are available for event bindings
-    in the item specified by {\tt tagOrId}. If more than one item is named
-    by {\tt tagOrId}, the topmost in display list order is used to return the
-    result. If no items are named by {\tt tagOrId}, an error is raised.
-  \end{blockindent}
-
-\zinccmd{postscript}{}
-  \begin{blockindent}
-  \end{blockindent}
+The \ident{zinc} widget is available for the Tcl/Tk and the Perl/Tk environment.
+A binding over Tcl/Tk is also provided for Python. This document is Tcl/Tk
+oriented but it should be easy for Perl and Python programmers to adapt.
 
-\zinccmd{raise}{tagOrId ?aboveThis?}
-  \begin{blockindent}
-    Reorder all the items given by {\tt tagOrId} so that they will be
-    above the item given by {\tt aboveThis}. If {\tt tagOrId} name more
-    than one item, their relative order will be preserved. If
-    {\tt tagOrId} doesn't name an item, an error is raised. If
-    {\tt aboveThis} name more than one item, the topmost in display
-    list order is used. If {\tt aboveThis} doesn't name an item, an error
-    is raised. If {\tt aboveThis} is omitted the items are put at the top most
-    position. The command returns an empty string.
-    As a side affect of this command, the \attrref{priority} attribute of
-    all the reordered items is ajusted to match the priority of the
-    {\tt aboveThis} item (or the priority of the top most item).
-  \end{blockindent}
-
-\zinccmd{remove}{tagOrId ?tagOrId ...?}
-  \begin{blockindent}
-    Delete all the items named by each {\tt tagOrId}. The
-    command returns an empty string.
-  \end{blockindent}
-
-\zinccmd{rotate}{tagOrId angle ?centerX centerY?}
-  \begin{blockindent}
-    Add a rotation to the items or the transform described by
-    {\tt tagOrId}. If {\tt tagOrId} describe a named transform
-    then this transform is used to do the operation. If {\tt tagOrId}
-    describe more than one item then all the items are affected by
-    the opration. If {\tt tagOrId} describe neither a named transform
-    nor an item, an error is raised. The angle is given in radians.
-    The optional parameters describe the center of rotation, which
-    defaults to the origin.
-  \end{blockindent}
-
-\zinccmd{scale}{tagOrId xFactor yFactor}
-  \begin{blockindent}
-    Add a scale factor to the items or the transform described by
-    {\tt tagOrId}. If {\tt tagOrId} describe a named transform
-    then this transform is used to do the operation. If {\tt tagOrId}
-    describe more than one item then all the items are affected by
-    the opration. If {\tt tagOrId} describe neither a named transform
-    nor an item, an error is raised. A separate factor is specified for
-    X and Y.
-  \end{blockindent}
-
-\zinccmd{select}{option ?tagOrId? ?arg?}
-  \begin{blockindent}
-  \end{blockindent}
+The \ident{zinc} command creates a new \ident{zinc} widget, the general form is
+\begin{quotation}
+  {\tt zinc pathname ?options?}
+\end{quotation}
+{\tt pathname} name the new widget and specifies where in the widget hierarchy
+it will be located. Any number of options may be specified on the command line
+or in the option database to modify the global behavior of the widget. Available
+options are described in the \ident{Widget options} chapter.
 
-\zinccmd{smooth}{coordList}
-  \begin{blockindent}
-  \end{blockindent}
+\ident{Zinc} widgets are very similar to Tk \ident{canvas}es in that they support
+structured graphics. Like the \ident{canvas}, \ident{zinc} implements items used to
+display graphical entities. Those items can be manipulated and bindings can be
+associated with them to implement interaction behaviors. But unlike the \ident{canvas},
+\ident{zinc} can structure the items in a hierarchy, has support for affine 2D
+transforms, clipping can be set for sub-trees of the item hierarchy and the item
+set is quite more powerful including field specific items for Air Traffic systems.
 
-\zinccmd{tapply}{}
-  \begin{blockindent}
-    To be implemented.
-  \end{blockindent}
 
-\zinccmd{tdelete}{tName}
-  \begin{blockindent}
-    Destroy a named transform. If the given name is not found
-    among the named transforms, an error is raised.
-  \end{blockindent}
 
-\zinccmd{transform}{?tagOrIdFrom? tagOrIdTo coordList}
+\chapter{Widget options}
+\concept{options}
+\option{borderwidth}{borderWidth}{BorderWidth}
 \begin{blockindent}
-  This command returns a list of coordinates obtained by transforming
-  the coordinates given in {\tt coordList} from the coordinate space
-  of the transform or item described by {\tt tagOrIdFrom} to the
-  coordinate space of the transform or item described by {\tt tagOrIdTo}.
-  If {\tt tagOrIdFrom} is omitted it defaults to the device coordinate
-  space. If either {\tt tagOrId} describe more than one item, the topmost
-  in display list order is used. If {\tt tagOrId} doesn't describe
-  either a transform or an item, an error is raised.
+  Specifies the width of the 3d border that should be displayed around the widget
+  window. This border does not overlap the active zinc display area. The area
+  requested from the geometry manager (or the window manager if applicable)
+  is the overall area, display area plus borders. This value can be given
+  in any of the forms valid for coordinates (See \cident{TkGet\_Pixels}).
+  The default value is 2.
 \end{blockindent}
 
-\zinccmd{translate}{tagOrId xAmount yAmount}
-  \begin{blockindent}
-    Add a translation to the items or the transform described by
-    {\tt tagOrId}. If {\tt tagOrId} describe a named transform
-    then this transform is used to do the operation. If {\tt tagOrId}
-    describe more than one item then all the items are affected by
-    the opration. If {\tt tagOrId} describe neither a named transform
-    nor an item, an error is raised. A separate value is specified for
-    X and Y.
-  \end{blockindent}
+\option{backcolor}{backColor}{BackColor}
+\begin{blockindent}
+  This the color that will be used to fill the zinc window. It is also
+  used as a default color for some item attributes of type color. See each
+  color attribute for the actual source of the default color. Its default
+  value is white.
+\end{blockindent}
 
-\zinccmd{treset}{tagOrId}
-  \begin{blockindent}
-    Set the named transform or the transform for the items described
-    by {\tt tagOrId} to identity. If {\tt tagOrId} describe neither
-    a named transform nor an item, an error is raised.
-  \end{blockindent}
+\option{cursor}{cursor}{Cursor}
+\begin{blockindent}
+  Specifies the cursor to use when the pointer is in the zinc window.
+  The default value is set to preserve the cursor provided at widget
+  creation.
+\end{blockindent}
 
-\zinccmd{trestore}{tagOrId tName}
-  \begin{blockindent}
-    Set the transform for the items described by {\tt tagOrId} to the
-    transform named by {\tt tName}. If {\tt tagOrId} doesn't describe
-    any item or if the transform named {\tt tName} doesn't exist, an
-    error is raised.
-  \end{blockindent}
+\option{font}{font}{Font}
+\begin{blockindent}
+  The font specified by this option is used as a default font
+  for item attributes of type font. Its default value is
+  -adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*.
+\end{blockindent}
 
-\zinccmd{tsave}{tagOrId tName}
-  \begin{blockindent}
-    Create (or reset) a transform associated with the name {\tt tName}
-    which has for initial value the transform associated with the item
-    {\tt tagOrId}. If {\tt tagOrId} describe more than one item, the
-    topmost in display list order is used. If {\tt tagOrId} doesn't describe
-    any item, an error is raised. If {\tt tName} already exists, the
-    transform is set to the new value. This command is the only way to
-    create a named transform.
-  \end{blockindent}
+\option{forecolor}{foreColor}{ForeColor}
+\begin{blockindent}
+  The color specified by this option is used as a default color
+  for many item attributes of type color. See each each color
+  attribute for the actual source of the default color. Its
+  default value is black.
+\end{blockindent}
 
-\zinccmd{type}{tagOrId}
-  \begin{blockindent}
-    This command returns the type of the item specified by {\tt tagOrId}.
-    If more than one item is named by {\tt tagOrId}, then the type of
-    the topmost item in display list order is returned.
-    If no items are named by {\tt tagOrId}, an error is raised.
-  \end{blockindent}
+\option{fullreshape}{fullReshape}{FullReshape}
+\begin{blockindent}
+  If this option is True, the shape applied to the zinc window will
+  propagate up the window hierarchy to the top level window. The
+  result will be a shaped top level. See also the \optref{reshape} option,
+  it controls whether a shape is applied to the zinc window or not.
+  The default is True.
+\end{blockindent}
 
-\zinccmd{verticeat}{tagOrId x y}
-  \begin{blockindent}
-  \end{blockindent}
+\option{height}{height}{Height}
+\begin{blockindent}
+  Specifies the height of the actual zinc area (i.e, this dimension
+  does not include the border width). This value can be given in any of
+  the forms valid for coordinates (See \cident{Tk\_GetPixels}). The default is
+  100 pixels.
+\end{blockindent}
 
+\option{highlightbackground}{highlightBackground}{HighlightBackground}
+\begin{blockindent}
+  Specifies the color to display in the traversal highlight region when the
+  widget does not have the input focus. The default value is \#c3c3c3.
+\end{blockindent}
 
-\chapter{Attributes description}
+\option{highlightcolor}{highlightColor}{HighlightColor}
+\begin{blockindent}
+  Specifies the color to use for the traversal highlight rectangle that is
+  drawn around the widget when it has the input focus. The default value
+  is Black.
+\end{blockindent}
 
-\attribute{alignment}{alignment}
+\option{highlightthickness}{highlightThickness}{HighlightThickness}
 \begin{blockindent}
-  Specifies the horizontal alignment of an entity.
-  The legal values are: left, right, center.
+  Specifies a non-negative value indicating the width of the highlight
+  rectangle drawn around the outside of the widget when it has the input
+  focus. The value may have any of the forms acceptable to \cident{Tk\_GetPixels}.
+  If the value is zero, no focus highlight is drawn around the widget.
+  The default value is 2.
 \end{blockindent}
 
-\attribute{anchor}{anchor}
+\option{insertbackground}{insertBackground}{InsertBackground}
 \begin{blockindent}
-  To be written
+  Specifies the color to use as background in the area covered by the
+  insertion cursor. This color will normally override either the normal
+  background for the widget (or the selection background if the insertion
+  cursor happens to fall in the selection). The default value is Black.
 \end{blockindent}
 
-\attribute{atomic}{boolean}
+\option{insertofftime}{insertOffTime}{InsertOffTime}
 \begin{blockindent}
-  To be written
+  Specifies a non-negative integer value indicating the number of
+  milliseconds the insertion cursor should remain off in each blink cycle.
+  If this option is zero then the cursor is on all the time. The
+  default value is 300.
 \end{blockindent}
 
-\attribute{autoalignment}{autoAlignSpec}
+\option{insertontime}{insertOnTime}{InsertOnTime}
 \begin{blockindent}
-  To be written
+  Specifies a non-negative integer value indicating the number of
+  milliseconds the insertion cursor should remain on in each blink cycle.
+  The default value is 600.
 \end{blockindent}
 
-\attribute{backcolor}{color}
+\option{insertwidth}{insertWidth}{InsertWidth}
 \begin{blockindent}
-  To be written
+  Specifies a value indicating the width of the insertion cursor.
+  The value may have any of the forms acceptable to \cident{Tk\_GetPixels}.
+  The default value is 2.
 \end{blockindent}
 
-\attribute{bezier}{boolean}
+\option{mapdistancesymbol}{mapDistanceSymbol}{MapDistanceSymbol}
 \begin{blockindent}
-  Select whether the points are interpreted as bezier
-  controls or simple polygonal vertices.
+  This option specifies the symbol to be used as a milestone
+  along map lines. This option can be given any Tk bitmap which
+  can be obtained by \cident{Tk\_GetBitmap}. The spacing between markers is
+  10 nautic miles. The default value is AtcSymbol19.
 \end{blockindent}
 
-\attribute{border}{edges}
+\option{maptextfont}{mapTextFont}{MapTextFont}
 \begin{blockindent}
-  To be written
+  Specifies the font used to draw the texts contained in maps. The
+  default is -adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*.
 \end{blockindent}
 
-\attribute{bordercolor}{color}
+\option{overlapmanager}{overlapManager}{OverlapManager}
 \begin{blockindent}
-  To be written
+  This option accepts an item id. It specifies if the label overlapping
+  avoidance algorithm should be allowed to do its work on the track labels
+  and which group should be considered to look for tracks. The default
+  is to enable the avoidance algorithm in the top group (id 1).
 \end{blockindent}
 
-\attribute{brightlinecolor}{color}
+\option{pickaperture}{pickAperture}{PickAperture}
 \begin{blockindent}
-  To be written
+  Specifies the size of an area around the pointer that is used to tell
+  if the pointer is inside an item. This is useful to lessen the precision
+  required when picking graphical elements. This value must be a positive
+  integer. It defaults to 1.
 \end{blockindent}
 
-\attribute{brightlinestyle}{lineStyle}
+\option{relief}{relief}{Relief}
 \begin{blockindent}
-  To be written
+  Specifies the border relief. This option can be given any legal value
+  for a relief (See \cident{Tk\_GetRelief} for a description of possible values).
 \end{blockindent}
 
-\attribute{capstyle}{}
+\option{reshape}{reshape}{Reshape}
 \begin{blockindent}
-  To be written
+  Specifies if the clipping shape that can be set in the top group item
+  should clip the top group children or be used to reshape the zinc
+  window. This option can be used with the fullreshape option to reshape
+  the toplevel window as well. The default value is True.
 \end{blockindent}
 
-\attribute{circlehistory}{boolean}
+\option{selectbackground}{selectBackground}{SelectBackground}
 \begin{blockindent}
-  To be written
+  Specifies the background color to use for displaying the selection
+  in text items. The default value is \#a0a0a0.
 \end{blockindent}
 
-\attribute{clip}{item}
+\option{speedvectorlength}{speedVectorLength}{SpeedVectorLength}
 \begin{blockindent}
-  To be written
+  Specifies the duration of track speed vectors. This option is expressed
+  using a time unit that should be chosen by the application (often minutes)
+  and kept coherent with the unit of the track attribute \ident{speedvector}
+  (often nautic mile / minutes). The default value is 3.
 \end{blockindent}
 
-\attribute{closed}{boolean}
+\option{takefocus}{takeFocus}{TakeFocus}
 \begin{blockindent}
-  To be written
+  (From the Tk options manpage).
+  
+  Determines whether the window accepts the focus during keyboard traversal
+  (e.g., Tab and Shift-Tab). Before setting the focus to a window, the
+  traversal scripts consult the value of the takeFocus option. A value of 0
+  means that the window should be skipped entirely during keyboard traversal.
+  1 means that the window should receive the input focus as long as it is
+  viewable (it and all of its ancestors are mapped). An empty value for the
+  option means that the traversal scripts make the decision about whether or
+  not to focus on the window: the current algorithm is to skip the window if
+  it is disabled, if it has no key bindings, or if it is not viewable. If the
+  value has any other form, then the traversal scripts take the value, append
+  the name of the window to it (with a separator space), and evaluate the
+  resulting string as a Tcl script. The script must return 0, 1, or an empty
+  string: a 0 or 1 value specifies whether the window will receive the input
+  focus, and an empty string results in the default decision described above.
+  Note: this interpretation of the option is defined entirely by the Tcl scripts
+  that implement traversal: the widget implementations ignore the option
+  entirely, so you can change its meaning if you redefine the keyboard traversal
+  scripts. The default value is empty.
 \end{blockindent}
 
-\attribute{color}{color}
+\option{tile}{tile}{Tile}
 \begin{blockindent}
-  To be written
+  Specifies an image name to be used as a tile for painting the zinc window
+  background. The default value is none (the empty string).
 \end{blockindent}
 
-\attribute{composerotation}{boolean}
+\option{trackmanagedhistorysize}{trackManagedHistorySize}{TrackManagedHistorySize}
 \begin{blockindent}
-  To be written
+  This option accepts only positive integers. It specifies the size of
+  the past position list that can be maintained by the track items. See
+  also the \optref{trackmanagehistory} option and the \ident{visiblehistorysize}
+  track attribute. The default value is 6.
 \end{blockindent}
 
-\attribute{composescale}{boolean}
+
+\option{trackmanagehistory}{trackManageHistory}{TrackManageHistory}
 \begin{blockindent}
-  To be written
+  This option accepts any form valid for a boolean. It specifies if
+  the track items should maintain a list of their past positions to be
+  displayed as trailing speckles. If this option is turned off and then
+  back on, the history list is erased and the collection is resumed at
+  the next available position. The number of position collected in the
+  history list is specified by the option \optref{trackmanagedhistorysize}.
+  When this many positions are collected, the oldest is dropped to make
+  room for the new one on a first in first out basis. The number of past
+  positions actually displayed if specified for each track by the
+  attribute \ident{visiblehistorysize}.
+  The default is to enable the history collection.
 \end{blockindent}
 
-\attribute{connecteditem}{item}
+
+\option{width}{width}{Width}
 \begin{blockindent}
-  To be written
+  Specifies the width of the actual zinc area (i.e, this dimension
+  does not include the border width). This value can be given in any of
+  the forms valid for coordinates (See \cident{Tk\_GetPixels}). The default is
+  100 pixels.
 \end{blockindent}
 
-\attribute{connectionanchor}{anchor}
+
+\chapter{Groups, Display List and Transformations}
+\concept{coordinates}
+la liaison groupe transformation
+l'empilage des groupes et la composition de transfo
+coordonnées du top group
+
+
+\chapter{Item IDs and Tags}
+\concept{tagOrId}
+id
+tag all
+tag current
+tags speciaux dans les items textes
+tags
+tags dans bind (syntaxe pour spécifier les parties et les champs).
+
+Décrire les ids, tags, field tags et part tags. Les deux derniers
+n'étant employes que par bind doit-on les décrire ici ou dans la commande ?
+Parler de current, all.
+
+
+\chapter{Indices}
+
+
+\chapter{Widget commands}
+
+The available commands are listed in alphabetical order.
+
+The command set for the \ident{zinc} widget is much inspired by the \ident{canvas}
+command set. Someone comfortable with the \ident{canvas} should not have much trouble
+using the \ident{zinc}'s commands. Eventually, the command set will be a superset
+of the \ident{canvas} command set.
+
+\vspace{.5cm}  
+\zinccmd{add}{?type group? ?args? ?option value? ... ?option? value?}
 \begin{blockindent}
-  To be written
+  This command is used to create new items in a zinc widget. It can be called with
+  no parameters to return the list of all item types currently known by
+  the zinc widget. It can also be called with a valid item type as first
+  parameter and a group item as second parameter to create a new item of this
+  type in the given group.
+
+  After these first two parameters come some item type specific arguments.
+  Here is detailed description of these arguments by type:
+  \begin{description}
+  \item{arc} \\
+    The arc type expects a list of four floating point numbers ``xo yo xc yc'',
+    giving the coordinates of the origin and the corner of the enclosing rectangle.
+  \item{bezier} \\
+    The bezier type expects a list of floating point numbers ``x0 y0 x1 y1 ... xn yn'',
+    giving the coordinates of the bezier segment controls. The number of values
+    should be pair (or the last value will be discarded), and there should be at
+    least two control points. The segments are built as follow: if there is at
+    least four points, they are used as the four controls of a cubic Bezier. Then,
+    if more than four points are provided , the first three are discarded and
+    the process is restarted using as first control the last control of the previous
+    segment. The process is repeated until there is less than four points left.
+    If three points are left, a segment is drawn using the second point for the
+    two off-curve controls. If two points are left, a line segment is drawn
+    between the two.
+  \item{curve} \\
+    The curve type expects a list of floating point numbers ``x0 y0 x1 y1 ... xn yn'',
+    giving the coordinates of the curve vertices. The number of values should be
+    pair (or the last value will be discarded) but the list can be empty to build
+    an empty invisible curve. This curve can be defined later with the \cmdref{contour}
+    or \cmdref{coords} commands. As a side effect of the curve behavior, a one vertex
+    curve is essentially the same as an empty curve, it only waste some more memory.
+  \item{rectangle} \\
+    The rectangle type expects a list of four floating point numbers ``xo yo xc yc'',
+    giving the coordinates of the origin and the corner of the rectangle.
+  \item{tabular, track, waypoint} \\
+    These types expects the number of fields they will manage in the label or
+    tabular form. This number must be greater or equal to zero.
+  \item{group, icon, map, reticle, text, window} \\
+    These types doesn't expect type specific arguments.
+  \end{description}
+  
+  Following the creation args the command accept any number of
+  attributes\ -\ values pairs to configure the newly created item.
+  All the configurable item type attributes are valid in this context. The
+  command returns the item id.
 \end{blockindent}
 
-\attribute{connectioncolor}{color}
+\zinccmd{addtag}{tag searchSpec ?arg arg ...?}
 \begin{blockindent}
-  To be written
+  This command add the given tag to all items matching the
+  search specification. If the tag is already present on some item,
+  nothing is done for that item. The command has no effect if no
+  item satisfy the given criteria. The command returns an empty
+  string. The search specification an the associated arguments can
+  take the following forms:
+  \begin{description}
+  \item{\tt above tagOrId ?inGroup? ?recursive?} \\
+    Selects the item just above the one given by {\tt tagOrId}. If
+    {\tt tagOrId} names more than one item, the topmost of these
+    items in the display list will be used. If {\tt tagOrId} does
+    not refer to any item then nothing happen. The inGroup and
+    recursive optional parameters can be specified to restrict the
+    search with a tag matching several items. inGroup specifies a
+    group to start with instead of the top group and recursive
+    tells if the search should descend in the item tree or not.
+
+  \item{\tt all ?inGroup? ?recursive?} \\
+    Selects all the items in the widget. The inGroup and
+    recursive can be specified to restrict the search. inGroup specifies
+    a group to start with instead of the top group and recursive tells
+    if the search should descend in the item tree or not.
+
+  \item{\tt atpriority priority ?inGroup? ?recursive?} \\
+    Selects all the items at the given priority. The inGroup and
+    recursive can be specified to restrict the search. inGroup specifies
+    a group to start with instead of the top group and recursive tells
+    if the search should descend in the item tree or not.
+
+  \item{\tt below tagOrId ?inGroup? ?recursive?} \\
+    Selects the item just below the one given by {\tt tagOrId}. If
+    {\tt tagOrId} names more than one item, the lowest of these
+    items in the display list will be used. If {\tt tagOrId} does
+    not refer to any item then nothing happen. The inGroup and
+    recursive optional parameters can be specified to restrict the
+    search with a tag matching several items. inGroup specifies a
+    group to start with instead of the top group and recursive
+    tells if the search should descend in the item tree or not.
+
+  \item{\tt closest x y ?halo? ?start?} \\
+    Selects the item closest to the point {\tt x - y}. Any item overlapping
+    the point is considered as closest and the topmost is selected. If {\tt halo}
+    is given, it defines the size of the point {\tt x - y}. {\tt halo} must
+    be a non negative integer. If {\tt start} is specified, it must be
+    an item tag or id. If it names a valid item (for a tag, the lowest
+    item with the tag is considered), the search starts with the item
+    below {\tt start} instead of the first item in the display
+    order. If {\tt start} does not name a valid item, it is ignored.
+
+  \item{\tt enclosed xo yo xc yc} \\
+    Selects all the items completely enclosed in the rectangle whose
+    origin is at {\tt xo - yo} and corner at {\tt xc - yc}. {\tt xc}
+    must be no greater than {\tt xo} and {\tt yo} must be no greater
+    than {\tt yc}. All coordinates must be integers.
+
+  \item{\tt overlapping xo yo xc yc} \\
+    Selects all the items that overlaps or are enclosed in the rectangle
+    whose origin is at {\tt xo - yo} and corner at {\tt xc - yc}. {\tt xc}
+    must be no greater than {\tt xo} and {\tt yo} must be no greater than
+    {\tt yc}. All coordinates must be integers.
+
+  \item{\tt withtag tagOrId ?inGroup? ?recursive?} \\
+    Selects all the items given by {\tt tagOrId}. The inGroup and
+    recursive can be specified to restrict the search. inGroup specifies
+    a group to start with instead of the top group and recursive tells
+    if the search should descend in the item tree or not.
+
+  \item{\tt withtype type ?inGroup? ?recursive?} \\
+    Selects all the items of type {\tt type}. The inGroup and
+    recursive can be specified to restrict the search. inGroup specifies
+    a group to start with instead of the top group and recursive tells
+    if the search should descend in the item tree or not.
+  \end{description}
 \end{blockindent}
 
-\attribute{connectionsensitive}{boolean}
+\zinccmd{anchorxy}{tagOrId anchor}
 \begin{blockindent}
-  To be written
+  Returns the (device) coordinate of an item anchor. If no item is
+  named by {\tt tagOrId} or if the item doesn't support anchors, an
+  error is raised. If more than one item match {\tt tagOrId}, the topmost
+  in display list order is used.
 \end{blockindent}
 
-\attribute{connectionstyle}{lineStyle}
+\zinccmd{bbox}{tagOrId ?tagOrId ...?}
 \begin{blockindent}
-  To be written
+  Returns a list of 4 numbers describing the (device) coordinates of the origin
+  and corner of a rectangle bounding all the items named by the {\tt tagOrId}
+  arguments. If no items are named by the {\tt tagOrId} or if the matching items
+  have an empty bounding box, an empty string is returned.
 \end{blockindent}
 
-\attribute{connectionwidth}{dimension}
+\zinccmd{becomes}{}
 \begin{blockindent}
-  To be written
+  Not yet implemented.
 \end{blockindent}
 
-\attribute{extent}{integer}
+\zinccmd{bind}{tagOrId ?sequence? ?command?}
 \begin{blockindent}
-  To be written
+  This command associates {\tt command} with the item tag, item id, part tag
+  {\tt tagOrId}. If an event sequence matching {\tt sequence}
+  occurs for an item, or an item part, the command will be invoked.
+  If all parameters are specified a new binding between {\tt sequence} and
+  {\tt command} is established, overriding any existing binding for the
+  sequence. If the first character of {\tt command} is ``+'', then
+  {\tt command} augments the existing binding instead of replacing it.
+  In this case the command returns an empty string. If the {\tt command}
+  parameter is omitted, the command return the {\tt command} associated
+  with {\tt tagOrId} and {\tt sequence} or an error is raised if there
+  is no such binding. If only {\tt tagOrId} is specified the command
+  returns a list of all the sequences for which there are bindings for
+  {\tt tagOrId}.
+  
+  This widget command is similar to the \ident{bind} command except that
+  it operates on \ident{zinc} items instead of widgets. Another difference
+  with the \ident{bind} command is that only mouse and keyboard related events
+  can be specified (such as \ident{Enter}, \ident{Leave}, \ident{ButtonPress},
+  \ident{ButtonRelease}, \ident{Motion}, \ident{KeyPress}, \ident{KeyRelease}).
+  The \ident{bind} manual page is the most accurate place to look for a
+  definition of {\tt sequence} and {\tt command} and for a general understanding
+  of how the binding mecanism works.
+
+  The handling of events in the widget is done with respect to the
+  current item and when applicable the current item part (see
+  \conceptref{Item IDs and tags}{tagOrId} for a discussion of the
+  \ident{current} tag and the special tags used in bindings). \ident{Enter}
+  and \ident{Leave} events are trigerred for an item when it becomes or cease
+  to be the current item. Mouse related events are reported with respect to
+  the current item. Keyboard related events are reported with respect to the
+  focus item (which can be the current item or none).
+
+  It is possible that several bindings match a particular event sequence.
+  When this occurs, all matching bindings are triggered. The order of
+  invocation is as follow: the binding associated with the tag \ident{all}
+  is invoked first, followed by the bindings associated with the item tags
+  in order, followed by followed bindings associated with the part tags if
+  relevant, followed by the binding associated with the item id, followed
+  by the binding associated with the item part if relevant.
+  If there are more than one binding for a single tag, only the most
+  specific is triggered.
+  
+  If bindings have been registered for the widget window using the
+  \ident{bind} command, they are invoked in addition to bindings registered
+  for the items using this widget command. The bindings for items will be
+  invoked before the bindings for the window.
 \end{blockindent}
 
-\attribute{fillcolor}{color}
+\zinccmd{cget}{option}
 \begin{blockindent}
-  To be written
+  Returns the current value of the widget option given by {\tt option}.
+  {\tt option} may be any of the options described in the
+  chapter \conceptref{Widget options}{options}.
 \end{blockindent}
 
-\attribute{filled}{boolean}
+\zinccmd{chggroup}{tagOrId group ?adjustTransform?}
 \begin{blockindent}
-  To be written
+  Move the item described by {\tt tagOrId} in the group described
+  by {\tt group}. If {\tt tagOrId} or {\tt group} describe more
+  than one item, the first in display list order will be used.
+  If {\tt adjustTransform} is specified, it will be interpreted
+  as a boolean. A true value will lead to an adjustment of the
+  item transform in order to maintain an identical display
+  rendering of the item regardless of its new position in the
+  display hierarchy. If {\tt adjustTransform} is omitted, it
+  defaults to false.
 \end{blockindent}
 
-\attribute{filledhistory}{boolean}
+\zinccmd{clone}{tagOrId ?option value ...?}
 \begin{blockindent}
-  To be written
+  Create an exact copy of all the items described by {\tt tagOrId}.
+  The copy goes recursively for group items (deep copy). After copying
+  the pairs {\tt option value} are used, if any, to reconfigure
+  the items. Any option that as no meaning in the context of some item
+  is ignored. The items down the hierarchy of group items are not
+  concerned by the configuration phase. The command returns the list
+  of cloned items id in creation order (display list order of the models).
+  No item id will be returned for items cloned in the hierarchy of
+  cloned groups.
+
 \end{blockindent}
 
-\attribute{filledmarker}{boolean}
+\zinccmd{configure}{?option? ?value? ?option value ...?}
 \begin{blockindent}
-  To be written
+  Query or modify the options of the widget. If no {\tt option}
+  is given, returns a list describing all the supported options (see the
+  chapter \conceptref{Widget options}{options}). If an {\tt option} is
+  specified without any {\tt value}, the command returns a list
+  describing the named option. If some
+  {\tt option - value} pairs are given, then the corresponding options
+  are changed and the command return an empty string.
 \end{blockindent}
 
-\attribute{fillpattern}{bitmapName}
+\zinccmd{contour}{tagOrId operator coordListOrTagOrId}
 \begin{blockindent}
-  To be written
+  Manipulate contours on items that can handle multiples geometric
+  contours. Currently only curve items can do this.
+
+  {\tt tagOrId} specifies the item whose contours will be modified.
+  If {\tt tagOrId} describes more than one item, the first in
+  display list order will be used.
+  
+  {\tt coordListOrTagOrId} specifies a list of coordinates or an
+  item describing a contour. If a list is specified it should
+  contain a pair number of floating point values specifying the
+  contour vertices X and Y in order. If a tag or an id is specified,
+  it is should be from one of these classes: arc, bezier curve,
+  icon, rectangle, tabular, text, window. The external shape of
+  the item will be used as the contour. If {\tt coordListOrTagOrId}
+  describes more than one item, the first in display list order
+  will be used.
+
+  {\tt operator} specifies the operation that will be carried. This
+  can be:
+  
+  \begin{description}
+  \item{diff} Substract the given contour from the item contours
+  \item{inter} Intersect the given contour and the item contours,
+    replacing the original contours by the intersection.
+  \item{union} Compute the union of the given contour and the
+    item's contours, replacing the original contours by the union.
+  \item{xor} Compute the exclusive or of the given contour and the
+    item's contours, replacing the original contours by the result.
+  \end{description}
+
+  An error in generated if the items are not of a correct type or if
+  the coordinate list is malformed.
+  
+  \emph{NOTE: This command is available only when GPC support has been
+    built in Zinc.}
 \end{blockindent}
 
-\attribute{firstradius}{dimension}
+\zinccmd{coords}{tagOrId ?add/remove? ?contour? ?index? ?coordList?}
 \begin{blockindent}
-  To be written
+  Query or changes the coordinates of the item described by {\tt tagOrId}.
+  If {\tt tagOrId} describes more than one item, the first in display
+  list order is used. The optional {\tt contour} gives the contour, if
+  available, that should be operated. The default contour is 0. The
+  optional {\tt index} gives the vertex index that should be operated
+  in the given contour. The optional {\tt coordList} is a list of one or
+  more vertices described as X, Y floating point values that will be used
+  to replace or add coordinates to the current contour.
+
+  Almost all items can be manipulated by this command, the map item is
+  the only current exception. The effect of the command can be quite
+  different depending on the item. For icons, texts, windows, tabulars,
+  the coordinates of the anchor can be modified or read. For groups, the
+  coordinates of the origin of the transformation can be set or read. For
+  tracks and waypoints, the coordinates of the current position can be set
+  or read. For tracks setting the current position this way will make the
+  previous position shift into the history. For reticles, the coordinates
+  of the center can be set or read. For arcs and rectangles, the coordinates
+  of the origin and corner can be set or read. For beziers, the coordinates
+  of the vertices can be set or read and it is possible to remove or add
+  vertices to an existing item. For curves, the capabilities of bezier are
+  extended to support multiple contours. For all items that do not support
+  multiple contours (currently all except curves) the {\tt contour} parameter
+  should be omitted or specified as zero.
+  
+  The optional parameters must be combined to produce a given behavior.
+  Here are the various form recognized by the command:
+
+  \begin{description}
+  \item{\code{.r coords tagOrId contour}}\\
+    Get all coordinates of contour. All items can answer if contour
+    is zero. Curves can handle other contours.
+    
+  \item{\code{.r coords tagOrId contour coordList}}\\
+    Set all coordinates of contour. All items can do it if contour
+    is zero.  Curves can handle other contours.
+    For groups, icons, texts, windows, tabulars, reticles, tracks,
+    waypoints, only the first vertex will be used. For rectangles and
+    arcs, only the first two vertices will be used. Beziers and curves can
+    handle any number of vertices.
+    
+  \item{\code{.r coords tagOrId contour index}}\\
+    Get coordinate at index in contour. All items can answer if contour
+    is zero. Curves can handle other contours.  For groups, icons, texts,
+    windows, tabulars, reticles, tracks, waypoints, index mst be zero.
+    For rectangles and arcs, index must zero or one.
+    
+  \item{\code{.r coords tagOrId contour index coordList}}\\
+    Set coordinate at index in contour. All items can do it if contour
+    is zero.  Curves can handle other contours. For groups, icons, texts,
+    windows, tabulars, reticles, tracks, waypoints, index must be zero.
+    For rectangles and arcs, index must zero or one.
+    
+  \item{\code{.r coords tagOrId remove contour index}}\\
+    Remove coordinate at index in contour. Can only be handled by beziers
+    and curves. Only curves can handle contours other than zero.
+    
+  \item{\code{.r coords tagOrId add contour coordList}}\\
+    Add coordinates at the end of contour. Can only be handled by beziers
+    and curves. Only curves can handle contours other than zero.
+    
+  \item{\code{.r coords tagOrId add contour index coordList}}\\
+    Add coordinates at index in contour. Can only be handled by beziers
+    and curves. Only curves can handle contours other than zero.
+  \end{description}
+  
+  And the slightly abbreviated forms:
+  
+  \begin{description}
+  \item{\code{.r coords tagOrId}}\\
+    Get all coordinates of contour 0. See first form.
+    
+  \item{\code{.r coords tagOrId coordList}}\\
+    Set all coordinates of contour 0. See second form.
+    
+  \item{\code{.r coords tagOrId remove index}}\\
+    Remove coordinate at index in contour 0. See fifth form.
+    
+  \item{\code{.r coords tagOrId add coordList}}\\
+    Add coordinates at the end of contour 0. See sixth form.
+  \end{description}
 \end{blockindent}
 
-\attribute{font}{fontName}
+\zinccmd{currentpart}{}
 \begin{blockindent}
-  To be written
+  Returns a string specifying the item part over which the pointer is.
+  If the current item doesn't have parts or if the pointer is not over
+  an item (no item has the \ident{current} tag) the command return -1.
+  The string can be either an integer describing a field index or the
+  name of a special part of the item. Consult each item description to
+  find out which part names can be reported.
 \end{blockindent}
 
-\attribute{frozenlabel}{boolean}
+\zinccmd{cursor}{tagOrId index}
 \begin{blockindent}
-  To be written
+  Set the position of the insertion cursor for the items described by
+  {\tt tagOrId} to be just before the character at {\tt index}. If
+  some of the items described by {\tt tagOrId} don't support an
+  insertion cursor, the command doesn't change them. The possible
+  values for {\tt index} are described in the \cmdref{index} command.
+  The command returns an empty string.
 \end{blockindent}
 
-\attribute{gradient}{}
+\zinccmd{dchars}{tagOrId first ?last?}
 \begin{blockindent}
-  To be written
+  Delete the character range defined by the parameters {\tt first} and
+  {\tt last} inclusive in all the items described by {\tt tagOrId}.
+  Items that doesn't support text indexing are skipped by the command.
+  If {\tt last} is not specified, the command deletes the character
+  located at {\tt first}. The command returns an empty string.
 \end{blockindent}
 
-\attribute{image}{imageName}
+\zinccmd{dtag}{tagOrId ?tagToDelete?}
 \begin{blockindent}
-  To be written
+  Delete the tag {\tt tagToDelete} from the list of tags associated
+  with each item named by {\tt tagOrId}. If an item doesn't have
+  the tag then it is leaved unaffected. If {\tt tagToDelete} is
+  omitted, {\tt tagOrId} is used instead. The command returns an
+  empty string as result.
 \end{blockindent}
 
-\attribute{joinstyle}{}
+\zinccmd{find}{searchCommand ?arg arg ...?}
 \begin{blockindent}
-  To be written
+  This command returns the list of all items selected by {\tt searchCommand}
+  and the {\tt args}. See the \cmdref{addtag} command for an explanation of
+  {\tt searchCommand} and the various {\tt args}. The items are sorted in
+  drawing order, topmost first.
 \end{blockindent}
 
-\attribute{height}{}
+\zinccmd{fit}{coordList error}
 \begin{blockindent}
-  To be written
+  This command fits a sequence of Bezier segments on the curve described
+  by the vertices in {\tt coordList} and returns a list of vertices describing
+  the control points for the generated segments. All the points on the fitted
+  segments will be within {\tt error} distance from the given curve.
+  {\tt coordList} should contain a pair number of coordinates in x, y order.
+  The returned control point list consists of four control points per Bezier
+  segment with two consecutive segments sharing their last/first control point.
+  The control points are in x, y order and can be used to create or change a
+  Bezier item.
 \end{blockindent}
 
-\attribute{labelanchor}{anchor}
+\zinccmd{focus}{focus ?tagOrId?}
 \begin{blockindent}
-  To be written
+  Set the keyboard focus to the item describe by {\tt tagOrId}. If {\tt tagOrId}
+  describe more than one item, the first item in display list order that supports
+  an insertion cursor is used. If no such item exists, the command has no effect.
+  If {\tt tagOrId} is an empty string the focus is reset and no item has the focus.
+  If {\tt tagOrId} is not specified, the command returns the id of the item
+  with the focus or an empty string if no item has the focus.
+
+  When the focus has been set to an item, the item will display an insertion cursor
+  and the keyboard events will be directed to that item. The widget receive keyboards
+  events only if it has the window focus. It may be necessary to use the Tk focus
+  command to force the focus to the widget window.
 \end{blockindent}
 
-\attribute{labelangle}{number}
+\zinccmd{gettags}{tagOrId}
 \begin{blockindent}
-  To be written
+  This command returns the list of all the tags associated with
+  the item specified by {\tt tagOrId}. If more than one item is
+  named by {\tt tagOrId}, then the topmost in display list order
+  is used to return the result. If no item is named by {\tt tagOrId},
+  then the empty list is returned.
 \end{blockindent}
 
-\attribute{labeldistance}{dimension}
+\zinccmd{group}{tagOrId}
 \begin{blockindent}
-  To be written
+  Returns the group containing the item described by {\tt tagOrId}.
+  If more than one item is named by {\tt tagOrId}, then the topmost
+  in display list order is used to return the result.
 \end{blockindent}
 
-\attribute{labeldx}{number}
+\zinccmd{hasanchors}{tagOrId}
 \begin{blockindent}
-  To be written
+  This command returns a boolean telling if the item specified by
+  {\tt tagOrId} supports anchors. If more than one item is named by
+  {\tt tagOrId}, then the topmost in display list order is used to
+  return the result. If no items are named by {\tt tagOrId}, an error
+  is raised.
 \end{blockindent}
 
-\attribute{labeldy}{number}
+\zinccmd{hasfields}{tagOrId}
 \begin{blockindent}
-  To be written
+  This command returns a boolean telling if the item specified by
+  {\tt tagOrId} supports fields. If more than one item is named by
+  {\tt tagOrId}, then the topmost in display list order is used to
+  return the result. If no items are named by {\tt tagOrId}, an error
+  is raised.
 \end{blockindent}
 
-\attribute{labelformat}{labelFormat}
+\zinccmd{hastag}{tagOrId tag}
 \begin{blockindent}
-  The new format is as follow. Parameters between [] are
-  optional and take default values when omitted. The spaces can appear
-  between blocks but not inside.\\
- 
-        \verb+[WidthxHeight] [field0Spec] [field1Spec] [fieldnSpec]+\\
- 
-  Width and Height set the size of the clipping box surrounding
-  the label. If it is not specified, there will be no clipping.
-  It it is specified alone it is the size of the only displayed
-  field (0).\\
- 
-  fieldSpec is:
-        \verb+sChar fieldWidth sChar fieldHeight [pChar fieldX pChar fieldY]+.\\
- 
-  Each field description refers to the field of same index in the field
-  array.
-  If \verb+sChar+ is \verb+'x'+, the dimension is in pixel. If \verb+sChar+ is
-  \verb+'f'+, the dimension is in percentage of the mean width/height of a
-  character (in the field font). If \verb+sChar+ is \verb+'i'+, the dimension
-  is in percentage of the size of the image in the field. If \verb+sChar+ is
-  \verb+'a'+, the dimension is automatically adjusted to match the field's
-  content plus the given value in pixels. If \verb+sChar+ is \verb+'l'+,
-  the dimension is automatically adjusted to match the global size of the
-  label (not counting fields with \verb+'l'+ size specs). The positional
-  parameter is not used with this size specification (always 0) and it is not
-  possible to reference the field in another field spec. \\
+  This command returns a boolean telling if the item specified by
+  {\tt tagOrId} has the specified tag. If more than one item is
+  named by {\tt tagOrId}, then the topmost in display list order
+  is used to return the result. If no items are named by {\tt tagOrId},
+  an error is raised.
+\end{blockindent}
+
+\zinccmd{index}{tagOrId index}
+\begin{blockindent}
+  This command returns a number which is the numerical index in the item
+  described by {\tt tagOrId} corresponding to {\tt index}. {\tt index}
+  should be a textual description of a text index that can have the
+  following forms:
+  \begin{description}
+  \item{number} This should be an integer giving the character position
+    within the text of the item. The indices are zero based. A number
+    less than zero is treated as zero and a number greater than the
+    text length is rounded to the text length. A number equal to the
+    text length refers to the position past the last character in the
+    text.
+  \item{end} Refers to the position past the last character in the
+    text. This is the same as specifying a number equal to the text
+    length.
+  \item{insert} Refers to the character just before the insertion
+    cursor in the item.
+  \item{sel.first} Refers to the first character of the selection in
+    the item. If the selection is not in the item, this form returns
+    an error.
+  \item{sel.last}Refers to the last character of the selection in
+    the item. If the selection is not in the item, this form returns
+    an error.
+  \item{@x,y} Refers to the character at the point given by x and y,
+    x and y are interpreted as device coordinates. If the point lies
+    outside of the area corvered by the item, they refer to the first
+    or last character in the line that is closest to the point.
+  \end{description}
   
-  If \verb+pChar+ is \verb-'+'- the position is in pixel (possibly negative).
-  If it is \verb+'<'+ the position is the index of the field at the left/top
-  of which the current field should be  attached. If it is \verb+'>'+ the
-  position is the index of the field at the right/bottom of which the current
-  field should be attached. If \verb+pChar+ is \verb+'^'+ the position is
-  the index of the field used to align the left/top border (left on left or
-  top on top). If \verb+pChar+ is \verb+'$'+ the %$ position is the index
-  of the field used to align the right/bottom border (right on right or
-  bottom on bottom).\\
-  
-  The positional parameters can be omitted if there is only one field.  
+  The command return a value between 0 and the number of character in
+  the item. If {\tt tagOrId} describe more than one item the index is
+  processed in the first item supporting text indexing in display list
+  order.
 \end{blockindent}
 
-\attribute{leaderanchors}{leaderanchors}
+\zinccmd{insert}{insert tagOrId before string}
 \begin{blockindent}
-  Describe where to attach the label leader on the label. These are not
-  to be confused with the regular rectangular anchors.
-  
-  The format is: \verb+lChar leftLeaderAnchor [lChar rightLeaderAnchor]+
-  
-  If \verb+lChar+ is a \verb+'|'+, \verb+leftLeaderAnchor+ and \verb+rightLeaderAnchor+
-  are the indices of the fields that serve to anchor the label's leader. More
-  specifically the bottom left corner of the left field and the bottom right corner of
-  the right field are used as the anchors.
-  If \verb+lChar+ is \verb+'%'+, \verb+leftLeaderAnchor+ and \verb+rightLeaderAnchor+
-  should be specified as \verb+valxval+, \verb+val+ being a percentage (max 100) of
-  the width/height of the label bounding box. If rightLeaderAnchor is not specified
-  it defaults to field 0. If rightLeaderField is not specified it defaults to
-  leftLeaderAnchor. If neither of them are specified, the center of the label
-  is used as an anchor.
+  This command inserts {\tt string} in each item described by {\tt tagOrId}
+  just before the text position described by {\tt before}. The possible
+  values for {\tt before} are described in the \cmdref{index} command.
+  Items that doesn't support text indexing are skipped by the command.
+  The command returns an empty string.
 \end{blockindent}
 
-\attribute{leadercolor}{color}
+\zinccmd{itemcget}{tagOrId ?field? attr}
 \begin{blockindent}
-  To be written
+  Returns the current value of the attribute given by {\tt attr} for
+  the item named by {\tt tagOrId}. If {\tt tagOrId} name more than
+  one item, the topmost in display list order is used. If {\tt field} is
+  given, it must be a valid field index for the item or an error will be
+  reported. If a field index is given, the command will interpret {\tt attr}
+  as a field attribute (see \objectref{field}), otherwise it will be interpreted
+  as an item attribute (see the chapter \conceptref{Item types}{items}).
+  If the attribute is not available for the field or item type, an error is
+  reported.
 \end{blockindent}
 
-\attribute{leaderfirstend}{}
+\zinccmd{itemconfigure}{tagOrId ?field? ?attr? ?value? ?attr value ...?}
 \begin{blockindent}
-  To be written
+  Query or modify the attributes of an item or field. If no attribute
+  is given, returns a list describing all the supported attributes. If
+  a single attribute is specified without a value, the command returns
+  a list describing the name attribute. For these two form of the command
+  the topmost item described by {\tt tagOrId} is used.
+
+  If at least one attribute - value pair is given, then the corresponding
+  attributes are changed for all the items described by {\tt tagOrId} and
+  the command return an empty string.
+  If {\tt field} is given, it must be a valid field index for the item or
+  an error will be reported. If a field index is given, the command will
+  interpret the given attributes as field attributes, otherwise they will
+  be interpreted as item attributes.
 \end{blockindent}
 
-\attribute{leaderlastend}{}
+\zinccmd{lower}{tagOrId ?belowThis?}
 \begin{blockindent}
-  To be written
+  Reorder all the items given by {\tt tagOrId} so that they will be
+  under the item given by {\tt belowThis}. If {\tt tagOrId} name more
+  than one item, their relative order will be preserved. If
+  {\tt tagOrId} doesn't name an item, an error is raised. If
+  {\tt belowThis} name more than one item, the bottom most them is used.
+  If {\tt belowThis} doesn't name an item, an error is raised. If
+  {\tt belowThis} is omitted the items are put at the bottom most
+  position. The command returns an empty string.
+  As a side affect of this command, the \ident{priority} attribute of
+  all the reordered items is ajusted to match the priority of the
+  {\tt belowThis} item (or the priority of the bottom most item).
 \end{blockindent}
 
-\attribute{leadersensitive}{boolean}
+\zinccmd{monitor}{?onOff?}
 \begin{blockindent}
-  To be written
+  This command controls the gathering of performance data. The data
+  gathering is inited and turned on when the command is called with
+  a boolean true parameter. The gathering is stopped if the command
+  is called with a boolean false parameter. If the command is called
+  with no parameters or with a boolean false parameter, it returns a
+  string describing the currently collected data. The other form of
+  the command returns the empty string.
 \end{blockindent}
 
-\attribute{leadershape}{lineShape}
+\zinccmd{numparts}{tagOrId}
 \begin{blockindent}
-  To be written
+  This command tells how many private parts are available for event bindings
+  in the item specified by {\tt tagOrId}. If more than one item is named
+  by {\tt tagOrId}, the topmost in display list order is used to return the
+  result. If no items are named by {\tt tagOrId}, an error is raised.
 \end{blockindent}
 
-\attribute{leaderstyle}{lineStyle}
+\zinccmd{postscript}{}
 \begin{blockindent}
-  To be written
+  Not yet implemented.
 \end{blockindent}
 
-\attribute{leaderwidth}{dimension}
+\zinccmd{raise}{tagOrId ?aboveThis?}
 \begin{blockindent}
-  To be written
+  Reorder all the items given by {\tt tagOrId} so that they will be
+  above the item given by {\tt aboveThis}. If {\tt tagOrId} name more
+  than one item, their relative order will be preserved. If
+  {\tt tagOrId} doesn't name an item, an error is raised. If
+  {\tt aboveThis} name more than one item, the topmost in display
+  list order is used. If {\tt aboveThis} doesn't name an item, an error
+  is raised. If {\tt aboveThis} is omitted the items are put at the top most
+  position. The command returns an empty string.
+  As a side affect of this command, the \ident{priority} attribute of
+  all the reordered items is ajusted to match the priority of the
+  {\tt aboveThis} item (or the priority of the top most item).
 \end{blockindent}
 
-\attribute{linecolor}{color}
+\zinccmd{remove}{tagOrId ?tagOrId ...?}
 \begin{blockindent}
-  To be written
+  Delete all the items named by each {\tt tagOrId}. The
+  command returns an empty string.
 \end{blockindent}
 
-\attribute{firstend}{lineEnd}
+\zinccmd{rotate}{tagOrId angle ?centerX centerY?}
 \begin{blockindent}
-  Describe the shape of the arrow at the beginning of a path.
-  This is a list of three numbers describing the arrow shape in order:
-  distance along the axis from neck to tip of the arrowhead,
-  distance from trailing points to tip and distance from outside
-  edge of the line to the trailing points (see canvas).
-  If an empty list is given, there is no arrow.
+  Add a rotation to the items or the transform described by
+  {\tt tagOrId}. If {\tt tagOrId} describe a named transform
+  then this transform is used to do the operation. If {\tt tagOrId}
+  describe more than one item then all the items are affected by
+  the opration. If {\tt tagOrId} describe neither a named transform
+  nor an item, an error is raised. The angle is given in radians.
+  The optional parameters describe the center of rotation, which
+  defaults to the origin.
 \end{blockindent}
 
-\attribute{lastend}{lineEnd}
+\zinccmd{scale}{tagOrId xFactor yFactor}
 \begin{blockindent}
-  Describe the shape of the arrow at the end of a path. If an empty
-  list is given, there is no arrow.
+  Add a scale factor to the items or the transform described by
+  {\tt tagOrId}. If {\tt tagOrId} describe a named transform
+  then this transform is used to do the operation. If {\tt tagOrId}
+  describe more than one item then all the items are affected by
+  the opration. If {\tt tagOrId} describe neither a named transform
+  nor an item, an error is raised. A separate factor is specified for
+  X and Y.
 \end{blockindent}
 
-\attribute{linepattern}{bitmapName}
+\zinccmd{select}{option ?tagOrId? ?arg?}
 \begin{blockindent}
-  To be written
+  Manipulates the selection as requested by {\tt option}. {\tt tagOrId}
+  Describe the target item. This item must support text indexing and
+  selection. If more than one item is referred to by {\tt tagOrId}, the
+  first in display list order that support both text indexing and selection
+  will be used. Some forms of the command include an {\tt index} parameter,
+  this parameter describe a textual position within the item and should
+  be a valid index as described in the \cmdref{index} command.
+  The valid forms of the command are :
+
+  \begin{description}
+  \item{\code{.r select adjust tagOrId index}} \\
+    Adjust the end of the selection in {\tt tagOrId} that is nearest to
+    the character given by {\tt index} so that it is at {\tt index}. The
+    other end of the selection is made the anchor for future select to
+    commands. If the selection is not currently in {\tt tagOrId}, this
+    command behaves as the select to command. The command returns an empty
+    string.
+  \item{\code{.r select clear}} \\
+    Clear the selection if it is in the widget. If the selection is not
+    in the widget, the command has no effect. Return an empty string.
+  \item{\code{.r select from tagOrId index}} \\
+    Set the selection anchor point for the widget to be just before
+    the character given by {\tt index} in the item described by
+    {\tt tagOrId}. The command has no effect on the selection, it
+    sets one end of the selection so that future select to can actually
+    set the selection. The command returns an empty string.
+  \item{\code{.r select item}} \\
+    Returns the id of the selected item, if the selection is in an item
+    on this widget. Otherwise the command returns an empty string.
+  \item{\code{.r select to tagOrId index}} \\
+    Set the selection to be the characters that lies between the selection
+    anchor and {\tt index} in the item described by {\tt tagOrId}. The
+    selection includes the character given by {\tt index} and includes the
+    character given by the anchor point if {\tt index} is greater or
+    equal to the anchor point. The anchor point is set by the most recent
+    select adjust or select from command issued for this widget. If the
+    selection anchor point for the widget is not currently in {\tt tagOrId},
+    it is set to the character given by index. The command returns an empty
+    string.
+  \end{description}
+
 \end{blockindent}
 
-\attribute{linestyle}{lineStyle}
+\zinccmd{smooth}{coordList}
 \begin{blockindent}
-  To be written
+  This command computes a sequence of Bezier segments in order to smooth the
+  curve described by the vertices in {\tt coordList} and returns a list of
+  vertices describing the control points for the generated segments.
+  {\tt coordList} should contain a pair number of coordinates in x, y order.
+  The returned control point list consists of four control points per Bezier
+  segment with two consecutive segments sharing their last/first control point.
+  The control points are in x, y order and can be used to create or change a
+  Bezier item.
 \end{blockindent}
 
-\attribute{linewidth}{dimension}
+\zinccmd{tapply}{}
 \begin{blockindent}
-  To be written
+  Not yet implemented.
 \end{blockindent}
 
-\attribute{lockedom}{boolean}
+\zinccmd{tdelete}{tName}
 \begin{blockindent}
-  To be written
+  Destroy a named transform. If the given name is not found
+  among the named transforms, an error is raised.
 \end{blockindent}
 
-\attribute{mapinfo}{mapInfoName}
+\zinccmd{transform}{?tagOrIdFrom? tagOrIdTo coordList}
 \begin{blockindent}
-  To be written
+  This command returns a list of coordinates obtained by transforming
+  the coordinates given in {\tt coordList} from the coordinate space
+  of the transform or item described by {\tt tagOrIdFrom} to the
+  coordinate space of the transform or item described by {\tt tagOrIdTo}.
+  If {\tt tagOrIdFrom} is omitted it defaults to the device coordinate
+  space. If either {\tt tagOrId} describe more than one item, the topmost
+  in display list order is used. If {\tt tagOrId} doesn't describe
+  either a transform or an item, an error is raised.
 \end{blockindent}
 
-\attribute{marker}{bitmapName}
+\zinccmd{translate}{tagOrId xAmount yAmount}
 \begin{blockindent}
-  To be written
+  Add a translation to the items or the transform described by
+  {\tt tagOrId}. If {\tt tagOrId} describe a named transform
+  then this transform is used to do the operation. If {\tt tagOrId}
+  describe more than one item then all the items are affected by
+  the opration. If {\tt tagOrId} describe neither a named transform
+  nor an item, an error is raised. A separate value is specified for
+  X and Y.
 \end{blockindent}
 
-\attribute{markercolor}{color}
+\zinccmd{treset}{tagOrId}
 \begin{blockindent}
-  To be written
+  Set the named transform or the transform for the items described
+  by {\tt tagOrId} to identity. If {\tt tagOrId} describe neither
+  a named transform nor an item, an error is raised.
 \end{blockindent}
 
-\attribute{markerfillpattern}{bitmapName}
+\zinccmd{trestore}{tagOrId tName}
 \begin{blockindent}
-  To be written
+  Set the transform for the items described by {\tt tagOrId} to the
+  transform named by {\tt tName}. If {\tt tagOrId} doesn't describe
+  any item or if the transform named {\tt tName} doesn't exist, an
+  error is raised.
 \end{blockindent}
 
-\attribute{markersize}{dimension}
+\zinccmd{tsave}{tagOrId tName}
 \begin{blockindent}
-  To be written
+  Create (or reset) a transform associated with the name {\tt tName}
+  which has for initial value the transform associated with the item
+  {\tt tagOrId}. If {\tt tagOrId} describe more than one item, the
+  topmost in display list order is used. If {\tt tagOrId} doesn't describe
+  any item, an error is raised. If {\tt tName} already exists, the
+  transform is set to the new value. This command is the only way to
+  create a named transform.
 \end{blockindent}
 
-\attribute{markerstyle}{lineStyle}
+\zinccmd{type}{tagOrId}
 \begin{blockindent}
-  To be written
+  This command returns the type of the item specified by {\tt tagOrId}.
+  If more than one item is named by {\tt tagOrId}, then the type of
+  the topmost item in display list order is returned.
+  If no items are named by {\tt tagOrId}, an error is raised.
 \end{blockindent}
 
-\attribute{mask}{bitmapName}
+\zinccmd{vertexat}{tagOrId x y}
 \begin{blockindent}
-  To be written
+  Return the vertex index closest to the device coordinates {\tt x} and
+  {\tt y} in the item described by {\tt tagOrId}. If {\tt tagOrId}
+  describes more than one item, the first item in display list order
+  that supports vertex picking is used.
 \end{blockindent}
 
-\attribute{mixedhistory}{boolean}
+
+\chapter{Attribute types}
+
+\attrtype{alignment}
 \begin{blockindent}
-  To be written
+  Specifies the horizontal alignment of an entity.
+  The legal values are: {\tt left}, {\tt right}, {\tt center}.
 \end{blockindent}
 
-\attribute{numfields}{}
+\attrtype{anchor}
 \begin{blockindent}
-  To be written
+  Specifies one of the nine caracteristic points of a rectangle
+  or bounding box that will be used to position the object.
+  These points include the four corners the four edge centers
+  and the center of the rectangle. The possible values are: {\tt nw},
+  {\tt n}, {\tt ne}, {\tt e}, {\tt se}, {\tt s}, {\tt sw}, {\tt w},
+  {\tt center}.
 \end{blockindent}
 
-\attribute{numcircles}{integer}
+\attrtype{angle}
 \begin{blockindent}
-  To be written
+  Specifies an angle in degrees, the value must be an integer from
+  0 to 360 inclusive.
 \end{blockindent}
 
-\attribute{overstriked}{boolean}
+\attrtype{autoalignment}
 \begin{blockindent}
-  To be written
+  Specifies the horizontal alignments that should be used for track
+  or way point fields depending on the label position relative to
+  the position of the item. The attribute may have two forms: a
+  single dash {\tt -} means turning of the automatic alignment feature
+  for the field; The other form consists in three letters which
+  describe in order: the alignment to be used when the label is to
+  the left of the item position, above or below the item position and
+  to the right of the item position. The possible values for each
+  letter is: {\tt l} for left alignment, {\tt c} for center
+  alignment and {\tt r} for right alignment. Here is an example:
+  {\tt rll} means right align the field if the label is on the
+  left side of the item, and left align if the label is above, below
+  or on the right of the item.
 \end{blockindent}
 
-\attribute{period}{integer}
+\attrtype{bitmap}
 \begin{blockindent}
-  To be written
+  This should be a string naming a valid Tk bitmap. The bitmap should
+  be known to Tk prior to its use. Zinc registers a set of bitmaps that
+  can be used for any bitmap valued attribute (see \ref{builtinbitmaps}).
+  Extensions to Tk are available to create or manipulate bitmaps from a
+  script. The value may also name a file containing a valid X11 bitmap
+  description. The syntax in this cas is {\tt @filename}.
 \end{blockindent}
 
-\attribute{pieslice}{boolean}
+\attrtype{bitmaplist}
 \begin{blockindent}
-  To be written
+  This is an extension of the \ident{bitmap} attribute type. It describes
+  a list of bitmaps that will be the value of the attribute.
 \end{blockindent}
 
-\attribute{position}{position}
+\attrtype{boolean}
 \begin{blockindent}
-  To be written
+  This is the description of a standard Tcl boolean value. The possible
+  values are {\tt 0}, {\tt false}, {\tt no} or {\tt off} for the false
+  value and {\tt 1}, {\tt true}, {\tt yes} or {\tt on} for the true value.
 \end{blockindent}
 
-\attribute{priority}{integer}
+\attrtype{capstyle}
 \begin{blockindent}
-  To be written
+  This the description of a line cap. The possible values are {\tt butt},
+  {\tt projecting} and {\tt round}.
 \end{blockindent}
 
-\attribute{relief}{relief}
+\attrtype{color}
 \begin{blockindent}
-  To be written
+  This is a string that describes a color. The description may have one of
+  two forms, a colorname such as {\tt green} or {\tt LemonChiffon} or an
+  rgb specification in one of the following formats, {\tt \#rgb}, {\tt \#rrggbb},
+  {\tt \#rrrgggbbb} or {\tt \#rrrrggggbbbb}. If less than four digits are provided
+  for a color component, they represent the most significant bits of the
+  component. For example {\tt \#3a7} is equivalent to {\tt \#3000a0007000}.
 \end{blockindent}
 
-\attribute{reliefthickness}{dimension}
+\attrtype{dimension}
 \begin{blockindent}
-  To be written
+  This is a string that represent a screen distance which will be converted
+  into a distance in pixels. The string consists in a floating point signed
+  number optionally followed by a character specifying the unit. The character
+  can be {\tt c} for centimeters, {\tt i} for inches, {\tt m} for millimeters,
+  {\tt p} for printer's points (1/72 inch) or nothing for pixels.
 \end{blockindent}
 
-\attribute{sensitive}{boolean}
+\attrtype{edgelist}
 \begin{blockindent}
-  To be written
+  This is a list describing the edges of a border that should be considered
+  for processing (e.g for drawing). The possible values are {\tt left},
+  {\tt right}, {\tt top}, {\tt bottom}, {\tt contour}, {\tt oblique} and
+  {\tt counteroblique}. The {\tt contour} value is the same as the
+  {\tt "left top right bottom"} list. The {\tt oblique} and {\tt counteroblique}
+  values describe diagonal segments from top-left to bottom-right and from
+  top-right to bottom-left respectively.
 \end{blockindent}
 
-\attribute{smoothed}{boolean}
+\attrtype{font}
 \begin{blockindent}
-  To be written
+  This is a string describing a font. For an exhaustive description of
+  what is legal as a font description, refer to the Tk \ident{font}
+  command man page. Just to mention to popular methods, it is possible to
+  specify a font by it's X11 font name or by a list whose elements are the
+  font family, the font size and then zero or more styles including {\tt normal},
+  {\tt bold}, {\tt roman}, {\tt italic}, {\tt underline}, {\tt overstrike}.
 \end{blockindent}
 
-\attribute{spacing}{dimension}
+\attrtype{gradientcolor}
 \begin{blockindent}
-  To be written
+  This is a string describing a color span to be used for example to fill
+  a surface. The string consists of the first color of the span, the last
+  color of the span and the number of steps that it should take to go from
+  the first color to the last. The three elements are sperated by spaces.
+  The two colors can take any form legal in a color context (see the
+  \ident{color} attribute type). The number of steps should be a non negative
+  integer. The intermediate colors are generated by linear interpolation
+  between the two specified colors. A simplified form consists in only one
+  color, this is useful when no gradient filling is needed. When the full
+  description is used and only one color is used by the item (e.g when
+  filling with a solid color) then the span median color is used.
 \end{blockindent}
 
-\attribute{speedvector}{position}
+\attrtype{gradientgeometry}
 \begin{blockindent}
-  To be written
+  This is a string describing the geometry that should be used to fill a
+  surface with a color gradient. The string should have one of the forms
+  {\tt threshold1-threshold2/angle}, {\tt threshold/angle},
+  {\tt threshold1-threshold2} or {\tt threshold}. The threshold values
+  are a percentage along the gradient axis where the mid color should
+  be reached (first threshold) or leaved (second threshold). The angle
+  is an unsigned value in degrees specifying the gradient axis orientation.
 \end{blockindent}
 
-\attribute{speedvectorcolor}{color}
+\attrtype{image}
 \begin{blockindent}
-  To be written
+  This should be the name of a previously registered Tk image. In pure
+  Tk only GIF, PPM and bitmap formats are available as source for images.
+  With the Img extension many others popular formats are added including
+  JPEG, XPM and PNG.
 \end{blockindent}
 
-\attribute{speedvectorsensitive}{boolean}
+\attrtype{integer}
 \begin{blockindent}
-  To be written
+  Describes a signed integer value.
 \end{blockindent}
 
-\attribute{startangle}{integer}
+\attrtype{item}
 \begin{blockindent}
-  To be written
+  Describes an item id or a tag. If a tag is provided an item will be
+  searched for the tag and the first matching in display list order will
+  be used.
 \end{blockindent}
 
-\attribute{stepsize}{dimension}
+\attrtype{joinstyle}
 \begin{blockindent}
-  To be written
+  Describes a join style. The possible values are {\tt bevel}, {\tt miter}
+  and {\tt round}.
 \end{blockindent}
 
-\attribute{symbol}{bitmapName}
+\attrtype{labelformat}
 \begin{blockindent}
-  To be written
+  The new format is as follow. Parameters between [] are
+  optional and take default values when omitted. The spaces can appear
+  between blocks but not inside.
+  
+  \verb+[WidthxHeight] [field0Spec] [field1Spec] [fieldnSpec]+\\
+  
+  Width and Height set the size of the clipping box surrounding
+  the label. If it is not specified, there will be no clipping.
+  It it is specified alone it is the size of the only displayed
+  field (0).
+  
+  fieldSpec is:
+  \verb+sChar fieldWidth sChar fieldHeight [pChar fieldX pChar fieldY]+.
+  
+  Each field description refers to the field of same index in the field
+  array.
+  If \verb+sChar+ is \verb+'x'+, the dimension is in pixel. If \verb+sChar+ is
+  \verb+'f'+, the dimension is in percentage of the mean width/height of a
+  character (in the field font). If \verb+sChar+ is \verb+'i'+, the dimension
+  is in percentage of the size of the image in the field. If \verb+sChar+ is
+  \verb+'a'+, the dimension is automatically adjusted to match the field's
+  content plus the given value in pixels. If \verb+sChar+ is \verb+'l'+,
+  the dimension is automatically adjusted to match the global size of the
+  label (not counting fields with \verb+'l'+ size specs). The positional
+  parameter is not used with this size specification (always 0) and it is not
+  possible to reference the field in another field spec.
+  
+  If \verb+pChar+ is \verb-'+'- the position is in pixel (possibly negative).
+  If it is \verb+'<'+ the position is the index of the field at the left/top
+  of which the current field should be  attached. If it is \verb+'>'+ the
+  position is the index of the field at the right/bottom of which the current
+  field should be attached. If \verb+pChar+ is \verb+'^'+ the position is
+  the index of the field used to align the left/top border (left on left or
+  top on top). If \verb+pChar+ is \verb+'$'+ the %$ position is the index
+  of the field used to align the right/bottom border (right on right or
+  bottom on bottom).
+  
+  The positional parameters can be omitted if there is only one field.  
 \end{blockindent}
 
-\attribute{symbolcolor}{color}
+\attrtype{leaderanchors}
 \begin{blockindent}
-  To be written
+  Describe where to attach the label leader on the label. These are not
+  to be confused with the regular rectangular anchors.
+  
+  The format is: \verb+lChar leftLeaderAnchor [lChar rightLeaderAnchor]+
+  
+  If \verb+lChar+ is a \verb+'|'+, \verb+leftLeaderAnchor+ and \verb+rightLeaderAnchor+
+  are the indices of the fields that serve to anchor the label's leader. More
+  specifically the bottom left corner of the left field and the bottom right corner of
+  the right field are used as the anchors.
+  If \verb+lChar+ is \verb+'%'+, \verb+leftLeaderAnchor+ and \verb+rightLeaderAnchor+
+  should be specified as \verb+valxval+, \verb+val+ being a percentage (max 100) of
+  the width/height of the label bounding box. If rightLeaderAnchor is not specified
+  it defaults to field 0. If rightLeaderField is not specified it defaults to
+  leftLeaderAnchor. If neither of them are specified, the center of the label
+  is used as an anchor.
 \end{blockindent}
 
-\attribute{symbols}{bitmapNames}
+\attrtype{lineend}
 \begin{blockindent}
-  To be written
+  Describe the shape of the arrow at the beginning or end of a path.
+  This is a list of three numbers describing the arrow shape in the
+  following order:
+  distance along the axis from neck to tip of the arrowhead,
+  distance from trailing points to tip and distance from outside
+  edge of the line to the trailing points (see canvas).
+  If an empty list is given, there is no arrow.
 \end{blockindent}
 
-\attribute{symbolsensitive}{boolean}
+\attrtype{lineshape}
 \begin{blockindent}
-  To be written
+  Describes the shape of a path connecting two points. The possible
+  values are {\tt straight}, {\tt rightlightning}, {\tt leftlightning},
+  {\tt rightcorner}, {\tt leftcorner}, {\tt doublerightcorner} and
+  {\tt doubleleftcorner}.
 \end{blockindent}
 
-\attribute{tags}{tagList}
+\attrtype{linestyle}
 \begin{blockindent}
-  To be written
+  Describes the style of the dashes that should be used to draw a line.
+  The possible values are {\tt simple}, {\tt dashed}, {\tt mixed} and
+  {\tt dotted}.
 \end{blockindent}
 
-\attribute{text}{string}
+\attrtype{mapinfo}
 \begin{blockindent}
-  To be written
+  This is the name of a previously registered mapinfo object
+  (see \ref{mapinfocmd}) that will define the lines, symbols,
+  texts an other graphical parts displayed in a map item.
 \end{blockindent}
 
-\attribute{tile}{imageName}
+\attrtype{number}
 \begin{blockindent}
-  To be written
+  This is floating point value. It can be optionally expressed in
+  exponent notation.
 \end{blockindent}
 
-\attribute{underlined}{boolean}
+\attrtype{position}
 \begin{blockindent}
-  To be written
+  This is a list of two floating point values that describes a point
+  position or some two dimensional delta (used for example to describe
+  the speed vector of a track item).
 \end{blockindent}
 
-\attribute{visible}{boolean}
+\attrtype{relief}
 \begin{blockindent}
-  To be written
+  Describes a border relief. The possible values are {\tt flat}, {\tt groove},
+  {\tt raised}, {\tt ridge} and {\tt sunken}.
 \end{blockindent}
 
-\attribute{visiblehistorysize}{integer}
+\attrtype{string}
 \begin{blockindent}
-  To be written
+  Just what its name implies, a string.
 \end{blockindent}
 
-\attribute{width}{dimension}
+\attrtype{taglist}
 \begin{blockindent}
-  To be written
+  This should be a list of strings describing the tags that are set
+  for an item.
 \end{blockindent}
 
-\attribute{window}{windowId}
+\attrtype{window}
 \begin{blockindent}
-  To be written
+  A string describing an X window id. This id can be returned by the
+  {\tt winfo id a-widget-path} command.
 \end{blockindent}
 
 
@@ -1445,31 +1466,67 @@ Parler de current, all.
 \object{field}
 Applicable attributes for fields:
 
-\begin{tabular}{ll}
-  \attrref{alignment} & The horizontal alignment of both the text and the image \\
-  \attrref{autoalignment} & The alignments used according to the label orientation \\
-  \attrref{backcolor} & The field background color \\
-  \attrref{border} & The border description, edge by edge \\
-  \attrref{bordercolor} & The border color\\
-  \attrref{color} & The text color \\
-  \attrref{filled} & Specifies if the field background should be filled \\
-  \attrref{fillpattern} & The fill pattern used when filling the background \\
-  \attrref{font} & The text font \\
-  \attrref{image} & An image to be displayed in the field \\
-  \attrref{relief} & Specifies the relief to be drawn around the field, inside the border \\
-  \attrref{reliefthickness} & Width of the relief \\
-  \attrref{sensitive} & Specifies if the field should react to input events \\
-  \attrref{text} & One line of text to be displayed in the field \\
-  \attrref{tile} & \\
-  \attrref{visible} & Specifies if the field is dispalyed \\
-\end{tabular}
 
+\attribute{alignment}{alignment}{
+  The horizontal alignment of both the text and the image. The default value
+  is {\tt left}.}
+\attribute{autoalignment}{autoalignment}{
+  The dynamic horizontal alignments used depending on the label orientation.
+  The default value is {\tt "-"} which means do not use dynamic alignment.}
+\attribute{backcolor}{color}{
+  The field background color. The default value is the current value of the widget
+  option \ident{-foreground}.}
+\attribute{border}{edgelist}{
+  The border description edge by edge. The border is a one pixel wide outline that
+  is drawn around the field outside the relief. Some border edges can be omitted,
+  this attribute describe the edges that should be displayed as part of the border.
+  The default value is {\tt ""}.}
+\attribute{bordercolor}{color}{
+  The border color. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{color}{color}{
+  The text color. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{filled}{boolean}{
+  Specifies if the field background should be filled. The default value is
+  {\tt false}.}
+\attribute{fillpattern}{bitmap}{
+  The fill pattern used when filling the background. This attribute is overrided
+  by the tile attribute. The default value is {\tt ""}.}
+\attribute{font}{font}{
+  The text font. The default value is the current value of the widget option
+  \ident{-font}.}
+\attribute{image}{image}{
+  An image to be displayed in the field. The image will be centered vertically
+  in the field. The default value is {\tt ""}.}
+\attribute{relief}{relief}{
+  Specifies the relief to be drawn around the field, inside the border. The
+  default value is {\tt flat}.}
+\attribute{reliefthickness}{dimension}{
+  Width of the relief drawn around the field. The default value is {\tt 0}
+  which means that no relief should be drawn around the field.}
+\attribute{sensitive}{boolean}{
+  Specifies if the field should react to input events. The default value is
+  {\tt true}.}
+\attribute{text}{string}{
+  A line of text to be displayed in the field. The text will be centered vertically
+  in the field. The default value is {\tt ""}.}
+\attribute{tile}{image}{
+  Specifies an image that will be tiled over the field background is the field
+  is filled. This attribute has precedence over the \ident{fillpattern} attribute.
+  The default value is {\tt ""}.}
+\attribute{visible}{boolean}{
+  Specifies if the field is displayed. The default value is {\tt true}.}
 
 
 \chapter{Item types}
-\object{items}
+\concept{items}
 
-This chapter introduces the item types that can be used in \ident{zinc}.
+This chapter introduces the item types that can be used in \ident{zinc}. Each
+item type provides a set of options that may be used to query or change the
+item behavior. Some item types cannot be used with some widget commands, or
+use special parameters with some command. Those cases are noted in the description
+of the item.
 
 
 \section{Group items}
@@ -1477,456 +1534,876 @@ This chapter introduces the item types that can be used in \ident{zinc}.
 \object{group}
 Applicable attributes for \ident{group}:
 
-\begin{tabular}{ll}
-  \attrref{atomic} & Specifies if the group should report itself or its components during a search or pointer related operations \\
-  \attrref{clip} & The item used for clipping \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
+\attribute{atomic}{boolean}{Specifies if the group should report itself
+  or its components during a search or for binding related operations. This
+  attribute enable the use of a group as a single complex object build from
+  smaller parts. It is possible to search for this item or use it in bindings
+  without dealing with its smaller parts. The defaut value is {\tt false}.}
+\attribute{clip}{item}{The item used to clip the children of the group. The shape
+  of this item define an area that is used as a clipping shape when drawing the
+  children of the group. Most items can be used here but notable exceptions are
+  the \ident{reticle} and \ident{map} items. The default value is {\tt ""} which
+  means that no clipping will be performed.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should be
+  composed with the local transform. The defaut value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The defaut value is {\tt true}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 0}.}
+\attribute{sensitive}{boolean}{Specifies if the item and all its children should
+  react to events. The defaut value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item and all its children is
+  displayed. The defaut value is {\tt true}.}
+
 
-  
 \section{Track and WayPoint items}
 
 \object{track}
 Applicable attributes for \ident{track}:
 
-\begin{tabular}{ll}
-  \attrref{circlehistory} & Specifies if the track history is plotted with circles \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{connecteditem} & The item ending the connection link \\
-  \attrref{connectioncolor} & The color of the connection link \\
-  \attrref{connectionsensitive} & Specifies if the connection link is sensitive \\
-  \attrref{connectionstyle} & The line style of the connection link \\
-  \attrref{connectionwidth} & The width of the connection link \\
-  \attrref{filledhistory} & Specifies if the track history is filled or outlined \\
-  \attrref{filledmarker} & Specifies if the circular marker is filled or outlined \\
-  \attrref{frozenlabel} & Specifies if the label should be frozen at its current location \\
-  \attrref{labelanchor} & The anchor used in positionning the label \\
-  \attrref{labelangle} & The angle between the leader label and the normal to the speed vector \\
-  \attrref{labeldistance} & The minimum distance between the track position and the label anchor \\
-  \attrref{labeldx} & The X offset between the track position and the label anchor \\
-  \attrref{labeldy} & The Y offset between the track position and the label anchor \\
-  \attrref{labelformat} & Geometry of the label's fields \\
-  \attrref{leaderanchors} & The attachments of the leader on the label side \\
-  \attrref{leadercolor} & The color of the label leader \\
-  \attrref{leaderfirstend} & \\
-  \attrref{leaderlastend} & \\
-  \attrref{leadersensitive} & Specifies if the label leader is sensitive \\
-  \attrref{leadershape} & The shape of the label leader \\
-  \attrref{leaderstyle} & The line style of the label leader \\
-  \attrref{leaderwidth} & The width of the label leader \\
-  \attrref{markercolor} & The color of the circular marker (fill or outline) \\
-  \attrref{markerfillpattern} & The pattern to use when filling the circular marker \\
-  \attrref{markersize} & The (scale sensitive) size of the circular marker \\
-  \attrref{markerstyle} & The line style of the marker outline \\
-  \attrref{mixedhistory} & Specifies if the track history is plotted with dots every other positions \\
-  \attrref{numfields} & Gives the number of fields available for the label \\
-  \attrref{position} & The current location of the track \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{speedvector} & The speed vector $\Delta x$ and $\Delta y$ in unit / minute \\
-  \attrref{speedvectorcolor} & The color of the trck's speed vector \\
-  \attrref{speedvectorsensitive} & Specifies if the track's speed vector is sensitive \\
-  \attrref{symbol} & The symbol displayed at the current position \\
-  \attrref{symbolcolor} & The color of the symbol displayed at the current position \\
-  \attrref{symbolsensitive} & Specifies if the current position's symbol is sensitive to events \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-  \attrref{visiblehistorysize} & The number of past positions that should be displayed \\
-\end{tabular}
+\attribute{circlehistory}{boolean}{If set to true the track history will
+  be plotted as cricles otherwise it will be plotted as squares. The default
+  value is {\tt false}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation
+  should be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{connecteditem}{item}{The item at the other end of the connection link.
+  The default value is {\tt ""} which means that no connection link will be drawn.}
+\attribute{connectioncolor}{color}{The color of the connection link. The
+  default value is the current value of the widget option \ident{-foreground}.}
+\attribute{connectionsensitive}{boolean}{Specifies if the connection link
+  is sensitive. The actual sensitivity is the logical and of this attribute and
+  of the item {\tt sensitive}{boolean} attribute. The default value is {\tt true}.}
+\attribute{connectionstyle}{linestyle}{The line style of the connection link.
+  The default value is {\tt simple}.}
+\attribute{connectionwidth}{dimension}{The width of the connection link. The
+  default value is {\tt 1}.}
+\attribute{filledhistory}{boolean}{If set to true the track history will be
+  filled otherwise it will be outlined. The default value is {\tt true}.}
+\attribute{filledmarker}{boolean}{If set to true the circular marker will be
+  filled otherwise it will be outlined. The default value is {\tt false}.}
+\attribute{frozenlabel}{boolean}{Specifies if the label should be frozen at
+  its current location to prevent the anti overlapping system from moving it. The
+  default value is {\tt false}.}
+\attribute{historycolor}{color}{The color of the track history. The default value
+  is the current value of the widget option \ident{-foreground}.}
+\attribute{labelanchor}{anchor}{The anchor used in positionning the label. The
+  default value is {\tt center}.}
+\attribute{labelangle}{angle}{The angle in degrees between the label anchor
+  and the normal to the speed vector. This attribute works with the {\tt labeldistance}
+  attribute to specify a position for the label anchor with respect to the item
+  origin. There is another alternative method for label positioning which is
+  implemented with the {\tt labeldx} and {\tt labeldy} methods. Simultaneous
+  use of the two methods should be done with care as there is no automatic update
+  of values from the {\tt labeldx}, {\tt labeldy} set to the {\tt labeldistance},
+  {\tt labelangle} set. The default value is {\tt 20}.}
+\attribute{labeldistance}{dimension}{The minimum distance in pixels between
+  the track position and the label anchor. See the explanation of the {\tt labelangle}
+  attribute for some more details. The default value is 50.}
+\attribute{labeldx}{dimension}{The X offset between the track position and the
+  label anchor. The default value is computed from the values in the {\tt labeldistance}
+  and {\tt labelangle} attributes.}
+\attribute{labeldy}{dimension}{The Y offset between the track position and the label
+  anchor. The default value is computed from the values in the {\tt labeldistance} and
+  {\tt labelangle} attributes.}
+\attribute{labelformat}{labelformat}{Geometry of the label fields. The default
+  value is {\tt ""} which means that no label will be displayed.}
+\attribute{lastasfirst}{boolean}{If set to true, the last position in the
+  history will be drawn in the same color as the current position instead of
+  being drawn in the history color. The default value is {\tt false}.}
+\attribute{leaderanchors}{leaderanchors}{The attachments of the leader on the
+  label side. The default value is {\tt ""} which means that both leader anchors are
+  at the label center.}
+\attribute{leadercolor}{color}{The color of the label leader. The default value
+  is the current value of the widget option \ident{-foreground}.}
+\attribute{leaderfirstend}{lineend}{Describe the arrow shape at the current position
+  end of the leader. The default value is {\tt ""}.}
+\attribute{leaderlastend}{lineend}{Describe the arrow shape at the label end of
+  the leader. The default value is {\tt ""}.}
+\attribute{leadersensitive}{boolean}{Specifies if the label leader is sensitive.
+  The actual sensitivity is the logical and of this attribute and of the item
+  {\tt sensitive} attribute. The default value is {\tt true}.}
+\attribute{leadershape}{lineshape}{The shape of the label leader. The default
+  value is {\tt straight}.}
+\attribute{leaderstyle}{linestyle}{The line style of the label leader. The default
+  value is {\tt simple}.}
+\attribute{leaderwidth}{dimension}{The width of the label leader. The default
+  value is {\tt 1}.}
+\attribute{markercolor}{color}{The color of the circular marker. The default
+  value is the current value of the widget option \ident{-foreground}.}
+\attribute{markerfillpattern}{bitmap}{The pattern to use when filling the
+  circular marker. The default value is {\tt ""}.}
+\attribute{markersize}{number}{The (scale sensitive) size of the circular marker.
+  The default value is {\tt 0} which turn off the display of the marker.}
+\attribute{markerstyle}{linestyle}{The line style of the marker outline. The
+  default value is {\tt simple}.}
+\attribute{mixedhistory}{boolean}{If true the track history will be plotted
+  with dots every other positions. The default value is {\tt false}.}
+\attribute{numfields}{integer}{Gives the number of fields available for the
+  label. This attribute is read only.}
+\attribute{position}{position}{The current location of the track. The default
+  value is {\tt "0 0"}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 5}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{speedvector}{position}{The speed vector $\Delta x$ and $\Delta y$
+  in unit / minute. The default value is {\tt "0 0"} which results in no speed vector
+  displayed.}
+\attribute{speedvectorcolor}{color}{The color of the trck's speed vector. The
+  default value is the current value of the widget option \ident{-foreground}.}
+\attribute{speedvectorsensitive}{boolean}{Specifies if the track's speed vector
+  is sensitive. The actual sensitivity is the logical and of this attribute and of
+  the item {\tt sensitive} attribute. The default value is {\tt true}. }
+\attribute{symbol}{bitmap}{The symbol displayed at the current position. The
+  default value is {\tt AtcSymbol15}.}
+\attribute{symbolcolor}{color}{The color of the symbol displayed at the current
+  position. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{symbolsensitive}{boolean}{Specifies if the current position's symbol
+  is sensitive to events. The actual sensitivity is the logical and of this attribute
+  and of the item {\tt sensitive} attribute. The default value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default value
+  is {\tt true}.}
+\attribute{visiblehistorysize}{integer}{The number of past positions that should
+  be displayed. The default value is {\tt 6}.}
+
 
 \object{waypoint}
 Applicable attributes for \ident{waypoint}:
 
-\begin{tabular}{ll}
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{connecteditem} & \\
-  \attrref{connectioncolor} & \\
-  \attrref{connectionsensitive} & \\
-  \attrref{connectionstyle} & \\
-  \attrref{connectionwidth} & \\
-  \attrref{filledmarker} & \\
-  \attrref{labelanchor} & The anchor used in positionning the label \\
-  \attrref{labelangle} & The angle between the leader label and the normal to the speed vector \\
-  \attrref{labeldistance} & The minimum distance between the track position and the label anchor \\
-  \attrref{labeldx} & The X offset between the track position and the label anchor \\
-  \attrref{labeldy} & The Y offset between the track position and the label anchor \\
-  \attrref{labelformat} & \\
-  \attrref{leaderanchors} & The attachments of the leader on the label side \\
-  \attrref{leadercolor} & \\
-  \attrref{leaderfirstend} & \\
-  \attrref{leaderlastend} & \\
-  \attrref{leadersensitive} & \\
-  \attrref{leadershape} & \\
-  \attrref{leaderstyle} & \\
-  \attrref{leaderwidth} & \\
-  \attrref{markercolor} & \\
-  \attrref{markerfillpattern} & \\
-  \attrref{markersize} & \\
-  \attrref{markerstyle} & \\
-  \attrref{numfields} & \\
-  \attrref{position} & \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{symbol} & \\
-  \attrref{symbolcolor} & \\
-  \attrref{symbolsensitive} & \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}. }
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}. }
+\attribute{connecteditem}{item}{The item at the other end of the connection link.
+  The default value is {\tt ""} which means that no connection link will be drawn.}
+\attribute{connectioncolor}{color}{The color of the connection link. The default
+  value is the current value of the widget option \ident{-foreground}.}
+\attribute{connectionsensitive}{boolean}{Specifies if the connection link is
+  sensitive. The actual sensitivity is the logical and of this attribute and of the
+  item {\tt sensitive} attribute. The default value is {\tt true}.}
+\attribute{connectionstyle}{linestyle}{The line style of the connection link.
+  The default value is {\tt simple}.}
+\attribute{connectionwidth}{dimension}{The width of the connection link. The
+  default value is {\tt 1}.}
+\attribute{filledmarker}{boolean}{If set to true the circular marker will be
+  filled otherwise it will be outlined. The default value is {\tt false}.}
+\attribute{labelanchor}{anchor}{The anchor used in positionning the label. The
+  default value is {\tt center}.}
+\attribute{labelangle}{angle}{The angle in degrees between the label anchor and
+  the normal to the speed vector. This attribute works with the {\tt labeldistance}
+  attribute to specify a position for the label anchor with respect to the item origin.
+  There is another alternative method for label positioning which is implemented with
+  the {\tt labeldx} and {\tt labeldy} methods. Simultaneous use of the two methods
+  should be done with care as there is no automatic update of values from the
+  {\tt labeldx}, {\tt labeldy} set to the {\tt labeldistance}, {\tt labelangle} set.
+  The default value is {\tt 20}.}
+\attribute{labeldistance}{dimension}{The minimum distance in pixels between the
+  way point position and the label anchor. See the explanation of the {\tt labelangle}
+  attribute for some more details. The default value is 50.}
+\attribute{labeldx}{dimension}{The X offset between the way point position and
+  the label anchor. The default value is computed from the values in the
+  {\tt labeldistance} and {\tt labelangle} attributes.}
+\attribute{labeldy}{dimension}{The Y offset between the way point position and
+  the label anchor. The default value is computed from the values in the
+  {\tt labeldistance} and {\tt labelangle} attributes.}
+\attribute{labelformat}{labelformat}{Geometry of the label fields. The default
+  value is {\tt ""} which means that no label will be displayed.}
+\attribute{leaderanchors}{leaderanchors}{The attachments of the leader on the
+  label side. The default value is {\tt ""} which means that both leader anchors are
+  at the label center.}
+\attribute{leadercolor}{color}{The color of the label leader. The default value
+  is the current value of the widget option \ident{-foreground}.}
+\attribute{leaderfirstend}{lineend}{Describe the arrow shape at the current position
+  end of the leader. The default value is {\tt ""}.}
+\attribute{leaderlastend}{lineend}{Describe the arrow shape at the label end of
+  the leader. The default value is {\tt ""}.}
+\attribute{leadersensitive}{boolean}{Specifies if the label leader is sensitive.
+  The actual sensitivity is the logical and of this attribute and of the item
+  {\tt sensitive} attribute. The default value is {\tt true}.}
+\attribute{leadershape}{lineshape}{The shape of the label leader. The default
+  value is {\tt straight}.}
+\attribute{leaderstyle}{linestyle}{The line style of the label leader. The
+  default value is {\tt simple}.}
+\attribute{leaderwidth}{dimension}{The width of the label leader. The default
+  value is {\tt 1}.}
+\attribute{markercolor}{color}{The color of the circular marker. The default
+  value is the current value of the widget option \ident{-foreground}.}
+\attribute{markerfillpattern}{bitmap}{The pattern to use when filling the circular
+  marker. The default value is {\tt ""}.}
+\attribute{markersize}{number}{The (scale sensitive) size of the circular marker.
+  The default value is {\tt 0} which turn off the display of the marker.}
+\attribute{markerstyle}{linestyle}{The line style of the marker outline. The
+  default value is {\tt simple}.}
+\attribute{numfields}{integer}{Gives the number of fields available for the label.
+  This attribute is read only.}
+\attribute{position}{position}{The current location of the way point. The default
+  value is {\tt "0 0"}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 4}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{symbol}{bitmap}{The symbol displayed at the current position. The
+  default value is {\tt AtcSymbol15}.}
+\attribute{symbolcolor}{color}{The color of the symbol displayed at the current
+  position. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{symbolsensitive}{boolean}{Specifies if the current position's symbol
+  is sensitive to events. The actual sensitivity is the logical and of this attribute
+  and of the item {\tt sensitive} attribute. The default value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+
 
-  
 \section{Tabular items}
 
 \object{tabular}
 Applicable attributes for \ident{tabular}:
-  
-\begin{tabular}{ll}
-  \attrref{anchor} & The anchor used in positionning the item \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{connecteditem} & Specifies the item relative to which this item is placed \\
-  \attrref{connectionanchor} & Specifies the anchor on the connected item used for the placement \\
-  \attrref{labelformat} & \\
-  \attrref{numfields} & \\
-  \attrref{position} & The item's position relative to the anchor (if no connected item specified) \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
+
+\attribute{anchor}{anchor}{The anchor used in positionning the item. The default
+  value is {\tt nw}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{connecteditem}{item}{Specifies the item relative to which this item
+  is placed. The default value is {\tt ""}.}
+\attribute{connectionanchor}{anchor}{Specifies the anchor on the connected item.
+  The default value is {\tt sw}.}
+\attribute{labelformat}{labelformat}{Geometry of the label fields. The default
+  value is {\tt ""} which means that nothing will be displayed.}
+\attribute{numfields}{integer}{Gives the number of fields available for the
+  label. This attribute is read only.}
+\attribute{position}{position}{The item's position relative to the anchor
+  (if no connected item specified). The default value is {\tt "0 0"}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 3}. }
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
 
 
 \section{Text items}
 
 \object{text}
 Applicable attributes for \ident{text}:
-  
-\begin{tabular}{ll}
-  \attrref{alignment} & \\
-  \attrref{anchor} & The anchor used in positionning the item \\
-  \attrref{color} & \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{connecteditem} & Specifies the item relative to which this item is placed \\
-  \attrref{connectionanchor} & Specifies the anchor on the connected item used for the placement \\
-  \attrref{fillcolor} & \\
-  \attrref{fillpattern} & \\
-  \attrref{font} & \\
-  \attrref{overstriked} & \\
-  \attrref{position} & The item's position relative to the anchor (if no connected item specified) \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{spacing} & \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{text} & \\
-  \attrref{underlined} & \\
-  \attrref{visible} & Specifies if the item is displayed \\
-  \attrref{width} & \\
-\end{tabular}
 
-  
+\attribute{alignment}{alignment}{Specifies the horizontal alignment of the
+  lines in the item. The default value is {\tt left}.}
+\attribute{anchor}{anchor}{The anchor used in positionning the item. The default
+  value is {\tt nw}.}
+\attribute{color}{color}{Specifies the color for drawing the text characters,
+  the overstrike and underline lines. The default value is the current value
+  of the widget option \ident{-foreground}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{connecteditem}{item}{Specifies the item relative to which this item
+  is placed. The default value is {\tt ""}.}
+\attribute{connectionanchor}{anchor}{Specifies the anchor on the connected item.
+  The default value is {\tt sw}.}
+\attribute{fillpattern}{bitmap}{Specifies the pattern used to draw the text
+  characters, the overstrike and underline lines. The default value is {\tt ""}.}
+\attribute{font}{font}{Specifies the font for the text. The default value is
+  the current value of the widget option \ident{-font}.}
+\attribute{overstriked}{boolean}{If true, a thin line will be drawn horizontally
+  across the text characters. The default value is {\tt false}.}
+\attribute{position}{position}{The item's position relative to the anchor
+  (if no connected item specified). The default value is {\tt "0 0"}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 2}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{spacing}{dimension}{Specifies a pixel value that will be added to
+  the inter-line spacing specified in the font. The value can be positive to
+  increase the spacing or negative to reduce it. The default value is {\tt 0}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{text}{string}{Specifies the text characters. Newline characters can
+  be embedded to force line ends. The default value is {\tt ""}.}
+\attribute{underlined}{boolean}{If true, a thin line will be drawn under the
+  text characters. The default value is {\tt false}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+\attribute{width}{dimension}{Specifies the maximum pixel width of the text, a
+  line break will be automatically inserted at the closest character position to
+  match this constraint. If the value is zero, the width is not under the item
+  control and line breaks must be inserted in the text to have multiple lines.
+  The default value is {\tt 0}.}
+
+
 \section{Icon items}
 
 \object{icon}
 Applicable attributes for \ident{icon}:
-  
-\begin{tabular}{ll}
-  \attrref{anchor} & The anchor used in positionning the item \\
-  \attrref{color} & \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{connecteditem} & Specifies the item relative to which this item is placed \\
-  \attrref{connectionanchor} & Specifies the anchor on the connected item used for the placement \\
-  \attrref{image} & \\
-  \attrref{mask} & \\
-  \attrref{position} & The item's position relative to the anchor (if no connected item specified) \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
 
-  
+\attribute{anchor}{anchor}{The anchor used in positionning the item. The default
+  value is {\tt nw}.}
+\attribute{color}{color}{Specifies the fill color used for drawing the bitmap.
+  The default value is the current value of the widget option \ident{-foreground}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation
+  should be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{connecteditem}{item}{Specifies the item relative to which this
+  item is placed}
+\attribute{connectionanchor}{anchor}{Specifies the anchor on the connected item.
+  The default value is {\tt sw}.}
+\attribute{image}{image}{Specifies a Tk image that will be displayed by the item.
+  The image may have a mask (depend on the image format) that clip some parts. This
+  option has precedence over the {\tt mask} option if both are specified. The
+  default value is {\tt ""}.}
+\attribute{mask}{bitmap}{Specifies a Tk bitmap that will be displayed by the
+  item. The bitmap is filled with the color specified with the {\tt color} option.
+  This option is inactive if an image has been specified with the {\tt image} option.}
+\attribute{position}{position}{The item's position relative to the anchor (if
+  no connected item specified). The default value is {\tt "0 0"}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 2}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+
+
 \section{Reticle items}
 
 \object{reticle}
 Applicable attributes for \ident{reticle}:
-  
-\begin{tabular}{ll}
-  \attrref{brightlinecolor} & \\
-  \attrref{brightlinestyle} & \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{firstradius} & \\
-  \attrref{linecolor} & \\
-  \attrref{linestyle} & \\
-  \attrref{numcircles} & \\
-  \attrref{period} & \\
-  \attrref{position} & \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{stepsize} & \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
 
-  
+\attribute{brightlinecolor}{color}{This is the color of the highlighted
+  circles. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{brightlinestyle}{linestyle}{This is the line style of the highlighted
+  circles. The default value is {\tt simple}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{firstradius}{number}{This is the radius of the innermost circle of
+  the reticle. The default value is {\tt 80}.}
+\attribute{linecolor}{color}{This is the color of the regular (not highlighted)
+  circles. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{linestyle}{linestyle}{This is the line style of the regular (not
+  highlighted) circles. The default value is {\tt simple}.}
+\attribute{numcircles}{integer}{Specifies how many circles should be drawn.
+  The default value is {\tt -1} which means draw as many circles as needed to
+  encompass the current widget window. This does not take into account any possible
+  clipping that can mask part of the reticle. The idea behind this trick is to draw
+  an infinite reticle that is optimized for the current scale.}
+\attribute{period}{integer}{Specifies the recurrence of the bright circles over
+  the regulars. The default value is {\tt 5} which means that a bright circle is
+  drawn then 4 regulars, etc.}
+\attribute{position}{position}{Location of the center of the reticle. The default
+  value is {\tt "0 0"}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 2}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt false} as the item cannot handle events.}
+\attribute{stepsize}{number}{The (scale sensitive) size of the step between two
+  consecutive circles. The default value is {\tt 80}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+
+
 \section{Map items}
 
 \object{map}
 Applicable attributes for \ident{map}:
-  
-\begin{tabular}{ll}
-  \attrref{color} & \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{filled} & \\
-  \attrref{fillpattern} & \\
-  \attrref{font} & \\
-  \attrref{mapinfo} & \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{symbols} & \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
 
-  
+\attribute{color}{color}{Specifies the color usedd to draw or fill the map. The
+  texts and symbols that are part of the map are also drawn in this color.
+  The default value is the current value of the widget option \ident{-foreground}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{filled}{boolean}{If set to true the map wil be filled otherwise it
+  will be drawn as thin lines. The default is {\tt false}.}
+\attribute{fillpattern}{bitmap}{Specifies the pattern to be used when filling
+  the map. The value should be a legal Tk bitmap. The default value is {\tt "}.}
+\attribute{font}{font}{Specifies the font that will be used to drawn the texts of
+  the map.  The default value is the current value of the widget option -maptextfont.}
+\attribute{mapinfo}{mapinfo}{Specifies the lines, texts, symbols and other
+  various graphical components that should be displayed by the map item. All these
+  graphical components will share the graphical attributes (color, font, etc) of
+  the item and its coordinate system. The default value is {\tt ""} which means
+  that nothing will be displayed by the map.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 1}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt false} as the item cannot handle events.}
+\attribute{symbols}{bitmaplist}{}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+
+
 \section{Rectangle items}
 
 \object{rectangle}
 Applicable attributes for \ident{rectangle}:
 
-\begin{tabular}{ll}
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{fillcolor} & \\
-  \attrref{filled} & \\
-  \attrref{fillpattern} & \\
-  \attrref{gradient} & \\
-  \attrref{linecolor} & \\
-  \attrref{linepattern} & \\
-  \attrref{linestyle} & \\
-  \attrref{linewidth} & \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{relief} & \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{tile} & \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{fillcolor}{gradientcolor}{Specifies the color that will be used to fill
+  the rectangle if requested by the \ident{filled} attribute. The default value is a
+  one color gradient based on the current value of the widget option \ident{-foreground}.}
+\attribute{filled}{boolean}{Specifies if the item should be filled. The default
+  value is {\tt false}.}
+\attribute{fillpattern}{bitmap}{Specifies the pattern to use when filling the
+  item. The default value is {\tt ""}.}
+\attribute{gradient}{gradientgeometry}{Specifies the type and geometry of the
+  gradient that should be drawn to fill the item. This will be done only if filling is
+  requested by the \ident{filled} attribute. The default value is {\tt ""} which means
+  no gradient geometry, fill with solid color. When a value other than the default is
+  specified, this attribute has priority over the \ident{tile} and \ident{fillpattern}
+  attributes.}
+\attribute{linecolor}{color}{Specifies the color that will be used to draw
+  the item outline. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{linepattern}{bitmap}{Specifies the pattern to use when drawing the
+  outline. The default value is {\tt ""}.}
+\attribute{linestyle}{linestyle}{Specifies the line style to use when drawing
+  the outline. The default value is {\tt simple}.}
+\attribute{linewidth}{dimension}{Specifies the with of the item outline (not
+  scalable). The default value is {\tt 1}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 2}.}
+\attribute{relief}{relief}{Specifies the relief used to drawn the rectangle
+  outline. This attribute has priority over the \ident{linecolor}, \ident{linepattern}
+  and \ident{linestyle} attributes. The default value is {\tt flat}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{tile}{image}{Specifies an image used for filling the item with
+  tiles. This will be done only if filling is requested by the \ident{filled} attribute.
+  This attribute has priority over the \ident{gradient} attribute when no gradient is
+  specified (paint solid) and the \ident{fillpattern} attribute. The default value is
+  {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+
 
-  
 \section{Arc items}
 
 \object{arc}
 Applicable attributes for \ident{arc}:
 
-\begin{tabular}{ll}
-  \attrref{closed} & \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{extent} & \\
-  \attrref{fillcolor} & \\
-  \attrref{filled} & \\
-  \attrref{fillpattern} & \\
-  \attrref{firstend} & \\
-  \attrref{gradient} & \\
-  \attrref{lastend} & \\
-  \attrref{linecolor} & \\
-  \attrref{linepattern} & \\
-  \attrref{linestyle} & \\
-  \attrref{linewidth} & \\
-  \attrref{pieslice} & \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{startangle} & \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{tile} & \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
+\attribute{closed}{boolean}{Specifies if the outline of the arc should be
+  closed. This is only pertinent if the arc extent is less than 360 degrees.
+  The default value is {\tt false}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{extent}{angle}{Specifies the angular extent of the arc relative to the
+  start angle. The angle is expressed in degrees in the trigonometric system. The
+  default value is {\tt 360}.}
+\attribute{fillcolor}{gradientcolor}{ Specifies the color that will be used to fill
+  the arc if requested by the \ident{filled} attribute. The default value is a
+  one color gradient based on the current value of the widget option
+  \ident{-foreground}.}
+\attribute{filled}{boolean}{Specifies if the item should be filled. The default
+  value is {\tt false}.}
+\attribute{fillpattern}{bitmap}{Specifies the pattern to use when filling the
+  item. The default value is {\tt ""}.}
+\attribute{firstend}{lineend}{Describe the arrow shape at the start end of
+  the arc. This attribute is applicable only if the item is not closed and not filled.
+  The default value is {\tt ""}.}
+\attribute{gradient}{gradientgeometry}{Specifies the type and geometry of the
+  gradient that should be drawn to fill the item. This will be done only if filling is
+  requested by the \ident{filled} attribute. The default value is {\tt ""} which means
+  no gradient geometry, fill with solid color. When a value other than the default is
+  specified, this attribute has priority over the \ident{tile} and \ident{fillpattern}
+  attributes.}
+\attribute{lastend}{lineend}{Describe the arrow shape at the extent end of
+  the arc. This attribute is applicable only if the item is not closed and not filled.
+  The default value is {\tt ""}.}
+\attribute{linecolor}{color}{Specifies the color that will be used to draw
+  the item outline. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{linepattern}{bitmap}{Specifies the pattern to use when drawing the
+  outline. The default value is {\tt ""}.}
+\attribute{linestyle}{linestyle}{Specifies the line style to use when drawing
+  the outline. The default value is {\tt simple}.}
+\attribute{linewidth}{dimension}{Specifies the with of the item outline (not
+  scalable). The default value is {\tt 1}.}
+\attribute{pieslice}{boolean}{This attribute tells how to draw an arc whose
+  extent is less than 360 degrees. If this attribute is true the arc open end
+  will be drawn as a pie slice otherwise it will be drawn as a chord. The default
+  value is {\tt false}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 2}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{startangle}{angle}{Specifies the arc starting angle. The angle is
+  expressed in degrees in the trigonometric system. The default value is {\tt 0}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{tile}{image}{Specifies an image used for filling the item with
+  tiles. This will be done only if filling is requested by the \ident{filled} attribute.
+  This attribute has priority over the \ident{gradient} attribute when no gradient is
+  specified (paint solid) and the \ident{fillpattern} attribute. The default value is
+  {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+
 
-  
 \section{Curve items}
 
 \object{curve}
 Applicable attributes for \ident{curve}:
 
-\begin{tabular}{ll}
-  \attrref{capstyle} & \\
-  \attrref{closed} & \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{fillcolor} & \\
-  \attrref{filled} & \\
-  \attrref{fillpattern} & \\
-  \attrref{firstend} & \\
-  \attrref{gradient} & \\
-  \attrref{joinstyle} & \\
-  \attrref{lastend} & \\
-  \attrref{linecolor} & \\
-  \attrref{linepattern} & \\
-  \attrref{linestyle} & \\
-  \attrref{linewidth} & \\
-  \attrref{marker} & \\
-  \attrref{markercolor} & \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{relief} & \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{tile} & \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
+\attribute{capstyle}{capstyle}{Specifies the form of the outline ends. This
+  attribute is only applicable if the curve is not closed and the outline relief is
+  flat. The default value is {\tt round}.}
+\attribute{closed}{boolean}{Specifies if the curve outline should be drawn
+  between the first and last vertex or not. The default is {\tt true}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation
+  should be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{fillcolor}{gradientcolor}{Specifies the color that will be used to fill
+  the curve if requested by the \ident{filled} attribute. The default value is a
+  one color gradient based on the current value of the widget option
+  \ident{-foreground}.}
+\attribute{filled}{boolean}{Specifies if the item should be filled. The default
+  value is {\tt false}.}
+\attribute{fillpattern}{bitmap}{Specifies the pattern to use when filling the
+  item. The default value is {\tt ""}.}
+\attribute{firstend}{lineend}{Describe the arrow shape at the start of the curve.
+  This attribute is applicable only if the item is not closed, not filled and
+  the relief of the outline is flat. The default value is {\tt ""}.}
+\attribute{gradient}{gradientgeometry}{Specifies the type and geometry of the
+  gradient that should be drawn to fill the item. This will be done only if filling is
+  requested by the \ident{filled} attribute. The default value is {\tt ""} which means
+  no gradient geometry, fill with solid color. When a value other than the default is
+  specified, this attribute has priority over the \ident{tile} and \ident{fillpattern}
+  attributes.}
+\attribute{joinstyle}{joinstyle}{Specifies the form of the joint between the curve
+  segments. This attribute is only applicable if the curve outline relief is flat.
+  The default value is {\tt round}.}
+\attribute{lastend}{lineend}{Describe the arrow shape at the end of the curve.
+  This attribute is applicable only if the item is not closed, not filled and
+  the relief of the outline is flat. The default value is {\tt ""}.}
+\attribute{linecolor}{color}{Specifies the color that will be used to draw
+  the item outline. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{linepattern}{bitmap}{Specifies the pattern to use when drawing the
+  outline. The default value is {\tt ""}.}
+\attribute{linestyle}{linestyle}{Specifies the line style to use when drawing
+  the outline. The default value is {\tt simple}.}
+\attribute{linewidth}{dimension}{Specifies the with of the item outline (not
+  scalable). The default value is {\tt 1}.}
+\attribute{marker}{bitmap}{Specifies a bitmap that will be used to draw a mark at
+  each vertex of the curve. This attribute is not applicable if the outline relief is
+  not flat. The default value is {\tt ""} which means do not draw markers.}
+\attribute{markercolor}{color}{Specifies the color of the markers.
+  The default value is the current value of the widget option \ident{-foreground}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 2}.}
+\attribute{relief}{relief}{Specifies the relief used to drawn the curve
+  outline. This attribute has priority over the \ident{linecolor}, \ident{linepattern}
+  and \ident{linestyle} attributes. The default value is {\tt flat}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{tile}{image}{Specifies an image used for filling the item with
+  tiles. This will be done only if filling is requested by the \ident{filled} attribute.
+  This attribute has priority over the \ident{gradient} attribute when no gradient is
+  specified (paint solid) and the \ident{fillpattern} attribute. The default value is
+  {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+
 
-  
 \section{Bezier items}
 
 \object{bezier}
+
+
 Applicable attributes for \ident{bezier}:
 
-\begin{tabular}{ll}
-  \attrref{capstyle} & \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{fillcolor} & \\
-  \attrref{filled} & \\
-  \attrref{fillpattern} & \\
-  \attrref{firstend} & \\
-  \attrref{gradient} & \\
-  \attrref{lastend} & \\
-  \attrref{linecolor} & \\
-  \attrref{linepattern} & \\
-  \attrref{linestyle} & \\
-  \attrref{linewidth} & \\
-  \attrref{priority} & The absolute position in the stacking order \\
-  \attrref{relief} & \\
-  \attrref{sensitive} & Specifies if the item should react to events \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{tile} & \\
-  \attrref{visible} & Specifies if the item is displayed \\
-\end{tabular}
+\attribute{capstyle}{capstyle}{Specifies the form of the outline ends. This
+  attribute is only applicable if the bezier is not closed and the outline relief is
+  flat. The default value is {\tt round}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should be
+  composed with the local transform. The default value is {\tt true}.}
+\attribute{fillcolor}{gradientcolor}{Specifies the color that will be used to fill
+  the bezier if requested by the \ident{filled} attribute. The default value is a
+  one color gradient based on the current value of the widget option
+  \ident{-foreground}.}
+\attribute{filled}{boolean}{Specifies if the item should be filled. The default
+  value is {\tt false}.}
+\attribute{fillpattern}{bitmap}{Specifies the pattern to use when filling the
+  item. The default value is {\tt ""}.}
+\attribute{firstend}{lineend}{Describe the arrow shape at the start of the bezier.
+  This attribute is applicable only if the item is not filled and the relief of the
+  outline is flat. The default value is {\tt ""}.}
+\attribute{gradient}{gradientgeometry}{Specifies the type and geometry of the
+  gradient that should be drawn to fill the item. This will be done only if filling is
+  requested by the \ident{filled} attribute. The default value is {\tt ""} which means
+  no gradient geometry, fill with solid color. When a value other than the default is
+  specified, this attribute has priority over the \ident{tile} and \ident{fillpattern}
+  attributes.}
+\attribute{lastend}{lineend}{Describe the arrow shape at the end of the bezier.
+  This attribute is applicable only if the item is not filled and the relief of the
+  outline is flat. The default value is {\tt ""}.}
+\attribute{linecolor}{color}{Specifies the color that will be used to draw
+  the item outline. The default value is the current value of the widget option
+  \ident{-foreground}.}
+\attribute{linepattern}{bitmap}{Specifies the pattern to use when drawing the
+  outline. The default value is {\tt ""}.}
+\attribute{linestyle}{linestyle}{Specifies the line style to use when drawing
+  the outline. The default value is {\tt simple}.}
+\attribute{linewidth}{dimension}{Specifies the with of the item outline (not
+  scalable). The default value is {\tt 1}.}
+\attribute{priority}{integer}{The absolute position in the stacking order among
+  siblings of the same parent group. The default value is {\tt 2}.}
+\attribute{relief}{relief}{Specifies the relief used to drawn the bezier
+  outline. This attribute has priority over the \ident{linecolor}, \ident{linepattern}
+  and \ident{linestyle} attributes. The default value is {\tt flat}.}
+\attribute{sensitive}{boolean}{Specifies if the item should react to events.
+  The default value is {\tt true}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{tile}{image}{Specifies an image used for filling the item with
+  tiles. This will be done only if filling is requested by the \ident{filled} attribute.
+  This attribute has priority over the \ident{gradient} attribute when no gradient is
+  specified (paint solid) and the \ident{fillpattern} attribute. The default value is
+  {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
 
 
-\section{Window items}
 
+\section{Window items}
 \object{window}
+
+  Items of type \ident{window} display an X11 window at a given position in the
+  widget. It is possible to use this item as a clip item for its group, the clip
+  shape will be the window rectangle. It is also possible to use the rectangular
+  shape of the window item in a \ident{contour} command to build a complex shape
+  in a \ident{curve} item. The position of the window, relative to the anchor,
+  can be set or read with the \ident{coords} command (i.e. if no connected item
+  is specified).
+
+  One of the most frequent use of this item is to embed any Tk widget
+  into zinc, including, of course, another zinc instance. Another less obvious
+  use is to embed a whole Tk application into zinc, here is how to do it:
+  The embedding application should create a frame with the \ident{-container}
+  option set to true; Add a window item to the relevant zinc widget with the
+  \ident{window} attribute set to the id of the container frame; The embedded
+  application should create its toplevel with the \ident{-use} option set to
+  the id of the container frame; Or, as an alternative, the embedded \cident{wish}
+  can be launched with the \ident{-use} option set to the container frame id.
+  
 Applicable attributes for \ident{window}:
 
-\begin{tabular}{ll}
-  \attrref{anchor} & The anchor used in positionning the item \\
-  \attrref{composerotation} & Specifies if the current rotation should be composed with the local transform \\
-  \attrref{composescale} & Specifies if the current scale should be composed with the local transform \\
-  \attrref{connecteditem} & Specifies the item relative to which this item is placed \\
-  \attrref{connectionanchor} & Specifies the anchor on the connected item used for the placement \\
-  \attrref{height} & \\
-  \attrref{position} & The item's position relative to the anchor (if no connected item specified) \\
-  \attrref{priority} & Constraints of the underlying window sytem dictate the stacking
-  order of window items. They can't be lowered under the other items. Additionally,
-  to manipulate their stacking order, you must use the raise and lower Tk commands on
-  the associated Tk window.\\
-  \attrref{sensitive} & This option has no effect on window items \\
-  \attrref{tags} & The list of tags associated with the item \\
-  \attrref{visible} & Specifies if the item is displayed \\
-  \attrref{width} & \\
-  \attrref{window} & \\
-\end{tabular}
-
-
-\chapter{Bindings}
+\attribute{anchor}{anchor}{The anchor used in positionning the item.
+  The default value is {\tt nw}.}
+\attribute{composerotation}{boolean}{Specifies if the current rotation
+  should be composed with the local transform. The default value is {\tt true}.}
+\attribute{composescale}{boolean}{Specifies if the current scale should
+  be composed with the local transform. The default value is {\tt true}.}
+\attribute{connecteditem}{item}{Specifies the item relative to which this
+  item is placed. The default value is {\tt ""}.}
+\attribute{connectionanchor}{anchor}{Specifies the anchor on the connected
+  item used for the placement. The default value is {\tt sw}.}
+\attribute{height}{dimension}{Specifies the height of the item window in
+  screen units. The default value is {\tt 0}.}
+\attribute{position}{position}{The item's position relative to the anchor
+  (if no connected item specified). The default value is {\tt "0 0"}.}
+\attribute{priority}{integer}{Constraints of the underlying window sytem
+  dictate the stacking order of window items. They can't be lowered under the
+  other items. Additionally, to manipulate their stacking order, you must use
+  the raise and lower Tk commands on the associated Tk window. The value of this
+  attribute is meaningless.}
+\attribute{sensitive}{boolean}{This option has no effect on window items.
+  The default value is {\tt False}.}
+\attribute{tags}{taglist}{The list of tags associated with the item. The default
+  value is {\tt ""}.}
+\attribute{visible}{boolean}{Specifies if the item is displayed. The default
+  value is {\tt true}.}
+\attribute{width}{dimension}{Specifies the width of the item window in
+  screen units. The default value is {\tt 0}.}
+\attribute{window}{window}{Specifies the X id of the window that is displayed
+  by the item. This id can be obtained by the Tk command \ident{winfo id widgetname}.
+  The default value is {\tt ""}.}
 
 
 \chapter{The \ident{mapinfo} command}
+\label{mapinfocmd}
 
+  MapInfo objects are used to describe graphical primitives that will be
+  displayed in map items. It is possible to describe lines, arcs, symbols
+  and texts as part of a MapInfo. The \ident{mapinfo} and \ident{videomap}
+  commands are provided to create and manipulate the mapinfo objects.
+  
 \mapinfocmd{name}{create}{}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Create a new empty map description. The new mapinfo object named {\tt name}.
+\end{blockindent}
 
 \mapinfocmd{mapInfoName}{delete}{}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Delete the mapinfo object named by {\tt mapInfoName}. All maps that refer to
+  the deleted mapinfo are updated to reflect the change.
+\end{blockindent}
 
 \mapinfocmd{mapInfoName}{duplicate}{newName}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Create a new mapinfo that is a exact copy of the mapinfo named {\tt mapInfoName}.
+  The new mapinfo object will be named {\tt newName}.
+\end{blockindent}
 
 \mapinfocmd{name}{add}{type args}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Add a new graphical element to the mapinfo object named by {\tt name}. The
+  {\tt type} parameter select which element should be added while the {\tt args}
+  arguments provide some type specific values such as coordinates. Here is
+  a description of recognized types and their associated parameters.
+  
+  \begin{description}
+  \item{line} \\
+    This element describes a line segment. Its parameters consists in a line
+    style ({\tt simple}, {\tt dashed}, {\tt dotted}, {\tt mixed}, {\tt marked}),
+    an integer value setting the line width in pixels and four integer values
+    setting the X and Y coordinates of the two end vertices.
+  \item{arc} \\
+    This element describes an arc segment. Its parameters consists in a line
+    style ({\tt simple}, {\tt dashed}, {\tt dotted}, {\tt mixed}, {\tt marked}),
+    an integer value setting the line width in pixels, two integer values
+    setting the X and Y of the arc center, integer value setting the arc radius
+    and two integer values setting the start angle and the angular extent of the
+    arc.
+  \item{symbol} \\
+    This element describes a symbol. Its parameters consists in two integer values
+    setting the X and Y of the symbol position and an integer setting the symbol
+    index in the {\tt -symbols} list of the map item.
+  \item{text} \\
+    This element describes a line of text. Its parameters consists in a text style
+    ({\tt normal}, {\tt underlined}), a line style ({\tt simple}, {\tt dashed},
+    {\tt dotted}, {\tt mixed}, {\tt marked}) to be used for the underline, two
+    integer values setting the X and Y of the text position and a string describing
+    the text.
+  \end {description}
+  
+\end{blockindent}
 
 \mapinfocmd{name}{count}{type}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Return an integer value that is the number of elements matching {\tt type} in
+  the mapinfo named {\tt name}. {\tt type} may be one the legal element types as
+  described in the {\tt mapinfo add} command.
+\end{blockindent}
 
 \mapinfocmd{name}{get}{type index}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Return the parameters of the element at {\tt index} with type {\tt type}
+  in the mapinfo named {\tt name}. The returned value is a list. The exact
+  number of parameters in the list and their meaning depend on {\tt type}
+  and is accurately described in \ident{mapinfo add}. {\tt type} may be one
+  the legal element types as described in the {\tt mapinfo add} command.
+  Indices are zero based and elements are listed by type.
+\end{blockindent}
 
 \mapinfocmd{name}{replace}{type index args}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Replace all parameters for the element at {\tt index} with type {\tt type}
+  in the mapinfo named {\tt name}. The exact number and content for {\tt args}
+  depend on {\tt type} and is accurately described in \ident{mapinfo add}.
+  {\tt type} may be one the legal element types as described in the
+  {\tt mapinfo add} command. Indices are zero based and elements are listed
+  by type.
+\end{blockindent}
 
 \mapinfocmd{name}{remove}{type index}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Remove the element at {\tt index} with type {\tt type} in the mapinfo
+  named {\tt name}. {\tt type} may be one the legal element types as
+  described in the {\tt mapinfo add} command. Indices are zero based and
+  elements are listed by type.
+\end{blockindent}
 
 \mapinfocmd{name}{scale}{factor}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Scale all coordinates of all the elements described in the mapinfo named
+  {\tt name} by {\tt factor}. The same value is used for X and Y axes.
+\end{blockindent}
 
 \mapinfocmd{name}{translate}{xAmount yAmount}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Translate all coordinates of all the elements described in the mapinfo named
+  {\tt name}. The {\tt xAmount} value is used for the X axis and the
+  {\tt yAmount} value is used for the Y axis.
+\end{blockindent}
+
 
 
-  
 \chapter{The \ident{videomap} command}
 
 \command{videomap}{ids}{fileName}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Return all sub-map ids that are described in the videomap file described
+  by {\tt fileName}. The ids are listed in file order. This command makes
+  possible to iterate through a videomap file one sub-map at a time, to know
+  how much sub-maps are there and to sort them according to their ids.
+\end{blockindent}
 
 \command{videomap}{load}{fileName index mapInfoName}
-  \begin{blockindent}
-    To be written
-  \end{blockindent}
+\begin{blockindent}
+  Load the videomap sub-map located at position {\tt index} in the file named
+  {\tt fileName} into a mapinfo object named {\tt mapInfoName}. It is possible,
+  if needed, to use the \ident{videomap ids} command to help translate a sub-map
+  id into a sub-map file index.
+\end{blockindent}
 
 
 
 \chapter{Other resources provided by the widget}
 
 \section{Bitmaps}
+\label{builtinbitmaps}
 
-  Zinc creates two sets of bitmaps.
+Zinc creates two sets of bitmaps.
 
-  The first set contains symbols for ATC tracks, maps and
-  waypoints, these bitmaps are named AtcSymbol1 to AtcSymbol22.
+The first set contains symbols for ATC tracks, maps and
+waypoints, these bitmaps are named AtcSymbol1 to AtcSymbol22.
 
 \latexhtml{%
   \includegraphics{atcsymb.ps}}{%
   \htmladdimg{atcsymb.png}
   }
 
-  The second set provides stipples that can be used to implement
-  transparency, they are named AlphaStipple0 to AlphaStipple15,
-  AlphaStipple0 being the most transparent.
+The second set provides stipples that can be used to implement
+transparency, they are named AlphaStipple0 to AlphaStipple15,
+AlphaStipple0 being the most transparent.
 
 \latexhtml{%
   \includegraphics{alphastip.ps}}{%
@@ -1934,7 +2411,7 @@ Applicable attributes for \ident{window}:
   }
 
 \latex {\tolerance 2000                 %allow somewhat looser lines.
-\hbadness 10000 }                 %don't complain about underfull lines.
+  \hbadness 10000 }                 %don't complain about underfull lines.
 
 \tableofcontents
 \listoftables
-- 
cgit v1.1

