From 032401f587d5eda1d91f4d472c487af5c0408044 Mon Sep 17 00:00:00 2001
From: mertz
Date: Fri, 8 Mar 2002 16:45:38 +0000
Subject: ajout de 2 images (logo zinc, exemple de track) ajout du chapitre sur
 les groupes

---
 doc/refman.tex | 320 +++++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 231 insertions(+), 89 deletions(-)

(limited to 'doc/refman.tex')

diff --git a/doc/refman.tex b/doc/refman.tex
index 59a3573..1f01e5d 100644
--- a/doc/refman.tex
+++ b/doc/refman.tex
@@ -86,7 +86,10 @@
   \else
   \htmlrule[WIDTH="300" left]
   \fi
-  {\tt\large mapinfo #1 {\bf #2} #3}}
+  {\tt\large mapinfo #1 {\bf #2} #3}\\
+  {\tt\large \$zinc->mapinfo(#1, {\bf #2}, #3) }
+  % slightly buggy XXX : missing commas when #3 contains many words
+}
 
 \newcommand{\attrtype}[1]{%
   \label{attrtype:#1}
@@ -205,12 +208,12 @@ to the Tk canvas widget, this document is structured in a very similar way. The
 \conceptref{Widget options}{options} describes how to create a new widget and which options
 and resources are available. The chapter \conceptref{Groups, Display List and Transformations}{coordinates}
 describes the use of groups and coordinates transformations. The chapter
-\concept{Item IDs and Tags}{tagOrId} describes the Items ID as well as tags and some special
-tags. It also describes the notion of field tags used with some items (such as \objectref{track},
-\objectref{waypoint}, \objectref{tabular}) and the notion of partNames for items (\objectref{track},
-\objectref{waypoint}). Then the chapter \conceptref{Indices}{indices} describes the use of indices XXX.
-The important {\bf chapter \conceptref{Widget commands}{commands} } describes the commands which
-apply to a  \ident{zinc} widget. There are about 50 such commands and they are used for
+\conceptref{Item IDs and Tags}{tagOrId} describes the Items ID as well as tags and some special
+tags. It also describes the notion of field tags used with some items (\objectref{track},
+\objectref{waypoint}, \objectref{tabular}) and the notion of partNames for items \objectref{track} and
+\objectref{waypoint}. Then the chapter \conceptref{Indices}{indices} describes the use of indices XXX.
+The important {\bf chapter \conceptref{Widget commands}{commands}} describes the 50 commands which
+apply to a  \ident{zinc} widget. They are used for
 creating, modifying or deleting objects, applying transformation... The chapter
 \conceptref{Attributes Types}{types} describes the type of all attributes (or options)
 available for the items described in the important {\bf chapter \conceptref{Item types}{items}}.
@@ -230,18 +233,42 @@ structured graphics. Like the \ident{canvas}, \ident{zinc} implements items used
 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 (with the use of group items),
-has support for affine 2D transforms (i.e. translating, scaling, and rotating),
+has support for affine 2D transforms (i.e. translation, scaling, and rotation),
 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.
 
 Since the 3.2.3 version, \ident{zinc} also offers the support of some openGL
-features such as transparency, color variation and even a new item type : \objectref{triangles}.
-You need the support of the GLX extension on your X11 server. Of course performance
+features such as transparency, color gradient and even a new item type : \objectref{triangles}.
+You need the support of the GLX extension on your X11 server. Of course, performances
 will be dependant of your graphic card. At time of writing, NVidia drivers
 for XFree86 R4.1 are doing a nice job. A labtop with an ATI mobility graphic card works nice.
 We also succeded in using zinc with openGL on the Exceed X11 server
 (running on windows and developped by Hummingbird) with the 3D extension.
 
+As an exemple to \ident{zinc} capabilities when combined with openGL, we reproduced in \ident{ZincLogo.pm} a perl module, the tk Zinc logo. This logo (see just below) was designed with Illustrator (from Adobe) and then programmed as a perl module. It is now part delivered as a \ident{zinc} goodies.
+
+\ifpdf
+  \includegraphics{tkzinclogo}
+\else
+\latexhtml{
+  \htmladdimg{tkzinclogo.png}
+  }
+\fi
+
+\ifpdf
+\begin{figure}[htbp]            
+\centering
+\includegraphics{tkzinclogo}    
+\caption{Logo Zinc written as a Perl/zinc module}
+\label{fig:logozinc}
+\end{figure}
+\else
+\latexhtml{
+  \htmladdimg{tkzinclogo.png}
+  }
+\fi
+
+
 
 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 and Perl/Tk
@@ -294,11 +321,46 @@ MA 02111-1307, USA.
 
 \section{Authors and credits}
 
-\ident{Zinc} has been developed by Patrick Lecoanet. He also developed two previous version called ``Radar Widget'' which share some caracteristics of this version. The release 2 of the ``Radar Widget'' was even enhanced and then used in two main Air Traffic Control Centres in France 24 hours a day. Dominique Ruiz, Frederic Lepied, and Didier Pavet helped a lot in the developement of \ident{zinc} and its previous versions. \ident{Zinc} also benefits from many discussion with Jean-Luc Vinot. Jean-Luc has a background of Graphic Designer and is now an HMI developer at CENA. He envisions many, many new ideas for advanced HMI. Many of them could never or hardly be implemented without \ident{zinc}. And \ident{zinc} would have been less interesting without his ideas. Didier Pavet and his team as well as Daniel Etienne and Herve Damiano were first users and cope with Patrick either by reporting bugs or problems. Thanks to all these people and to the CENA for supporting this work.
+\ident{Zinc} has been developed by Patrick Lecoanet. He also developed two
+previous version called ``Radar Widget'' which share some caracteristics of
+this version. The ``Radar Widget'' was heavily used at CENA for many projects
+over nearly 10 years. The release 2 is still in used. It was even enhanced
+and then used for Radar Images in two main Air Traffic Control Centres in
+France 24 hours a day. Dominique Ruiz, Frederic Lepied, and Didier Pavet
+helped a lot in the developement of \ident{zinc} and its previous versions.
+\ident{Zinc} also benefits from many discussions with Jean-Luc Vinot. Jean-Luc
+has a background of Graphic Designer and is now an HMI developer at CENA. He
+envisions many, many new ideas for advanced HMI. Many of them could never or
+hardly be implemented without \ident{zinc}. And \ident{zinc} would have been
+less interesting without his ideas. Didier Pavet and his team as well as Daniel
+Etienne and Herve Damiano were first users and cope with Patrick either by
+reporting bugs, problems or solutions. Thanks to all these people and to the
+CENA for supporting this work.
 
 The core of this documentation has been written by  Patrick Lecoanet,
-the main author of \ident{zinc}. This documentation has been re-read
-and slightly corrected by Christophe Mertz and others.
+the main author of \ident{zinc}. This documentation has been enriched
+and by Christophe Mertz.
+
+\section{How may I contribute to zinc development}
+
+If you think \ident{zinc} is an interesting tool, they are many ways to contribute
+in \ident{zinc} development. We are managing a mailing list. To subscribe, please
+consult the web site http://www.openatc.org/Zinc/ .
+
+\begin{itemize}
+\item The very first way to contribute is to use \ident{zinc} and to report any bug or
+problem you may experiment. Of course, if you propose a correction or a patch, your
+report will be easer to take into account.
+\item The second way to contribute is by commenting and proposing enhancement to this
+reference manual. As it has been written by french native writers, native english
+writers may really help in making this document easier to read. If you really
+feel ambitious, you may even try to write a tutorial, but that is a real challenge!
+\item The third way to contribute (and may be the funniest way) is to enriche the set
+of small demos (see chapter \conceptref{Other resources provided by the widget}{otherresources}).
+Feel free to send us your productions. They may be simple but demonstrative or more complex.
+It is up to you! They will be integrated in the next release of \ident{zinc} if they are
+worth it.
+\end{itemize}
 
 
 \concept{options}
@@ -306,8 +368,10 @@ and slightly corrected by Christophe Mertz and others.
 
 The \ident{zinc} command creates a new \ident{zinc} widget, the general form is
 \begin{quotation}
-  {\tt zinc pathname ?options?}
+  {\tt\large zinc pathname ?options?}\\
+  {\tt\large \$mainwindow->{\bf zinc}(?option=>value?, ..., ?option=>value?);}
 \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
@@ -434,7 +498,7 @@ describes the use of groups)
   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.
+  10 nautic miles. The default value is AtcSymbol19 (see \conceptref{Resources}{otherresources}).
 \end{blockindent}
 
 \option{maptextfont}{mapTextFont}{MapTextFont}
@@ -561,9 +625,69 @@ describes the use of groups)
 \concept{coordinates}
 \chapter{Groups, Display List and Transformations}
 
-la liaison groupe transformation
-l'empilage des groupes et la composition de transfo
-coordonnées du top group
+Groups items are very powerful objects in \ident{zinc}. They have many uses in
+\ident{zinc} and we will describe them in this chapter. The main usages are:
+\itemize
+\item to apply them transformation (translation, rotation or scaling)
+\item appl
+
+\section{The root group 1}
+When creating an other item
+(such as an \objectref{track}, a \objectref{rectangle}, or a \objectref{curve}) it is
+always put inside a group. Only the root group, the group 1, is not explicitly created
+in a group; in fact it is created jointly with the \ident{zinc} widget, and by convention,
+the group of group 1 is in the group 1 itself. It is not possible to change the
+group of the root group 1.
+
+\section{Priority and display list}
+
+Groups and the items  \ident{-priority} attributes are sued together for ordering the order
+in which objects are displayed. The algorithm is the following :
+\begin{itemize}
+\item{rule 1} The drawing starts from the root group 1
+\item{rule 2} Inside a group, items with the lowest priority are drawn
+  below those with the highest priority.
+\item{rule 3} Inside a group, when items have the same priority, the items are
+  displayed according to their creation order (first created are below last created)
+\item{rule 4} If one of the item of group A is a group B, every items inside the group B are displayed
+ according to the rules 2 and 3 during the display of the group B.
+ That means that a group is always entirely drawn before treating a sibling (having priority).
+\end{itemize}
+
+To change the priority of an item you can use the following commands: \cmdref{raise}, \cmdref{lower}, or \cmdref{itemconfigure} with the attribute \ident{-priority}.
+
+\section{Transformation and groups}
+
+Items grouped together inside a same group can be transformed together. By translating a group
+you translate every items contained in this group. This also apply to items included in sub-groups
+of the translated group. In fact the transformation is recursively applied to all children of
+the transformated group.
+
+However, every object have the attributes \ident{-composescale} and \ident{-composerotation}. These attributes
+are defaulted to \ident{true}. If set to \ident{false} a transformation (respectively a \cmdref{scale} and \cmdref{rotate} to its group will not be applied to the item.
+
+For converting coordinates between two coordinates systems, (i.e. between two groups) you must use the \cmdref{transform} command. For being able to convert to/from the device coordinate, the only way to proceed is to use the \cmdref{transform} comman to/from a group having the same coordinate system as the device coordinate. That is why {\bf it is highly recommended not to apply transforms to the root group 1}. This garantee that the coordinate system of group 1 is always equivalent to the device coordinates (except for a translation depending on the toplevel window position).
+
+\section{Attributes propagated to the group children}
+
+The following attributes are propagated to the group children:
+\begin{itemize}
+\item\ident{-sensitive} : the sensitivity (to keyboards or mouse event) can be set at the group level,
+\item\ident{-visible} : the visibility  can be set at the group level,
+\item\ident{-alpha} : the alphablending (i.e. the transparency) can be set at the group level. However this will work only if the \ident{zinc} widget support the openGL rendering.
+\end{itemize}
+
+\section{Clipping and groups}
+
+All the items inside a group can be clipped with one of the item (the ``clipper'') of the group. The clipper item must be of the following type: \objectref{rectangle}, \objectref{curve}, \objectref{bezier}, \objectref{arc}. XXX TBC! As items \objectref{curve} can have multiple contours (i.e. with hole(s) or made of disjoint parts) this allows the design of some objects very trickky or weird to implement with other widgets or toolkits.   
+
+\section{Other functions related to groups}
+
+A group may be \attributeref{atomic}. This means that the group will catch and treat events normally caught by the group children. The typical use is for binding the same callbacks to many items composing a group. As \attributeref{atomic} is an attribute, it may be modified dynamically, thus modifying the group comportment.
+
+A group may be cloned with the \cmdref{clone} command. This will clone the group and all its children.
+
+Finally, a group may be deleted as a whole with the \cmdref{remove} command. However, it is also possible to delete only a child, by applying the \cmdref{remove} command directly to the child.
 
 
 \concept{tagOrId}
@@ -685,8 +809,8 @@ reference) and all list parameters are given as array references.
   \begin{description}
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag above tagOrId ?inGroup? ?recursive?\\
-          \$zinc->{\bf addtag}(tag, 'above', tagOrId, ?inGroup?, ?recursive?);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, '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
@@ -698,8 +822,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag all ?inGroup? ?recursive?\\
-          \$zinc->{\bf addtag}(tag, 'all', tagOrId, ?inGroup?, ?recursive?);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, 'all', tagOrId, ?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
@@ -707,8 +831,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag atpriority priority ?inGroup? ?recursive?\\
-          \$zinc->{\bf addtag}(tag, 'atpriority', priority, ?inGroup?, ?recursive?);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, '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
@@ -716,8 +840,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag below tagOrId ?inGroup? ?recursive?\\
-          \$zinc->{\bf addtag}(tag, 'below', tagOrId, ?inGroup?, ?recursive?);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, '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
@@ -729,8 +853,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag closest x y ?halo? ?startItem?\\
-          \$zinc->{\bf addtag}(tag, 'closest', x, y, ?halo?, ?startItem?);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, 'closest', x, y, ?halo?, ?startItem?);\\
+        }}
     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
@@ -742,8 +866,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag enclosed xo yo xc yc\\
-          \$zinc->{\bf addtag}(tag, 'enclosed', xo, yo, xc, yc);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, '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
@@ -756,8 +880,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag overlapping xo yo xc yc\\
-          \$zinc->{\bf addtag}(tag, 'overlapping', xo, yo, xc, yc);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, '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
@@ -766,8 +890,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag withtag tagOrId ?inGroup? ?recursive?\\
-          \$zinc->{\bf addtag}(tag, 'withtag', tagOrId, ?inGroup?, ?recursive?);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, '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
@@ -775,8 +899,8 @@ reference) and all list parameters are given as array references.
 
   \item{\bigskip
         {\tt\large pathname {\bf addtag} tag withtype type ?inGroup? ?recursive?\\
-          \$zinc->{\bf addtag}(tag, 'withtype', tagOrId, ?inGroup?, ?recursive?);
-          \smallskip}}
+          \$zinc->{\bf addtag}(tag, 'withtype', tagOrId, ?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
@@ -1018,15 +1142,15 @@ reference) and all list parameters are given as array references.
   \begin{description}
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId contourIndex\\
-          @coords = \$zinc->{\bf coords}(tagOrId, contourIndex);
-          \smallskip}}
+          @coords = \$zinc->{\bf coords}(tagOrId, contourIndex);\\
+        }}
     Get all coordinates of contour at contourIndex. All items can answer if
     contourIndex is zero. Curves can handle other contours.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId contourIndex coordList\\
-          \$zinc->{\bf coords}(tagOrId, contourIndex, coordList);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, contourIndex, coordList);\\
+        }}
     Set all coordinates of contour at contourIndex. All items can do it if
     contourIndex is zero.  Curves can handle other contours.
     For groups, icons, texts, windows, tabulars, reticles, tracks,
@@ -1036,8 +1160,8 @@ reference) and all list parameters are given as array references.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId contourIndex coordIndex\\
-          @(\$x, \$y) = \$zinc->{\bf coords}(tagOrId, contourIndex, coordIndex);
-          \smallskip}}
+          @(\$x, \$y) = \$zinc->{\bf coords}(tagOrId, contourIndex, coordIndex);\\
+         }}
     Get coordinate at coordIndex in contour at contourIndex. All items can answer if
     contourIndex is zero. Curves can handle other contours.  For groups, icons, texts,
     windows, tabulars, reticles, tracks, waypoints, coordIndex must be zero.
@@ -1045,8 +1169,8 @@ reference) and all list parameters are given as array references.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId contourIndex coordIndex coordList\\
-          \$zinc->{\bf coords}(tagOrId, contourIndex, coordIndex, coordList);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, contourIndex, coordIndex, coordList);\\
+        }}
     Set coordinate at coordIndex in contour at contourIndex. All items can do it
     if contourIndex is zero.  Curves can handle other contours. For groups, icons, texts,
     windows, tabulars, reticles, tracks, waypoints, coordIndex must be zero.
@@ -1054,22 +1178,22 @@ reference) and all list parameters are given as array references.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId remove contourIndex coordIndex\\
-          \$zinc->{\bf coords}(tagOrId, 'remove', contourIndex, coordIndex);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, 'remove', contourIndex, coordIndex);\\
+        }}
     Remove coordinate at coordIndex in contour at contourIndex. Can only be handled
     by beziers and curves. Only curves can handle contourIndex other than zero.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId add contourIndex coordList\\
-          \$zinc->{\bf coords}(tagOrId, 'add', contourIndex, coordList);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, 'add', contourIndex, coordList);\\
+        }}
     Add coordinates at the end of contour at contourIndex. Can only be handled by beziers
     and curves. Only curves can handle contourIndex other than zero.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId add contourIndex coordIndex coordList\\
-          \$zinc->{\bf coords}(tagOrId, 'add', contourIndex, coordIndex, coordList);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, 'add', contourIndex, coordIndex, coordList);\\
+        }}
     Add coordinates at coordIndex in contour at contourIndex. Can only be handled by beziers
     and curves. Only curves can handle contourIndex other than zero.
   \end{description}
@@ -1079,26 +1203,26 @@ reference) and all list parameters are given as array references.
   \begin{description}
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId\\
-          @coords = \$zinc->{\bf coords}(tagOrId);
-          \smallskip}}
+          @coords = \$zinc->{\bf coords}(tagOrId);\\
+        }}
     Get all coordinates of contour 0. See first form.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId coordList\\
-          \$zinc->{\bf coords}(tagOrId, coordList);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, coordList);\\
+        }}
     Set all coordinates of contour 0. See second form.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId remove coordIndex\\
-          \$zinc->{\bf coords}(tagOrId, 'remove', coordIndex);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, 'remove', coordIndex);\\
+        }}
     Remove coordinate at coordIndex in contour 0. See fifth form.
     
   \item{\bigskip
         {\tt\large pathname {\bf coords} tagOrId add coordList\\
-          \$zinc->{\bf coords}(tagOrId, 'add', coordList);
-          \smallskip}}
+          \$zinc->{\bf coords}(tagOrId, 'add', coordList);\\
+        }}
     Add coordinates at the end of contour 0. See sixth form.
   \end{description}
 \end{blockindent}
@@ -1727,14 +1851,16 @@ reference) and all list parameters are given as array references.
   The legal values are: {\tt left}, {\tt right}, {\tt center}.
 \end{blockindent}
 
-\attrtype{anchor}
+\attrtype{alignment}
+\begin{blockindent}
+  Specifies the horizontal alignment of an entity.
+  The legal values are: {\tt left}, {\tt right}, {\tt center}.
+\end{blockindent}
+
+\attrtype{alpha}
 \begin{blockindent}
-  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}.
+  Specifies the transparency of an item. The value must be an integer from
+  0 (fully transparent) to 100 (fully opaque).
 \end{blockindent}
 
 \attrtype{angle}
@@ -2180,6 +2306,16 @@ be set such as color, width, ticks... Its partName is \ident{speedvector}
 \end{itemize}
 \end{itemize}
 
+The following picture shows a simple \ident{track} with a label of 5 fields and 5 past positions. 
+
+\ifpdf
+  \includegraphics{trackexemple}
+\else
+\latexhtml{
+  \htmladdimg{trackexemple.png}
+  }
+\fi
+
 An other very important feature of \ident{track} is that \ident{zinc} offers an anti-overlap manager. This manager tries to avoid any overlap of tracks labels. It also avoids that the label overlap the speedvector. This manager is stable over time: there should be few cases where labels are moved to a very different position. This manager applies to all tracks included in a group (by default the group 1). It can be enabled/disabled with the attributes XXX. New labels positions are computed by the overlap  manager every time a track is moved, a track is created or destroyed and every time the \ident{zinc} widget is resized.  
 Due to software licence limitation, \ident{zinc} {\bf DO NOT include} the very last version of this anti-overlap manager. 
 
@@ -2194,7 +2330,7 @@ Applicable attributes for \ident{track} are:
   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
+\attribute{connectioncolor}{gradientcolor}{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 \ident{and} of this attribute and
@@ -2210,7 +2346,7 @@ Applicable attributes for \ident{track} are:
 \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
+\attribute{historycolor}{gradientcolor}{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}.}
@@ -2222,6 +2358,7 @@ Applicable attributes for \ident{track} are:
   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{labelconvergencestyle}{dimension}{XXX New. To be documented. The default value is ??.}
 \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.}
@@ -2233,13 +2370,14 @@ Applicable attributes for \ident{track} are:
   {\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{labelpreferedangle}{angle}{XXX New. To be documented. The default value is ??.}
 \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
+\attribute{leadercolor}{gradientcolor}{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 ""}.}
@@ -2254,7 +2392,7 @@ Applicable attributes for \ident{track} are:
   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
+\attribute{markercolor}{gradientcolor}{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 ""}.}
@@ -2275,7 +2413,7 @@ Applicable attributes for \ident{track} are:
 \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 track's speed vector. The
+\attribute{speedvectorcolor}{gradientcolor}{The color of the track's speed vector. The
   default value is the current value of the widget option \ident{-foreground}.}
 \attribute{speedvectormark}{boolean}{If set a small point is drawn at the end of
 the speed vector. The point is drawn with the speed vector color. The default is
@@ -2285,9 +2423,10 @@ the speed vector. The point is drawn with the speed vector color. The default is
   the item {\tt sensitive} attribute. The default value is {\tt true}. }
 \attribute{speedvectorticks}{boolean}{If set a mark is drawn at each minute position.
 The default is {\tt false}.}
+\attribute{speedvectorwidth}{width}{New. XXX To be documented. The default value is ??.}
 \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
+\attribute{symbolcolor}{gradientcolor}{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
@@ -2327,7 +2466,7 @@ Applicable attributes for \ident{waypoint} are:
   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
+\attribute{connectioncolor}{gradientcolor}{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 \ident{and} of this attribute and of the
@@ -2362,7 +2501,7 @@ Applicable attributes for \ident{waypoint} are:
 \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
+\attribute{leadercolor}{gradientcolor}{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 ""}.}
@@ -2377,7 +2516,7 @@ Applicable attributes for \ident{waypoint} are:
   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
+\attribute{markercolor}{gradientcolor}{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 ""}.}
@@ -2395,7 +2534,7 @@ Applicable attributes for \ident{waypoint} are:
   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
+\attribute{symbolcolor}{gradientcolor}{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
@@ -2454,7 +2593,7 @@ Applicable attributes for \ident{text} are:
   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,
+\attribute{color}{gradientcolor}{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
@@ -2504,7 +2643,7 @@ Applicable attributes for \ident{icon} are:
 
 \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.
+\attribute{color}{gradientcolor}{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}.}
@@ -2540,7 +2679,7 @@ Reticle items are used for XXX.
 
 Applicable attributes for \ident{reticle} are:
 
-\attribute{brightlinecolor}{color}{This is the color of the highlighted
+\attribute{brightlinecolor}{gradientcolor}{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
@@ -2551,7 +2690,7 @@ Applicable attributes for \ident{reticle} are:
   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)
+\attribute{linecolor}{gradientcolor}{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
@@ -2586,7 +2725,7 @@ Map items are used for XXX.
 
   Applicable attributes for \ident{map} are:
 
-\attribute{color}{color}{Specifies the color usedd to draw or fill the map. The
+\attribute{color}{gradientcolor}{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
@@ -2640,7 +2779,7 @@ Map items are used for XXX.
   value is {\tt false}.}
 \attribute{fillpattern}{bitmap}{Specifies the pattern to use when filling the
   item. The default value is {\tt ""}.}
-\attribute{linecolor}{color}{Specifies the color that will be used to draw
+\attribute{linecolor}{gradientcolor}{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
@@ -2709,7 +2848,7 @@ Map items are used for XXX.
 \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
+\attribute{linecolor}{gradientcolor}{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
@@ -2781,7 +2920,7 @@ Map items are used for XXX.
 \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
+\attribute{linecolor}{gradientcolor}{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
@@ -2793,7 +2932,7 @@ Map items are used for XXX.
 \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.
+\attribute{markercolor}{gradientcolor}{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}.}
@@ -2853,7 +2992,7 @@ Applicable attributes for \ident{bezier} are:
 \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
+\attribute{linecolor}{gradientcolor}{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
@@ -2968,6 +3107,11 @@ Applicable attributes for \ident{window} are:
   and texts as part of a MapInfo. The \ident{mapinfo} and \ident{videomap}
   commands are provided to create and manipulate the mapinfo objects.
   
+\begin{quotation}
+  {\tt\large zinc pathname ?options?}\\
+  {\tt\large \$mainwindow->{\bf zinc}(?option=>value?, ..., ?option=>value?);}
+\end{quotation}
+
 \mapinfocmd{name}{create}{}
 \begin{blockindent}
   Create a new empty map description. The new mapinfo object named {\tt name}.
@@ -3104,8 +3248,7 @@ waypoints, these bitmaps are named AtcSymbol1 to AtcSymbol22.
 \ifpdf
   \includegraphics{atcsymb}
 \else
-\latexhtml{%
-  \includegraphics{atcsymb.ps}}{%
+\latexhtml{
   \htmladdimg{atcsymb.png}
   }
 \fi
@@ -3117,8 +3260,7 @@ AlphaStipple0 being the most transparent.
 \ifpdf
   \includegraphics{alphastip}
 \else
-\latexhtml{%
-  \includegraphics{alphastip.ps}}{%
+\latexhtml{
   \htmladdimg{alphastip.png}
   }
 \fi
-- 
cgit v1.1

