\documentclass[11pt,twoside]{report} \usepackage{a4wide} \usepackage{html} \usepackage{makeidx} \usepackage{graphicx} \newcommand{\cident}[1] {% {\tt #1}} \newcommand{\code}[1] {% {\tt #1}} \newcommand{\ident}[1] {% {\tt\large #1}} \newcommand{\option}[3]{% \label{opt:#1} \index{#1} \htmlrule[WIDTH="300" left] \begin{tabular}{rl} Command line switch: & \ident{-#1} \\ Database name: & \ident{#2} \\ Database class: & \ident{#3} \\ \end{tabular}} \newcommand{\command}[3]{% \label{cmd:#2} \index{#2} \htmlrule[WIDTH="300" left] {\tt\large #1 {\bf #2} #3}} \newcommand{\zinccmd}[2]{% \command{pathname}{#1}{#2}} \newcommand{\mapinfocmd}[3]{% \label{mpcmd:#2} \index{#2} \htmlrule[WIDTH="300" left] {\tt\large mapinfo #1 {\bf #2} #3}} \newcommand{\attribute}[2]{% \label{attr:#1} \index{#1} \htmlrule[WIDTH="300" left] {\tt {\bf -#1} #2} \vspace{-2\parskip}} \newcommand{\available}[1]{% \hyperref[page]{\ident{#1}}{\ident{#1} (}{)}{obj:#1}} \newcommand{\optref}[1]{% \hyperref[page]{\ident{#1}}{\ident{#1} (}{)}{opt:#1} } \newcommand{\cmdref}[1]{% \hyperref[page]{\ident{#1}}{\ident{#1} (}{)}{cmd:#1} } \newcommand{\attrref}[1]{% \hyperref[page]{\ident{-#1}}{\ident{-#1} (}{)}{attr:#1} } \newcommand{\object}[1]{% \label{obj:#1} } \newcommand{\concept}[1]{% \label{concept:#1} } \newcommand{\objectref}[1]{% \hyperref[page]{\ident{#1}}{\ident{#1} (}{)}{obj:#1} } \newcommand{\conceptref}[2]{% \hyperref[page]{#1}{#1 (page }{)}{concept:#2} } \newenvironment{blockindent}{\begin{quotation}}{\end{quotation}\vspace{\parskip}} \makeindex \parindent 0cm \parskip 0.2cm \title{Zinc reference manual\\Version 3.0} \author{Patrick Lecoanet} \date{7 Feb 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. \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} \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} \zinccmd{smooth}{coordList} \begin{blockindent} \end{blockindent} \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} \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. \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} \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} \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} \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} \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} \zinccmd{verticeat}{tagOrId x y} \begin{blockindent} \end{blockindent} \chapter{Attributes description} \attribute{alignment}{alignment} \begin{blockindent} Specifies the horizontal alignment of an entity. The legal values are: left, right, center. \end{blockindent} \attribute{anchor}{anchor} \begin{blockindent} To be written \end{blockindent} \attribute{atomic}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{autoalignment}{autoAlignSpec} \begin{blockindent} To be written \end{blockindent} \attribute{backcolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{bezier}{boolean} \begin{blockindent} Select whether the points are interpreted as bezier controls or simple polygonal vertices. \end{blockindent} \attribute{border}{edges} \begin{blockindent} To be written \end{blockindent} \attribute{bordercolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{brightlinecolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{brightlinestyle}{lineStyle} \begin{blockindent} To be written \end{blockindent} \attribute{capstyle}{} \begin{blockindent} To be written \end{blockindent} \attribute{circlehistory}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{clip}{item} \begin{blockindent} To be written \end{blockindent} \attribute{closed}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{color}{color} \begin{blockindent} To be written \end{blockindent} \attribute{composerotation}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{composescale}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{connecteditem}{item} \begin{blockindent} To be written \end{blockindent} \attribute{connectionanchor}{anchor} \begin{blockindent} To be written \end{blockindent} \attribute{connectioncolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{connectionsensitive}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{connectionstyle}{lineStyle} \begin{blockindent} To be written \end{blockindent} \attribute{connectionwidth}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{extent}{integer} \begin{blockindent} To be written \end{blockindent} \attribute{fillcolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{filled}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{filledhistory}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{filledmarker}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{fillpattern}{bitmapName} \begin{blockindent} To be written \end{blockindent} \attribute{firstradius}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{font}{fontName} \begin{blockindent} To be written \end{blockindent} \attribute{frozenlabel}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{gradient}{} \begin{blockindent} To be written \end{blockindent} \attribute{image}{imageName} \begin{blockindent} To be written \end{blockindent} \attribute{joinstyle}{} \begin{blockindent} To be written \end{blockindent} \attribute{height}{} \begin{blockindent} To be written \end{blockindent} \attribute{labelanchor}{anchor} \begin{blockindent} To be written \end{blockindent} \attribute{labelangle}{number} \begin{blockindent} To be written \end{blockindent} \attribute{labeldistance}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{labeldx}{number} \begin{blockindent} To be written \end{blockindent} \attribute{labeldy}{number} \begin{blockindent} To be written \end{blockindent} \attribute{labelformat}{labelFormat} \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. \\ 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{leaderanchors}{leaderanchors} \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. \end{blockindent} \attribute{leadercolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{leaderfirstend}{} \begin{blockindent} To be written \end{blockindent} \attribute{leaderlastend}{} \begin{blockindent} To be written \end{blockindent} \attribute{leadersensitive}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{leadershape}{lineShape} \begin{blockindent} To be written \end{blockindent} \attribute{leaderstyle}{lineStyle} \begin{blockindent} To be written \end{blockindent} \attribute{leaderwidth}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{linecolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{firstend}{lineEnd} \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. \end{blockindent} \attribute{lastend}{lineEnd} \begin{blockindent} Describe the shape of the arrow at the end of a path. If an empty list is given, there is no arrow. \end{blockindent} \attribute{linepattern}{bitmapName} \begin{blockindent} To be written \end{blockindent} \attribute{linestyle}{lineStyle} \begin{blockindent} To be written \end{blockindent} \attribute{linewidth}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{lockedom}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{mapinfo}{mapInfoName} \begin{blockindent} To be written \end{blockindent} \attribute{marker}{bitmapName} \begin{blockindent} To be written \end{blockindent} \attribute{markercolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{markerfillpattern}{bitmapName} \begin{blockindent} To be written \end{blockindent} \attribute{markersize}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{markerstyle}{lineStyle} \begin{blockindent} To be written \end{blockindent} \attribute{mask}{bitmapName} \begin{blockindent} To be written \end{blockindent} \attribute{mixedhistory}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{numfields}{} \begin{blockindent} To be written \end{blockindent} \attribute{numcircles}{integer} \begin{blockindent} To be written \end{blockindent} \attribute{overstriked}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{period}{integer} \begin{blockindent} To be written \end{blockindent} \attribute{pieslice}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{position}{position} \begin{blockindent} To be written \end{blockindent} \attribute{priority}{integer} \begin{blockindent} To be written \end{blockindent} \attribute{relief}{relief} \begin{blockindent} To be written \end{blockindent} \attribute{reliefthickness}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{sensitive}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{smoothed}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{spacing}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{speedvector}{position} \begin{blockindent} To be written \end{blockindent} \attribute{speedvectorcolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{speedvectorsensitive}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{startangle}{integer} \begin{blockindent} To be written \end{blockindent} \attribute{stepsize}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{symbol}{bitmapName} \begin{blockindent} To be written \end{blockindent} \attribute{symbolcolor}{color} \begin{blockindent} To be written \end{blockindent} \attribute{symbols}{bitmapNames} \begin{blockindent} To be written \end{blockindent} \attribute{symbolsensitive}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{tags}{tagList} \begin{blockindent} To be written \end{blockindent} \attribute{text}{string} \begin{blockindent} To be written \end{blockindent} \attribute{tile}{imageName} \begin{blockindent} To be written \end{blockindent} \attribute{underlined}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{visible}{boolean} \begin{blockindent} To be written \end{blockindent} \attribute{visiblehistorysize}{integer} \begin{blockindent} To be written \end{blockindent} \attribute{width}{dimension} \begin{blockindent} To be written \end{blockindent} \attribute{window}{windowId} \begin{blockindent} To be written \end{blockindent} \chapter{Labels, fields and label formats} \concept{label} \concept{labelformat} \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} \chapter{Item types} \object{items} This chapter introduces the item types that can be used in \ident{zinc}. \section{Group items} \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} \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} \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} \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} \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} \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} \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} \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} \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} \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} \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} \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} \section{Window items} \object{window} 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} \chapter{The \ident{mapinfo} command} \mapinfocmd{name}{create}{} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{mapInfoName}{delete}{} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{mapInfoName}{duplicate}{newName} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{name}{add}{type args} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{name}{count}{type} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{name}{get}{type index} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{name}{replace}{type index args} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{name}{remove}{type index} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{name}{scale}{factor} \begin{blockindent} To be written \end{blockindent} \mapinfocmd{name}{translate}{xAmount yAmount} \begin{blockindent} To be written \end{blockindent} \chapter{The \ident{videomap} command} \command{videomap}{ids}{fileName} \begin{blockindent} To be written \end{blockindent} \command{videomap}{load}{fileName index mapInfoName} \begin{blockindent} To be written \end{blockindent} \chapter{Other resources provided by the widget} \section{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. \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. \latexhtml{% \includegraphics{alphastip.ps}}{% \htmladdimg{alphastip.png} } \latex {\tolerance 2000 %allow somewhat looser lines. \hbadness 10000 } %don't complain about underfull lines. \tableofcontents \listoftables \listoffigures \printindex \label{interne:DernierePage} \end{document}