aboutsummaryrefslogtreecommitdiff
path: root/doc/refman.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/refman.tex')
-rw-r--r--doc/refman.tex205
1 files changed, 184 insertions, 21 deletions
diff --git a/doc/refman.tex b/doc/refman.tex
index a7a09dc..fa87967 100644
--- a/doc/refman.tex
+++ b/doc/refman.tex
@@ -1,7 +1,7 @@
\documentclass[11pt,twoside,a4paper]{book}
%----------------------------------------------------------------------
-% $Revision$
+% $Revision: 1909 $
%
% TODO
@@ -17,7 +17,7 @@
%
%
-\newif\ifpdf
+\newif\jfpdf
\ifx\pdfoutput\undefined
\pdffalse % we are not running PDFLaTeX
\else
@@ -25,7 +25,7 @@
\pdftrue
\fi
-\ifpdf
+\jfpdf
\usepackage[pdftex,
colorlinks=true,
urlcolor=rltblue,
@@ -36,7 +36,7 @@
citecolor=webbrightgreen,
pdftitle={Zinc, an advanced scriptable Canvas.},
pdfauthor={Patrick Lecoanet, Christophe Mertz, Centre d'Étude de la Navigation Aérienne},
- pdfsubject={The 3.3.4 Reference Manual.},
+ pdfsubject={The 3.3.8 Reference Manual.},
pdfkeywords={tk tcl perl x11 canvas opengl script gui TkZinc},
pagebackref,
pdfpagemode=None,
@@ -195,7 +195,7 @@
\setlength{\marginparwidth}{20pt}
\setlength{\textwidth}{480pt}
-\title{Zinc, an advanced scriptable Canvas.\\The 3.3.4 Reference Manual.\\\small{[CENA technical Note NT03-532]} }
+\title{Zinc, an advanced scriptable Canvas.\\The 3.3.8 Reference Manual.\\\small{[CENA technical Note NT03-532]} }
\author{Patrick Lecoanet, Christophe Mertz}
\date{12 September 2006}
@@ -282,25 +282,181 @@ document, it is given first in Tcl/Tk idiom and then in Perl/Tk idiom.
This document is also referenced as CENA technical note NT03-532.
\section{Differences with previous versions}
+
+\subsection{Differences between 3.3.7 and 3.3.6 release}
+\begin{itemize}
+\item TrackItems have now a new attribute -speedvectorvisible (doc updated)
+\item Build depends change to support debian wheezy
+\item pdf generation corrected
+\end{itemize}
+
+\subsection{Differences between 3.3.6 and 3.3.5 release}
+\begin{itemize}
+\item Items of type window have a new attribute -windowtitle to retrieve and display any top-level window (ie any application) whose title matches the value of -windowtitle
+\item Damage support (ie OpenGL optimizations) can now be controlled by a new TkZinc attribute (-usedamage)
+\end{itemize}
+
+\subsection{Differences between 3.3.5 and 3.3.4 release}
+\begin{itemize}
+\item Fixed a core dump that occured following an error while configuring a connected item (occuring only via tksubject).
+\item Fixed the slow loading bug 71 and incorrect rendering of the text bug 67 in Windows/GL (reverted to the previous code).
+\item Fixed the blur of the text in GL (Linux). Revert to nearest filtering meaning no anti-aliasing.
+\item MouseWheel support under Windows bug 70.
+\item Map items honor the filled attribute in GL bug 69.
+\item Fixed an incorrect rendering of the selection (off by one) for text items.
+\item Introduced GL extension handling with GLEW.
+\item Capability to rotate the canvas via a texture.
+\end{itemize}
+
+\subsection{Differences between 3.3.4 and 3.3.3 release}
+\begin{itemize}
+\item Ported to Mac Os X native. But, the quartz version does not support stippling, clipping and as a side effect can't draw bitmap symbols. This is probably only a minor annoyance since the GL version should be fully functional and can be run without starting the X server.
+\item Started updating the small demos partly to simply and Tclisize the code and partly to 'enhance' some rather old and ugly displays.
+\item Fixed a weird bug under windows/GL causing the application to be throwed out after a short while because it was out of contexts.
+\item Close several bugzilla submitted bugs: 58, 63, 64, 60, 50.
+\item Added a collapsemotions command to control the Tk event queue behavior with motion events.
+\item Added a -catchevent attribute to all items in order to control their "transparency" to events.
+\item Update to the documentation.
+\item Better looking html documentation with a navigation sidebar.
+\item Merged requests and patches to enhance communication with the overlap manager.
+\item Removal of the explicit dependency on xlibmesa3 - dhslibdeps should be able to identify and list the shared library dependencies anyway IMHO.
+\item Add explicit path for tcl8.4 and tk8.4.
+\end{itemize}
-\subsection{Differences between 3.3.X and 3.3 release}
+\subsection{Differences between 3.3.3 and 3.3.2 release}
\begin{itemize}
-\item Items ot type window have a new attribute -windowtitle to
- retrieve and display any top-level window whose title matches the
- value of windowtitle
-\item Damage support can now be controlled by a new TkZinc option
- -usedamage
-\item TkZinc now supports MouseWheel events under Windows
+\item Added fixes to compile the Linux debian package
+\item Integrated a patch from D Pavet. This patch keep the angular position of the leader in sync when changing the leader position with -labeldx and -labeldy.
+\item Angles are seen as floating point numbers (they are still integers inside).
+\item Changed the text texture filtering to linear. This should provide better
+ looking text when scaled/rotated.
+\item Fix Bug 41 related to a badly updated connection between tracks or waypoints. The update was dependant on the connection ordrer between items. This bug induced a bad bounding box and thus a failure to correctly detect enter/leaves on the connection.
+\item Fix a text field drawing problem when alignment is center.
+\item Fix an annoying core dump with the gradients (bug 51).
+\item Labelformats field widths can be negative. This makes possible kerning adjustments.
+\item The transformation methods test if the tagOrId is not an empty string, if it is, it reports an error.
+\item Added three unicode points for the tendancy arrows in the GL renderer.
+\item Fixed (for good this time ?) the swap buffer problem. It showed up on Intel i865 which really swap buffers instead of copying them. In fact this is not really fixed, it can't work properly on all cards, the only secure option is build without the damage option. It is safe on NVIDIA though.
+\item The GLdamage option default has been set to NO for perl-tk
+\item Rearranged the Window destroy handling to make it more robust.
+\item Other minors fixes.
\end{itemize}
-\subsection{Differences between 3.3 and 3.2.97 release}
-This release has been mainly focused on producing a stable code
-base that compile and run on all three supported platforms with
-as little effort as possible.
+\subsection{Differences between 3.3.2 and 3.3.1 release}
+\begin{itemize}
+\item Updated Python binding and new demos added
+\item python :Updated Python binding and new demos added
+\item python :No more need to call explicitely the function havetkzinc to load the library ELF tkzinc. On peut créer un objet Zinc avec ou sans conteneur.
+\item python :A Zinc object can be created with or without container object. If master arg is 0, a new object Tkinter.Frame is created and the object Zinc is inserted on.
+\item python :Add Zinc.Zinc.addtagancestors
+\item python :Del Zinc.Zinc.addtagatpoint ( not anymore in specifications of Zinc API )
+\item python :Zinc.Zinc.addtag closest can take a new arg : recursive
+\item python :Zinc.Zinc.addtag atpriority can take a arg tagOrId which begin root of tree where function act.
+\item python :Zinc.Zinc.addtag overlapping and addtagenclosed can take 2 new optional params : inGroup et recursive
+\item python :addtagwithtype can take one new optional param tagOrId
+\item python :some docstrings for public methods of Zinc.Zinc
+\item python :Zinc.Zinc.findatpoint becomes Zinc.Zinc.findclosest
+\item python :Fix Zinc.Zinc.hasfields
+\item python :Del Zinc.Zinc.hasparts ( not supported )
+\item python :Add Zinc.ZincItem.bbox Zinc.Zinc.findancestors Zinc.Zinc.contours Zinc.Zinc.dchars Zinc.index Zinc.hastag Zinc.insert Zinc.numparts Zinc.postscript vertexat Zinc.tset Zinc.tapply Zinc.tcompose Zinc.skew Zinc.smooth Zinc.select
+\item python :Fix findoverlapping : options ingroup et recursive
+\item python :Fix Zinc.scale Zinc.cget Zinc.configure Zinc.translate like in specs
+\item python :New attribut Zinc.Zinc.version return version of Zinc
+\item python :New main : display a window wich show version number
+\item python :ZincException Class added for generate Zinc exception (Not more TclError Later)
+\item python :ZincItem.getGroup return Group Item which is the parent of the ZincItem's instance
+\item python :Fix ZincItem.scale ZincItem.rotate and ZincItem.translate to run with Zinc.Zinc Objects
+\item python :Add ZincItem.coords method because attribut accessor dont permit all possible invocations (for exemple Cure Item we can manipulate multi contours)
+\item python :In Group getGroup method has been overwrited to treat the root group case
+\item python :In Curve constructor accepts a option contours which is a list of lists of coords defining extended contours
+\item python :selfo deprecated. Use now self.tk.call
+\item python :Add Mapinfo.duplicate which return a clone of the Mapinfo instance
+\item python :Add Mapinfo.addsymbol Mapinfo.count Mapinfo.get Mapinfo.replace Mapinfo.remove
+\item python :Add de Videomap.ids, class method which return maps from the file
+\item python :add param backwardcompatibility to Zinc.Zinc constructor. If it is set, the widget
+ use old format of currentpart and configure
+\item python :havetkzinc doesnt return version number in some cases
+\item python :Add classes Colors AxialGradientColor RadialGradientColor ConicalGradientColor,
+ color's handler classes
+\item python :bbox doesnt return values
+\item python :Zinc.Zinc.itemconfigure doesnt work. the syntax of tk.call is different of then we must deference list
+\item python :Zinc.Zinc.tget not implemented
+\item python :Add Zinc.ZINCNOPART
+\item python :Add Zinc.ZincItem.transform Zinc.ZincItem.tget Zinc.ZincItem.tsave Zinc.ZincItem.trestore Zinc.ZincItem.tset Zinc.ZincItem.treset
+\item python :library Tkzinc load use now tcl require system.
+\item python :autopath environment variable allows to change autoset value
+\item python :return miss in some Zinc.methods
+\item python :type of return of currentpart must be string
+\item python :ZINCNOPART bad value
+
+\item In Perl, when doing an itemcget or itemconfigure on an image, the returned value is now the image object not its name. This should be far more useful.
+\item Fixed a bug causing a segv when a gradient is specified outside an item bbox.
+\item Added the new C++ binding contributed by Intuilab.
+\item Exported ZincObjCmd to support the new C++ wrapper
+\item Switched to the native GLU tesselator instead of the builtin. Removed the builtin code.
+\item Merged new Postscript emitting code (still under developpement).
+\item Added a new track attribute -historywidth to separate the width of the history points from the width of the main symbol.
+\item Extensive reformatting to suppress tabs which results in inaccurate indenting depending on the editor used.
+\item Suppressed the use of the unused attribute to suppress warnings on unused attributes. It has raised several incompatibilities and
+ should be dealed with on the command line (gcc).
+\item Corrected a trace left by thick label borders under GL.
+\item Added a tcl script to automate the production of the code under Windows/VC.
+\item A new packager build using Wix is available to install for Active Tcl/Perl/Python.
+\end{itemize}
-The only functional change is the integration of the fieldbbox
-command into the bbox command.
+\subsection{Differences between 3.3.1 and 3.3.0 release}
+\begin{itemize}
+\item All the ATC specific code in now optional. To remove it add --enable-atc=no to the configure invocation. In Perl you have
+ to say perl Makefile.PL with-atc=no.
+\item Changed the method used to position the label wrt the track position. Now regarless of its shape and its angular position,
+ the label is maintained at the requested distance.
+\item Corrected a nasty memory leak in the Curve geometry management. It affected only the simple curves, convex with only one contour. This bug might be the source of some performance problems observed lately.
+\item Debug.pm
+ - built code correctly manages transformations.
+ - the transformation matrix can be displayed.
+ - transformation primitives parameters can be displayed and changed.
+ - added a new entry in the control bar to display the X cursor device coordinates.
+ - added the -expandTagsField option to configure the tags display in the attributes window.
+\end{itemize}
+\subsection{Differences between 3.3.0 and 3.2.97 release}
+\begin{itemize}
+\item Reworked the X11 arc handling code in order to fix bugs and improve coherence between X11 and openGL.
+\item Reworked once more the GL init code to cope with Windows.
+\item Many various bug fixes.
+\item Fixed a problem in GL init code which prevented zinc from working with Mesa.
+\item A (hopefully) more useful warning is emitted when openGL rendering is not good enough (most often 24 bits buffer or stencil not available).
+\item Tweaking and bending the openGL init code to make it work better.
+\item Changed the group picking code to enable correct picking with a complex clipping shape.
+\item Fixed the font loading code when compiling for perl 800. The error prevented the correct encoding of codes > 127.
+\item Fixed processing of extended gradient syntax (vector based specification) which was completly wrong for axial gradients.
+\item Fixed some other minor bugs in gradient structure initialisation which led to gradient fill extending outside the item boundary.
+\item Improved the two README to clarify how to compile the two possible distributions (cpan or full distrib).
+\item Fixed the Perl compilation for MacOS.
+\item Fixed the crash when closing a TkZinc on MacOS OpenGL.
+\item Fixed the coredump due to a bug in the field text handling.
+\item Updated the doc.
+\item Suppressed the fieldbbox command. It is available when calling
+ the bbox command with the -field and -label options.
+\item Fixed a nasty openGL/Windows redraw bug when opening a window.
+\item GL contexts are destoyed when no longer needed.
+\item Fixed Enter/leave emission to match the Canvas (and better).
+\item Slightly rearranged the init sequence for openGL. This will ensure that render will be reset has soon has possible if GL is not there. It will stayset if we discover later that GL is not available. This will fix a rather bewildering situation when using images: The image is created for GL, then all of a sudden accessed in an X11 context.
+\item Bug fixes. These should have boosted the stability a lot.
+\item A new Tclobj type "attribute" is used to cache the attribute lookup from one command invocation to the other. This can speed up the code slightly (or more). Available only for Tcl.
+\item Text rendering in text items should be better quality.
+\item Fixed the scrollbar protocol to work with all versions of Perl/Tk and Tcl.
+\item The "new" tk option configuration mecanism is used where possible (not with Perl/TK 800).
+\item Only one tesselator is allocated regardless of how many TkZinc widgets an application use. This potentially can bring resource savings for applications using many TkZincs with OpenGL.
+\item TkZinc perl works under Windows (Perl/Tk 804 only).
+\item Font loading under GL has been rewritten it is now as fast as before and still utf8 based.
+\item coords has (yet) been modified (fixed) so that items which exhibit only one meaningful coordinate will return this coordinate as a flat list instead of as a list of lists.
+\item Redisplaying after a move or a resize even when clipped by the display border is now rock stable. This has been achieved by a full redisplay when moving/resizing.
+\item An msi package Tcl/Tk and Perl/Tk on Windows.
+\item makefile for building for Tcl with vc++ has been updated.
+\item Several fixes in Makefile.PL (pthreads, INC augmented,
+ Windows port)
+\end{itemize}
\subsection{Differences between 3.2.97 and 3.2.6 release}
\begin{itemize}
@@ -361,7 +517,6 @@ and ``fillrule''. Many Perl/Tk demos have been ported to Tcl/Tk.
format documentation has been enhanced.
\end{itemize}
-
\section{Where can I find TkZinc and documentation ?}
\ident{TkZinc} is available as source in tar.gz format or as Debian or RedHat/Mandrake
@@ -2212,10 +2367,10 @@ false.
various {\tt args}. The items are sorted in drawing order, topmost first. For example:\\
\begin{verbatim}
# to get the item under the mouse cursor:
- $item = $zinc->find('withtag', 'current');
+ ($item) = $zinc->find('withtag', 'current');
# to get the closest item of a point:
- $closest = $zinc->find('closest', $x, $y);
+ ($closest) = $zinc->find('closest', $x, $y);
# to get direct children of an atomic group with a pathTag:
@children = $zinc->find('withtag', ".atomicGroup.");
@@ -3148,6 +3303,9 @@ item \attributeref{track}{sensitive} attribute. The default value is {\tt true}.
\attribute{track}{speedvectorticks}{boolean}{If set a mark is drawn at each minute
position. The default is {\tt false}. Not yet available without openGL}
+\attribute{track}{speedvectorvisible}{boolean}{Allows to define speedvector's visibility. The default value is
+{\tt 1}.}
+
\attribute{track}{speedvectorwidth}{dimension}{New. XXX To be documented. The default value is
{\tt 1}.}
@@ -4562,6 +4720,11 @@ The following figure shows the effect of fillrule value on curves with multiple
\end{blockindent}
+\attrtype{integer}
+\begin{blockindent}
+ This is the description of a standard Tcl integer value.
+\end{blockindent}
+
\attrtype{item}
\begin{blockindent}
Describes an item id or a tag. If a tag is provided an item will be searched for the tag