From 22b3f683453a64443ded4ce655c3cf5cd25761c0 Mon Sep 17 00:00:00 2001 From: lecoanet Date: Wed, 27 Sep 2000 14:45:09 +0000 Subject: *** empty log message *** --- debian/changelog | 9 + debian/copyright | 5 +- debian/rules | 14 +- doc/refman.tex | 3301 +++++++++++++++++++++++++++++--------------------- sandbox/contours.tcl | 1 - sandbox/zinc.tcl | 21 +- 6 files changed, 1925 insertions(+), 1426 deletions(-) diff --git a/debian/changelog b/debian/changelog index 71b0fd8..869679e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +zinc-tk (3.1.19) unstable; urgency=low + + * Plus de doc. + + * Ajout de deux attributs à l'item Track afin de permettre une colorisation + différenciée des positions passée et de la position courante. + + -- Patrick Lecoanet Wed, 27 Sep 2000 10:58:01 +0200 + zinc-tk (3.1.18) unstable; urgency=low * Correction de bugs: fuite de mémoire, segmentation au démarrage diff --git a/debian/copyright b/debian/copyright index c441be1..003cc9c 100644 --- a/debian/copyright +++ b/debian/copyright @@ -3,7 +3,7 @@ Wed, 25 Feb 1998 14:11:43 +0100. Copyright: - Copyright (c) 1993 - 1999 CENA, Patrick Lecoanet -- + Copyright (c) 1993 - 2000 CENA, Patrick Lecoanet -- This code is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -17,7 +17,8 @@ Copyright: You should have received a copy of the GNU Library General Public License along with this code; if not, write to the Free - Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA. GPC is under the following copyright: diff --git a/debian/rules b/debian/rules index 223ba81..c26b58a 100755 --- a/debian/rules +++ b/debian/rules @@ -49,14 +49,24 @@ binary-arch: checkroot build install -m644 Perl/t/zinc.t debian/tmp/usr/share/doc/zinc-perl/examples install -m644 debian/copyright debian/tmp/usr/share/doc/zinc-perl install -m644 debian/changelog debian/tmp/usr/share/doc/zinc-perl + gzip -9 debian/tmp/usr/share/doc/zinc-perl/changelog + find debian/tmp/usr/lib/perl5 -type f -name .packlist | xargs rm -f install -m644 Python/Zinc.py debian/tmp/usr/lib/python1.5/site-packages/ install -m644 debian/copyright debian/tmp/usr/share/doc/zinc-python install -m644 debian/changelog debian/tmp/usr/share/doc/zinc-python + gzip -9 debian/tmp/usr/share/doc/zinc-python/changelog - debstd -m -c doc/muwr.tex doc/refman.tex doc/refman.ps + strip --strip-unneeded debian/tmp/usr/lib/tkzinc3.1.so + strip --strip-unneeded debian/tmp/usr/lib/libom.so + strip --strip-unneeded debian/tmp/usr/lib/libgpc.so + strip --strip-unneeded debian/tmp/usr/lib/libptkzinc3.1.so + + debstd -m -c -s doc/muwr.tex doc/refman.tex doc/refman.ps + dh_compress -Xrefman.ps + dh_md5sums -rm -Rf debian/tmp/usr/share/doc/zinc-perl debian/tmp/usr/share/doc/zinc-python debian/tmp/usr/lib/perl5 debian/tmp/usr/lib/python1.5 - dpkg-gencontrol -pzinc-tk + dpkg-gencontrol -isp -pzinc-tk chown -R root.root debian/tmp chmod -R go=rX debian/tmp dpkg --build debian/tmp .. 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 diff --git a/sandbox/contours.tcl b/sandbox/contours.tcl index c4e3466..02a6438 100644 --- a/sandbox/contours.tcl +++ b/sandbox/contours.tcl @@ -12,7 +12,6 @@ pack .r -expand t -fill both .r scale $top 1 -1 #.r configure -drawbboxes t set view [.r add group $top -tags controls] - #set poly [.r add curve $view "50 -150 300 -150 300 -300 50 -300 50 -150" \ # -closed t -fillcolor tan] set poly [.r add curve $view "50 -150 50 -300 300 -300 300 -150 50 -150" \ diff --git a/sandbox/zinc.tcl b/sandbox/zinc.tcl index bcb6c69..b47a702 100644 --- a/sandbox/zinc.tcl +++ b/sandbox/zinc.tcl @@ -69,9 +69,9 @@ proc updateTransform {zinc} { global top $zinc treset $top - $zinc scale $top 1 -1 $zinc translate $top [expr -$centerX] [expr -$centerY] $zinc scale $top $scale $scale + $zinc scale $top 1 -1 $zinc translate $top [expr $zincWidth/2] [expr $zincHeight/2] } @@ -111,20 +111,23 @@ set track [.r add track $view 6 -tags track -leaderanchors "|0|0"] set track2 [.r add track $view 4 -speedvector "-20 0" \ -symbolcolor salmon -speedvectorcolor salmon -leadercolor salmon \ - -labeldistance 20 -leaderanchors "%30x30"] + -labeldx -20 -labeldy 20 -leaderanchors "%30x30" \ + -historycolor MistyRose -lastasfirst t ] .r itemconfigure $track2 -labelformat "a3f110+0+0 a3f110>0^0 a3f110^0>0 a3f110>2>0" .r itemconfigure $track2 0 -filled 1 -backcolor tan -text "BAW452" .r itemconfigure $track2 1 -filled 1 -backcolor wheat -text "450" .r itemconfigure $track2 2 -filled 1 -backcolor wheat -text "KMC" #.r itemconfigure $track2 3 -filled 1 -backcolor wheat -text "" .r itemconfigure $track2 -connecteditem $track -connectioncolor green -.r itemconfigure $track2 -position "1 1" -.r itemconfigure $track2 -position "-10 10" -.r itemconfigure $track2 -position "-20 20" -.r itemconfigure $track2 -position "-30 30" -.r itemconfigure $track2 -position "-40 40" -.r itemconfigure $track2 -position "-50 50" +.r itemconfigure $track2 -position "10 0" +.r itemconfigure $track2 -position "-20 10" +.r itemconfigure $track2 -position "-30 20" +.r itemconfigure $track2 -position "-40 30" +.r itemconfigure $track2 -position "-50 40" .r itemconfigure $track2 -position "-60 50" +.r itemconfigure $track2 -position "-70 50" +.r itemconfigure $track2 -position "-80 50" +.r itemconfigure $track2 -position "-90 50" # # WAY POINTS @@ -222,7 +225,7 @@ proc borders {onoff} { puts "$part" set contour noborder if { $onoff == "on" } { - set contour "contour" + set contour "contour oblique" } if { [regexp {^[0-9]+$} $part] } { .r itemconfigure current $part -border $contour -- cgit v1.1