diff options
Diffstat (limited to 'Master/tlpkg/tlperl0/lib/Tk/Canvas.pod')
-rwxr-xr-x | Master/tlpkg/tlperl0/lib/Tk/Canvas.pod | 2393 |
1 files changed, 0 insertions, 2393 deletions
diff --git a/Master/tlpkg/tlperl0/lib/Tk/Canvas.pod b/Master/tlpkg/tlperl0/lib/Tk/Canvas.pod deleted file mode 100755 index 0f99036bb6c..00000000000 --- a/Master/tlpkg/tlperl0/lib/Tk/Canvas.pod +++ /dev/null @@ -1,2393 +0,0 @@ -# Copyright (c) 1992-1994 The Regents of the University of California. -# Copyright (c) 1994-1996 Sun Microsystems, Inc. -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -=head1 NAME - -Tk::Canvas - Create and manipulate Canvas widgets - -=for category Tk Widget Classes - -=head1 SYNOPSIS - -I<$canvas> = I<$parent>-E<gt>B<Canvas>(?I<options>?); - -=head1 STANDARD OPTIONS - -B<-background> B<-highlightthickness> B<-insertwidth> B<-state> -B<-borderwidth> B<-insertbackground> B<-relief> B<-tile> -B<-cursor> B<-insertborderwidth> B<-selectbackground> B<-takefocus> -B<-highlightbackground> B<-insertofftime> B<-selectborderwidth> B<-xscrollcommand> -B<-highlightcolor> B<-insertontime> B<-selectforeground> B<-yscrollcommand> - -=head1 WIDGET-SPECIFIC OPTIONS - -=over 4 - -=item Name: B<closeEnough> - -=item Class: B<CloseEnough> - -=item Switch: B<-closeenough> - -Specifies a floating-point value indicating how close the mouse cursor -must be to an item before it is considered to be ``inside'' the item. -Defaults to 1.0. - -=item Name: B<confine> - -=item Class: B<Confine> - -=item Switch: B<-confine> - -Specifies a boolean value that indicates whether or not it should be -allowable to set the canvas's view outside the region defined by the -B<scrollRegion> argument. -Defaults to true, which means that the view will -be constrained within the scroll region. - -=item Name: B<height> - -=item Class: B<Height> - -=item Switch: B<-height> - -Specifies a desired window height that the canvas widget should request from -its geometry manager. The value may be specified in any -of the forms described in the L<"COORDINATES"> section below. - -=item Name: B<scrollRegion> - -=item Class: B<ScrollRegion> - -=item Switch: B<-scrollregion> - -Specifies a list with four coordinates describing the left, top, right, and -bottom coordinates of a rectangular region. -This region is used for scrolling purposes and is considered to be -the boundary of the information in the canvas. -Each of the coordinates may be specified -in any of the forms given in the L<"COORDINATES"> section below. - -=item Name: B<state> - -=item Class: B<State> - -=item Switch: B<-state> - -Modifies the default state of the canvas where I<state> may be set to one of: -normal, disabled, or hidden. Individual canvas objects all have their own -state option, which overrides the default state. Many options can take -separate specifications such that the appearance of the item can be different -in different situations. The options that start with "active" control the -appearence when the mouse pointer is over it, while the option starting -with "disabled" controls the appearence when the state is disabled. - -=item Name: B<width> - -=item Class: B<width> - -=item Switch: B<-width> - -Specifies a desired window width that the canvas widget should request from -its geometry manager. The value may be specified in any -of the forms described in the L<"COORDINATES"> section below. - -=item Name: B<xScrollIncrement> - -=item Class: B<ScrollIncrement> - -=item Switch: B<-xscrollincrement> - -Specifies an increment for horizontal scrolling, in any of the usual forms -permitted for screen distances. If the value of this option is greater -than zero, the horizontal view in the window will be constrained so that -the canvas x coordinate at the left edge of the window is always an even -multiple of B<xScrollIncrement>; furthermore, the units for scrolling -(e.g., the change in view when the left and right arrows of a scrollbar -are selected) will also be B<xScrollIncrement>. If the value of -this option is less than or equal to zero, then horizontal scrolling -is unconstrained. - -=item Name: B<yScrollIncrement> - -=item Class: B<ScrollIncrement> - -=item Switch: B<-yscrollincrement> - -Specifies an increment for vertical scrolling, in any of the usual forms -permitted for screen distances. If the value of this option is greater -than zero, the vertical view in the window will be constrained so that -the canvas y coordinate at the top edge of the window is always an even -multiple of B<yScrollIncrement>; furthermore, the units for scrolling -(e.g., the change in view when the top and bottom arrows of a scrollbar -are selected) will also be B<yScrollIncrement>. If the value of -this option is less than or equal to zero, then vertical scrolling -is unconstrained. - -=back - -=head1 DESCRIPTION - -The B<Canvas> method creates a new window (given -by the $canvas argument) and makes it into a canvas widget. -Additional options, described above, may be specified on the -command line or in the option database -to configure aspects of the canvas such as its colors and 3-D relief. -The B<canvas> command returns its -$canvas argument. At the time this command is invoked, -there must not exist a window named $canvas, but -$canvas's parent must exist. - -Canvas widgets implement structured graphics. -A canvas displays any number of I<items>, which may be things like -rectangles, circles, lines, and text. -Items may be manipulated (e.g. moved or re-colored) and -L<callbacks|Tk::callbacks> may -be associated with items in much the same way that the L<bind|Tk::bind> -method allows callbacks to be bound to widgets. For example, -a particular callback may be associated with the B<E<lt>Button-1E<gt>> event -so that the callback is invoked whenever button 1 is pressed with -the mouse cursor over an item. -This means that items in a canvas can have behaviors defined by -the Callbacks bound to them. - -=head1 DISPLAY LIST - -The items in a canvas are ordered for purposes of display, -with the first item in the display list being displayed -first, followed by the next item in the list, and so on. -Items later in the display list obscure those that are -earlier in the display list and are sometimes referred to -as being I<``on top''> of earlier items. -When a new item is created it is placed at the end of the -display list, on top of everything else. -Widget methods may be used to re-arrange the order of the -display list. - -Window items are an exception to the above rules. The underlying -window systems require them always to be drawn on top of other items. -In addition, the stacking order of window items -is not affected by any of the canvas methods; you must use -the L<raise|Tk::Widget> and L<lower|Tk::Widget> Tk widget methods instead. - -=head1 ITEM IDS AND TAGS - -Items in a canvas widget may be named in either of two ways: -by id or by tag. -Each item has a unique identifying number which is assigned to -that item when it is created. The id of an item never changes -and id numbers are never re-used within the lifetime of a -canvas widget. - -Each item may also have any number of I<tags> associated -with it. A tag is just a string of characters, and it may -take any form except that of an integer. -For example, ``x123'' is OK but ``123'' isn't. -The same tag may be associated with many different items. -This is commonly done to group items in various interesting -ways; for example, all selected items might be given the -tag ``selected''. - -The tag B<all> is implicitly associated with every item -in the canvas; it may be used to invoke operations on -all the items in the canvas. - -The tag B<current> is managed automatically by Tk; -it applies to the I<current item>, which is the -topmost item whose drawn area covers the position of -the mouse cursor. -If the mouse is not in the canvas widget or is not over -an item, then no item has the B<current> tag. - -When specifying items in canvas methods, if the -specifier is an integer then it is assumed to refer to -the single item with that id. -If the specifier is not an integer, then it is assumed to -refer to all of the items in the canvas that have a tag -matching the specifier. -The symbol I<tagOrId> is used below to indicate that -an argument specifies either an id that selects a single -item or a tag that selects zero or more items. - -I<tagOrId> may contain a logical expressions of -tags by using operators: 'E<amp>E<amp>', '||', '^' '!', and parenthezised -subexpressions. For example: - -$c-E<gt>find('withtag', '(aE<amp>E<amp>!b)|(!aE<amp>E<amp>b)'); - -or equivalently: - -$c-E<gt>find('withtag', 'a^b'); - -will find only those items with either "a" or "b" tags, but not both. - -Some methods only operate on a single item at a -time; if I<tagOrId> is specified in a way that -names multiple items, then the normal behavior is for -the methods is to use the first (lowest) of these items in -the display list that is suitable for the method. -Exceptions are noted in the method descriptions -below. - -=head1 COORDINATES - -All coordinates related to canvases are stored as floating-point -numbers. -Coordinates and distances are specified in screen units, -which are floating-point numbers optionally followed -by one of several letters. -If no letter is supplied then the distance is in pixels. -If the letter is B<m> then the distance is in millimeters on -the screen; if it is B<c> then the distance is in centimeters; -B<i> means inches, and B<p> means printers points (1/72 inch). -Larger y-coordinates refer to points lower on the screen; larger -x-coordinates refer to points farther to the right. - -=head1 TRANSFORMATIONS - -Normally the origin of the canvas coordinate system is at the -upper-left corner of the window containing the canvas. -It is possible to adjust the origin of the canvas -coordinate system relative to the origin of the window using the -B<xview> and B<yview> methods; this is typically used -for scrolling. -Canvases do not support scaling or rotation of the canvas coordinate -system relative to the window coordinate system. - -Individual items may be moved or scaled using methods -described below, but they may not be rotated. - -=head1 INDICES - -Text items support the notion of an I<index> for identifying -particular positions within the item. - -Indices are used for methods such as inserting text, deleting -a range of characters, and setting the insertion cursor position. -An index may be specified in any of a number of ways, and -different types of items may support different forms for -specifying indices. - -In a similar fashion, line and polygon items support I<index> for -identifying, inserting and deleting subsets of their coordinates. -Indices are used for commands such as inserting or deleting -a range of characters or coordinates, and setting the insertion -cursor position. An index may be specified in any of a number -of ways, and different types of items may support different forms -for specifying indices. - -Text items support the following forms for an index; if you -define new types of text-like items, it would be advisable to -support as many of these forms as practical. -Note that it is possible to refer to the character just after -the last one in the text item; this is necessary for such -tasks as inserting new text at the end of the item. -Lines and Polygons don't support the insertion cursor -and the selection. Their indices are supposed to be even -always, because coordinates always appear in pairs. - -=over 4 - -=item I<number> - -A decimal number giving the position of the desired character -within the text item. -0 refers to the first character, 1 to the next character, and -so on. If indexes are odd for lines and polygons, they will be -automatically decremented by one. -A number less than 0 is treated as if it were zero, and a -number greater than the length of the text item is treated -as if it were equal to the length of the text item. For -polygons, numbers less than 0 or greater then the length -of the coordinate list will be adjusted by adding or substracting -the length until the result is between zero and the length, -inclusive. - -=item B<end> - -Refers to the character or coordinate just after the last one -in the item (same as the number of characters or coordinates -in the item). - -=item B<insert> - -Refers to the character just before which the insertion cursor -is drawn in this item. Not valid for lines and polygons. - -=item B<sel.first> - -Refers to the first selected character in the item. -If the selection isn't in this item then this form is illegal. - -=item B<sel.last> - -Refers to the last selected character in the item. -If the selection isn't in this item then this form is illegal. - -=item B<[>I<x,y>B<]> - -Refers to the character or coordinate at the point given by I<x> and -I<y>, where I<x> and I<y> are specified in the coordinate -system of the canvas. -If I<x> and I<y> lie outside the coordinates covered by the -text item, then they refer to the first or last character in the -line that is closest to the given point. -The Tcl string form "@x,y" is also allowed. - -=back - -=head1 DASH PATTERNS - -Many items support the notion of an dash pattern for outlines. - -The first possible syntax is a list of integers. Each element -represents the number of pixels of a line segment. Only the odd -segments are drawn using the "outline" color. The other segments -are drawn transparent. - -The second possible syntax is a character list containing only -5 possible characters B<[.,-_ ]>, with the first 4 characters -producing a segment of length 1 to 4, respectively, followed -by a transparent segment of length 2. The space can be used -repeatedly to enlarge the space between other line elements -by 1, and can not occur as the first position in the string. -The main difference of this syntax with the previous one is -that it it shape-conserving. This means that all values in the dash -list will be multiplied by the line width before display. This -assures that "." will always be displayed as a dot and "-" -always as a dash regardless of the line width. - -Some examples, for a line width of 2: - - -dash . = -dash [2,4] - -dash - = -dash [6,4] - -dash -. = -dash [6,4,2,4] - -dash -.. = -dash [6,4,2,4,2,4] - -dash '. ' = -dash [2,8] - -dash ',' = -dash [4,4] - -On systems where only a limited set of dash patterns is available, -the dash pattern will be displayed as the closest available dash -pattern. For example, on Windows only the first 4 of the -above examples are available. The last 2 examples will be -displayed identically as the first one. - -=head1 WIDGET METHODS - -The B<Canvas> method creates a widget object. -This object supports the B<configure> and B<cget> methods -described in L<Tk::options> which can be used to enquire and -modify the options described above. -The widget also inherits all the methods provided by the generic -L<Tk::Widget|Tk::Widget> class. - -The following additional methods are available for canvas widgets: - -=over 4 - -=item I<$canvas>-E<gt>B<addtag>(I<tag, searchSpec, >?I<arg, arg, ...>?) - -For each item that meets the constraints specified by -I<searchSpec> and the I<arg>s, add -I<tag> to the list of tags associated with the item if it -isn't already present on that list. -It is possible that no items will satisfy the constraints -given by I<searchSpec> and I<arg>s, in which case the -method has no effect. -This command returns an empty string as result. -I<SearchSpec> and I<arg>'s may take any of the following -forms: - -=over 8 - -=item B<above >I<tagOrId> - -Selects the item just after (above) the one given by I<tagOrId> -in the display list. -If I<tagOrId> denotes more than one item, then the last (topmost) -of these items in the display list is used. - -=item B<all> - -Selects all the items in the canvas. - -=item B<below >I<tagOrId> - -Selects the item just before (below) the one given by I<tagOrId> -in the display list. -If I<tagOrId> denotes more than one item, then the first (lowest) -of these items in the display list is used. - -=item B<closest >I<x y >?I<halo>? ?I<start>? - -Selects the item closest to the point given by I<x> and I<y>. -If more than one item is at the same closest distance (e.g. two -items overlap the point), then the top-most of these items (the -last one in the display list) is used. -If I<halo> is specified, then it must be a non-negative -value. -Any item closer than I<halo> to the point is considered to -overlap it. -The I<start> argument may be used to step circularly through -all the closest items. -If I<start> is specified, it names an item using a tag or id -(if by tag, it selects the first item in the display list with -the given tag). -Instead of selecting the topmost closest item, this form will -select the topmost closest item that is below I<start> in -the display list; if no such item exists, then the selection -behaves as if the I<start> argument had not been specified. - -=item B<enclosed> I<x1> I<y1> I<x2> I<y2> - -Selects all the items completely enclosed within the rectangular -region given by I<x1>, I<y1>, I<x2>, and I<y2>. -I<X1> must be no greater then I<x2> and I<y1> must be -no greater than I<y2>. - -=item B<overlapping> I<x1> I<y1> I<x2> I<y2> - -Selects all the items that overlap or are enclosed within the -rectangular region given by I<x1>, I<y1>, I<x2>, -and I<y2>. -I<X1> must be no greater then I<x2> and I<y1> must be -no greater than I<y2>. - -=item B<withtag >I<tagOrId> - -Selects all the items given by I<tagOrId>. - -=back - -=item I<$canvas>-E<gt>B<bbox>(I<tagOrId, >?I<tagOrId, tagOrId, ...>?) - -Returns a list with four elements giving an approximate bounding box -for all the items named by the I<tagOrId> arguments. -The list has the form ``I<x1 y1 x2 y2>'' such that the drawn -areas of all the named elements are within the region bounded by -I<x1> on the left, I<x2> on the right, I<y1> on the top, -and I<y2> on the bottom. -The return value may overestimate the actual bounding box by -a few pixels. -If no items match any of the I<tagOrId> arguments or if the -matching items have empty bounding boxes (i.e. they have nothing -to display) -then an empty string is returned. - -=item I<$canvas>-E<gt>B<bind>(I<tagOrId>?, I<sequence>? ?,I<callback>?) - -This method associates I<callback> with all the items given by -I<tagOrId> such that whenever the event sequence given by -I<sequence> occurs for one of the items the callback will -be invoked. -This method is similar to the B<bind> method except that -it operates on items in a canvas rather than entire widgets. -See L<Tk::bind> for complete details -on the syntax of I<sequence> and the substitutions performed -on I<callback> before invoking it. -If all arguments are specified then a new binding is created, replacing -any existing binding for the same I<sequence> and I<tagOrId> -(if the first character of I<command> is ``+'' then I<command> -augments an existing binding rather than replacing it). -In this case the return value is an empty string. -If I<callback> is omitted then the method returns the I<callback> -associated with I<tagOrId> and I<sequence> (an error occurs -if there is no such binding). -If both I<callback> and I<sequence> are omitted then the method -returns a list of all the sequences for which bindings have been -defined for I<tagOrId>. - -=over 8 - -The only events for which bindings may be specified are those related to -the mouse and keyboard (such as B<Enter>, B<Leave>, -B<ButtonPress>, B<Motion>, and B<KeyPress>) or virtual events. -The handling of events in canvases uses the current item defined -in L<"ITEM IDS AND TAGS"> above. B<Enter> and B<Leave> events trigger for an -item when it becomes the current item or ceases to be the current item; -note that these events are different than B<Enter> and B<Leave> -events for windows. Mouse-related events are directed to the current -item, if any. Keyboard-related events are directed to the focus item, if -any (see the L<focus|/focus> method below for more on this). If a -virtual event is used in a binding, that binding can trigger only if the -virtual event is defined by an underlying mouse-related or -keyboard-related event. - -It is possible for multiple bindings to match a particular event. -This could occur, for example, if one binding is associated with the -item's id and another is associated with one of the item's tags. -When this occurs, all of the matching bindings are invoked. -A binding associated with the B<all> tag is invoked first, -followed by one binding for each of the item's tags (in order), -followed by a binding associated with the item's id. -If there are multiple matching bindings for a single tag, -then only the most specific binding is invoked. -A B<continue> in a callback terminates that -subroutine, and a B<break> method terminates that subroutine -and skips any remaining callbacks for the event, just as for the -B<bind> method. - -If bindings have been created for a canvas window using the B<CanvasBind> -method, then they are invoked in addition to bindings created for -the canvas's items using the B<bind> method. -The bindings for items will be invoked before any of the bindings -for the window as a whole. - -=back - -=item I<$canvas>-E<gt>B<canvasx>(I<screenx>?, I<gridspacing>?) - -Given a window x-coordinate in the canvas I<screenx>, this method returns -the canvas x-coordinate that is displayed at that location. -If I<gridspacing> is specified, then the canvas coordinate is -rounded to the nearest multiple of I<gridspacing> units. - -=item I<$canvas>-E<gt>B<canvasy>(I<screeny, >?I<gridspacing>?) - -Given a window y-coordinate in the canvas I<screeny> this method returns -the canvas y-coordinate that is displayed at that location. -If I<gridspacing> is specified, then the canvas coordinate is -rounded to the nearest multiple of I<gridspacing> units. - -=item I<$canvas>-E<gt>B<coords>(I<tagOrId >?I<x0,y0 ...>?) - -Query or modify the coordinates that define an item. -If no coordinates are specified, this method returns a list -whose elements are the coordinates of the item named by -I<tagOrId>. -If coordinates are specified, then they replace the current -coordinates for the named item. -If I<tagOrId> refers to multiple items, then -the first one in the display list is used. - -=item I<$canvas>-E<gt>B<create>(I<type, x, y, >?I<x, y, ...>?, ?I<option, value, ...>?) - -Create a new item in I<$canvas> of type I<type>. -The exact format of the arguments after B<type> depends -on B<type>, but usually they consist of the coordinates for -one or more points, followed by specifications for zero or -more item options. -See the subsections on individual item types below for more -on the syntax of this method. -This method returns the id for the new item. - -=item I<$canvas>-E<gt>B<dchars>(I<tagOrId, first, >?I<last>?) - -For each item given by I<tagOrId>, delete the characters, or coordinates, -in the range given by I<first> and I<last>, inclusive. -If some of the items given by I<tagOrId> don't support -Text items interpret I<first> and I<last> as indices to a character, -line and polygon items interpret them indices to a coordinate (an x,y pair). -within the item(s) as described in L<"INDICES"> above. -If I<last> is omitted, it defaults to I<first>. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<delete>(?I<tagOrId, tagOrId, ...>?) - -Delete each of the items given by each I<tagOrId>, and return -an empty string. - -=item I<$canvas>-E<gt>B<dtag>(I<tagOrId, >?I<tagToDelete>?) - -For each of the items given by I<tagOrId>, delete the -tag given by I<tagToDelete> from the list of those -associated with the item. -If an item doesn't have the tag I<tagToDelete> then -the item is unaffected by the method. -If I<tagToDelete> is omitted then it defaults to I<tagOrId>. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<find>(I<searchCommand, >?I<arg, arg, ...>?) - -This method returns a list consisting of all the items that -meet the constraints specified by I<searchCommand> and -I<arg>'s. -I<SearchCommand> and I<args> have any of the forms -accepted by the B<addtag> method. -The items are returned in stacking order, with the lowest item first. - -=item focus - -=item I<$canvas>-E<gt>B<focus>(?I<tagOrId>?) - -Set the keyboard focus for the canvas widget to the item given by -I<tagOrId>. -If I<tagOrId> refers to several items, then the focus is set -to the first such item in the display list that supports the -insertion cursor. -If I<tagOrId> doesn't refer to any items, or if none of them -support the insertion cursor, then the focus isn't changed. -If I<tagOrId> is an empty -string, then the focus item is reset so that no item has the focus. -If I<tagOrId> is not specified then the method returns the -id for the item that currently has the focus, or an empty string -if no item has the focus. - -=over 8 - -Once the focus has been set to an item, the item will display -the insertion cursor and all keyboard events will be directed -to that item. -The focus item within a canvas and the focus window on the -screen (set with the B<focus> method) are totally independent: -a given item doesn't actually have the input focus unless (a) -its canvas is the focus window and (b) the item is the focus item -within the canvas. -In most cases it is advisable to follow the B<focus> widget -method with the B<CanvasFocus> method to set the focus window to -the canvas (if it wasn't there already). - -=back - -=item I<$canvas>-E<gt>B<gettags>(I<tagOrId>) - -Return a list whose elements are the tags associated with the -item given by I<tagOrId>. -If I<tagOrId> refers to more than one item, then the tags -are returned from the first such item in the display list. -If I<tagOrId> doesn't refer to any items, or if the item -contains no tags, then an empty string is returned. - -=item I<$canvas>-E<gt>B<icursor>(I<tagOrId, index>) - -Set the position of the insertion cursor for the item(s) given by I<tagOrId> -to just before the character whose position is given by I<index>. -If some or all of the items given by I<tagOrId> don't support -an insertion cursor then this method has no effect on them. -See L<"INDICES"> above for a description of the -legal forms for I<index>. -Note: the insertion cursor is only displayed in an item if -that item currently has the keyboard focus (see the widget -method B<focus>, below), but the cursor position may -be set even when the item doesn't have the focus. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<index>(I<tagOrId, index>) - -This method returns a decimal string giving the numerical index -within I<tagOrId> corresponding to I<index>. -I<Index> gives a textual description of the desired position -as described in L<"INDICES"> above. -Text items interpret I<index> as an index to a character, -line and polygon items interpret it as an index to a coordinate (an x,y pair). -The return value is guaranteed to lie between 0 and the number -of characters, or coordinates, within the item, inclusive. -If I<tagOrId> refers to multiple items, then the index -is processed in the first of these items that supports indexing -operations (in display list order). - -=item I<$canvas>-E<gt>B<insert>(I<tagOrId, beforeThis, string>) - -For each of the items given by I<tagOrId>, if the item supports -text or coordinate, insertion then I<string> is inserted into the item's -text just before the character, or coordinate, whose index is I<beforeThis>. -Text items interpret I<beforethis> as an index to a character, -line and polygon items interpret it as an index to a coordinate (an x,y pair). -For lines and polygons the I<string> must be a valid coordinate -sequence. -See L<"INDICES"> above for information about the forms allowed -for I<beforeThis>. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<itemcget>(I<tagOrId, >I<option>) - -Returns the current value of the configuration option for the -item given by I<tagOrId> whose name is I<option>. -This method is similar to the L<cget|Tk::option> method except that -it applies to a particular item rather than the widget as a whole. -I<Option> may have any of the values accepted by the B<create> -method when the item was created. -If I<tagOrId> is a tag that refers to more than one item, -the first (lowest) such item is used. - -=item I<$canvas>-E<gt>B<itemconfigure>(I<tagOrId, >?I<option>?, ?I<value>?, ?I<option, value, ...>?) - -This method is similar to the L<configure|Tk::option> method except -that it modifies item-specific options for the items given by -I<tagOrId> instead of modifying options for the overall -canvas widget. -If no I<option> is specified, returns a list describing all of -the available options for the first item given by I<tagOrId> -(see L<Tk::options> for -information on the format of this list). If I<option> is specified -with no I<value>, then the method returns a list describing the -one named option (this list will be identical to the corresponding -sublist of the value returned if no I<option> is specified). If -one or more I<option-value> pairs are specified, then the method -modifies the given widget option(s) to have the given value(s) in -each of the items given by I<tagOrId>; in -this case the method returns an empty string. -The I<option>s and I<value>s are the same as those permissible -in the B<create> method when the item(s) were created; -see the sections describing individual item types below for details -on the legal options. - -=item I<$canvas>-E<gt>B<lower>(I<tagOrId, >?I<belowThis>?) - -Move all of the items given by I<tagOrId> to a new position -in the display list just before the item given by I<belowThis>. -If I<tagOrId> refers to more than one item then all are moved -but the relative order of the moved items will not be changed. -I<BelowThis> is a tag or id; if it refers to more than one -item then the first (lowest) of these items in the display list is used -as the destination location for the moved items. -Note: this method has no effect on window items. Window items always -obscure other item types, and the stacking order of window items is -determined by the B<raise> and B<lower> methods of the widget, not the -B<raise> and B<lower> methods for canvases. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<move>(I<tagOrId, xAmount, yAmount>) - -Move each of the items given by I<tagOrId> in the canvas coordinate -space by adding I<xAmount> to the x-coordinate of each point -associated with the item and I<yAmount> to the y-coordinate of -each point associated with the item. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<postscript>(?I<option, value, option, value, ...>?) - -Generate a Postscript representation for part or all of the canvas. -If the B<-file> option is specified then the Postscript is written -to a file and an empty string is returned; otherwise the Postscript -is returned as the result of the method. -If the interpreter that owns the canvas is marked as safe, the operation -will fail because safe interpreters are not allowed to write files. -If the B<-channel> option is specified, the argument denotes the name -of a channel already opened for writing. The Postscript is written to -that channel, and the channel is left open for further writing at the end -of the operation. -The Postscript is created in Encapsulated Postscript form using -version 3.0 of the Document Structuring Conventions. -Note: by default Postscript is only generated for information that -appears in the canvas's window on the screen. If the canvas is -freshly created it may still have its initial size of 1x1 pixel -so nothing will appear in the Postscript. To get around this problem -either invoke the B<update> method to wait for the canvas window -to reach its final size, or else use the B<-width> and B<-height> -options to specify the area of the canvas to print. -The I<option>-I<value> argument pairs provide additional -information to control the generation of Postscript. The following -options are supported: - -=over 8 - -=item B<-colormap> =E<gt> I<hashRef> - -I<HashRef> must be a reference to a hash variable or an anonymous hash -that specifies a color mapping to use in the Postscript. -Each value of the hash must consist of Postscript -code to set a particular color value (e.g. ``B<1.0 1.0 0.0 setrgbcolor>''). -When outputting color information in the Postscript, Tk checks -to see if there is a key in the hash with the same -name as the color. -If so, Tk uses the value of the element as the Postscript method -to set the color. -If this option hasn't been specified, or if there isn't a key -in I<hashRef> for a given color, then Tk uses the red, green, -and blue intensities from the X color. - -=item B<-colormode> =E<gt> I<mode> - -Specifies how to output color information. I<Mode> must be either -B<color> (for full color output), B<gray> (convert all colors -to their gray-scale equivalents) or B<mono> (convert all colors -to black or white). - -=item B<-file> =E<gt> I<fileName> - -Specifies the name of the file in which to write the Postscript. -If this option isn't specified then the Postscript is returned as the -result of the method instead of being written to a file. - -=item B<-fontmap> =E<gt> I<hashRef> - -I<HashRef> must be a reference to a hash variable or an anonymous hash -that specifies a font mapping to use in the Postscript. -Each value of the hash must consist of an array reference with -two elements, which are the name and point size of a Postscript font. -When outputting Postscript commands for a particular font, Tk -checks to see if I<hashRef> contains a value with the same -name as the font. -If there is such an element, then the font information contained in -that element is used in the Postscript. -Otherwise Tk attempts to guess what Postscript font to use. -Tk's guesses generally only work for well-known fonts such as -Times and Helvetica and Courier, and only if the X font name does not -omit any dashes up through the point size. -For example, B<-*-Courier-Bold-R-Normal--*-120-*> will work but -B<*Courier-Bold-R-Normal*120*> will not; Tk needs the dashes to -parse the font name). - -=item B<-height> =E<gt> I<size> - -Specifies the height of the area of the canvas to print. -Defaults to the height of the canvas window. - -=item B<-pageanchor> =E<gt> I<anchor> - -Specifies which point of the printed area of the canvas should appear over -the positioning point on the page (which is given by the B<-pagex> -and B<-pagey> options). -For example, B<-pageanchor>=>B<n> means that the top center of the -area of the canvas being printed (as it appears in the canvas window) -should be over the positioning point. Defaults to B<center>. - -=item B<-pageheight> =E<gt> I<size> - -Specifies that the Postscript should be scaled in both x and y so -that the printed area is I<size> high on the Postscript page. -I<Size> consists of a floating-point number followed by -B<c> for centimeters, B<i> for inches, B<m> for millimeters, -or B<p> or nothing for printer's points (1/72 inch). -Defaults to the height of the printed area on the screen. -If both B<-pageheight> and B<-pagewidth> are specified then -the scale factor from B<-pagewidth> is used (non-uniform scaling -is not implemented). - -=item B<-pagewidth> =E<gt> I<size> - -Specifies that the Postscript should be scaled in both x and y so -that the printed area is I<size> wide on the Postscript page. -I<Size> has the same form as for B<-pageheight>. -Defaults to the width of the printed area on the screen. -If both B<-pageheight> and B<-pagewidth> are specified then -the scale factor from B<-pagewidth> is used (non-uniform scaling -is not implemented). - -=item B<-pagex> =E<gt> I<position> - -I<Position> gives the x-coordinate of the positioning point on -the Postscript page, using any of the forms allowed for B<-pageheight>. -Used in conjunction with the B<-pagey> and B<-pageanchor> options -to determine where the printed area appears on the Postscript page. -Defaults to the center of the page. - -=item B<-pagey> =E<gt> I<position> - -I<Position> gives the y-coordinate of the positioning point on -the Postscript page, using any of the forms allowed for B<-pageheight>. -Used in conjunction with the B<-pagex> and B<-pageanchor> options -to determine where the printed area appears on the Postscript page. -Defaults to the center of the page. - -=item B<-rotate> =E<gt> I<boolean> - -I<Boolean> specifies whether the printed area is to be rotated 90 -degrees. -In non-rotated output the x-axis of the printed area runs along -the short dimension of the page (``portrait'' orientation); -in rotated output the x-axis runs along the long dimension of the -page (``landscape'' orientation). -Defaults to non-rotated. - -=item B<-width> =E<gt> I<size> - -Specifies the width of the area of the canvas to print. -Defaults to the width of the canvas window. - -=item B<-x> => I<position> - -Specifies the x-coordinate of the left edge of the area of the -canvas that is to be printed, in canvas coordinates, not window -coordinates. -Defaults to the coordinate of the left edge of the window. - -=item B<-y> => I<position> - -Specifies the y-coordinate of the top edge of the area of the -canvas that is to be printed, in canvas coordinates, not window -coordinates. -Defaults to the coordinate of the top edge of the window. - -=back - -=item I<$canvas>-E<gt>B<raise>(I<tagOrId, >?I<aboveThis>?) - -Move all of the items given by I<tagOrId> to a new position -in the display list just after the item given by I<aboveThis>. -If I<tagOrId> refers to more than one item then all are moved -but the relative order of the moved items will not be changed. -I<AboveThis> is a tag or id; if it refers to more than one -item then the last (topmost) of these items in the display list is used -as the destination location for the moved items. -Note: this method has no effect on window items. Window items always -obscure other item types, and the stacking order of window items is -determined by the B<raise> and B<lower> widget commands, not the -B<raise> and B<lower> methods for canvases. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<scale>(I<tagOrId, xOrigin, yOrigin, xScale, yScale>) - -Rescale all of the items given by I<tagOrId> in canvas coordinate -space. -I<XOrigin> and I<yOrigin> identify the origin for the scaling -operation and I<xScale> and I<yScale> identify the scale -factors for x- and y-coordinates, respectively (a scale factor of -1.0 implies no change to that coordinate). -For each of the points defining each item, the x-coordinate is -adjusted to change the distance from I<xOrigin> by a factor -of I<xScale>. -Similarly, each y-coordinate is adjusted to change the distance -from I<yOrigin> by a factor of I<yScale>. -This method returns an empty string. - -=item I<$canvas>-E<gt>B<scan>(I<option, args>) - -This method is used to implement scanning on canvases. It has -two forms, depending on I<option>: - -=over 8 - -=item I<$canvas>-E<gt>B<scanMark>(I<x, y>) - -Records I<x> and I<y> and the canvas's current view; used -in conjunction with later B<scanDragto> method. -Typically this method is associated with a mouse button press in -the widget and I<x> and I<y> are the coordinates of the -mouse. It returns an empty string. - -=item I<$canvas>-E<gt>B<scanDragto>(I<x, y, ?gain?>.) - -This method computes the difference between its I<x> and I<y> -arguments (which are typically mouse coordinates) and the I<x> and -I<y> arguments to the last B<scanMark> method for the widget. -It then adjusts the view by 10 times the -difference in coordinates. This method is typically associated -It then adjusts the view by I<gain> times the -difference in coordinates, where I<gain> defaults to 10. -This command is typically associated -with mouse motion events in the widget, to produce the effect of -dragging the canvas at high speed through its window. The return -value is an empty string. - -=back - -=item I<$canvas>-E<gt>B<select>(I<option, >?I<tagOrId, arg>?) - -Manipulates the selection in one of several ways, depending on -I<option>. -The method may take any of the forms described below. -In all of the descriptions below, I<tagOrId> must refer to -an item that supports indexing and selection; if it refers to -multiple items then the first of -these that supports indexing and the selection is used. -I<Index> gives a textual description of a position -within I<tagOrId>, as described in L<"INDICES"> above. - -=over 8 - -=item I<$canvas>-E<gt>B<selectAdjust>(I<tagOrId, index>) - -Locate the end of the selection in I<tagOrId> nearest -to the character given by I<index>, and adjust that -end of the selection to be at I<index> (i.e. including -but not going beyond I<index>). -The other end of the selection is made the anchor point -for future B<selectTo> method calls. -If the selection isn't currently in I<tagOrId> then -this method behaves the same as the B<selectTo> widget -method. -Returns an empty string. - -=item I<$canvas>-E<gt>B<selectClear> - -Clear the selection if it is in this widget. -If the selection isn't in this widget then the method -has no effect. -Returns an empty string. - -=item I<$canvas>-E<gt>B<selectFrom>(I<tagOrId, index>) - -Set the selection anchor point for the widget to be just -before the character -given by I<index> in the item given by I<tagOrId>. -This method doesn't change the selection; it just sets -the fixed end of the selection for future B<selectTo> -method calls. -Returns an empty string. - -=item I<$canvas>-E<gt>B<selectItem> - -Returns the id of the selected item, if the selection is in an -item in this canvas. -If the selection is not in this canvas then an empty string -is returned. - -=item I<$canvas>-E<gt>B<selectTo>(I<tagOrId, index>) - -Set the selection to consist of those characters of I<tagOrId> -between the selection anchor point and -I<index>. -The new selection will include the character given by I<index>; -it will include the character given by the anchor point only if -I<index> is greater than or equal to the anchor point. -The anchor point is determined by the most recent B<selectAdjust> -or B<selectFrom> method calls for this widget. -If the selection anchor point for the widget isn't currently in -I<tagOrId>, then it is set to the same character given -by I<index>. -Returns an empty string. - -=back - -=item I<$canvas>-E<gt>B<type>(I<tagOrId>) - -Returns the type of the item given by I<tagOrId>, such as -B<rectangle> or B<text>. -If I<tagOrId> refers to more than one item, then the type -of the first item in the display list is returned. -If I<tagOrId> doesn't refer to any items at all then -an empty string is returned. - -=item I<$canvas>-E<gt>B<xview>(?I<args>?) - -This method is used to query and change the horizontal position of the -information displayed in the canvas's window. -It can take any of the following forms: - -=over 8 - -=item I<$canvas>-E<gt>B<xview> - -Returns a list containing two elements. -Each element is a real fraction between 0 and 1; together they describe -the horizontal span that is visible in the window. -For example, if the first element is .2 and the second element is .6, -20% of the canvas's area (as defined by the B<-scrollregion> option) -is off-screen to the left, the middle 40% is visible -in the window, and 40% of the canvas is off-screen to the right. -These are the same values passed to scrollbars via the B<-xscrollcommand> -option. - -=item I<$canvas>-E<gt>B<xviewMoveto>(I<fraction>) - -Adjusts the view in the window so that I<fraction> of the -total width of the canvas is off-screen to the left. -I<Fraction> must be a fraction between 0 and 1. - -=item I<$canvas>-E<gt>B<xviewScroll>(I<number, what>) - -This method shifts the view in the window left or right according to -I<number> and I<what>. -I<Number> must be an integer. -I<What> must be either B<units> or B<pages> or an abbreviation -of one of these. -If I<what> is B<units>, the view adjusts left or right in units -of the B<xScrollIncrement> option, if it is greater than zero, -or in units of one-tenth the window's width otherwise. -If I<what is >B<pages> then the view -adjusts in units of nine-tenths the window's width. -If I<number> is negative then information farther to the left -becomes visible; if it is positive then information farther to the right -becomes visible. - -=back - -=item I<$canvas>-E<gt>B<yview>(I<?args>?) - -This method is used to query and change the vertical position of the -information displayed in the canvas's window. -It can take any of the following forms: - -=over 8 - -=item I<$canvas>-E<gt>B<yview> - -Returns a list containing two elements. -Each element is a real fraction between 0 and 1; together they describe -the vertical span that is visible in the window. -For example, if the first element is .6 and the second element is 1.0, -the lowest 40% of the canvas's area (as defined by the B<-scrollregion> -option) is visible in the window. -These are the same values passed to scrollbars via the B<-yscrollcommand> -option. - -=item I<$canvas>-E<gt>B<yviewMoveto>(I<fraction>) - -Adjusts the view in the window so that I<fraction> of the canvas's -area is off-screen to the top. -I<Fraction> is a fraction between 0 and 1. - -=item I<$canvas>-E<gt>B<yviewScroll>(I<number, what>) - -This method adjusts the view in the window up or down according to -I<number> and I<what>. -I<Number> must be an integer. -I<What> must be either B<units> or B<pages>. -If I<what> is B<units>, the view adjusts up or down in units -of the B<yScrollIncrement> option, if it is greater than zero, -or in units of one-tenth the window's height otherwise. -If I<what> is B<pages> then -the view adjusts in units of nine-tenths the window's height. -If I<number> is negative then higher information becomes -visible; if it is positive then lower information -becomes visible. - -=back - -=back - -=head1 OVERVIEW OF ITEM TYPES - -The sections below describe the various types of items supported -by canvas widgets. Each item type is characterized by two things: -first, the form of the B<create> method used to create -instances of the type; and second, a set of configuration options -for items of that type, which may be used in the -B<create> and B<itemconfigure> methods. -Most items don't support indexing or selection or the methods -related to them, such as B<index> and B<insert>. -Where items do support these facilities, it is noted explicitly -in the descriptions below. -At present, text, line and polygon items provide this support. -For lines and polygons the indexing facility is used to manipulate -the coordinates of the item. - -=head1 ARC ITEMS - -Items of type B<arc> appear on the display as arc-shaped regions. -An arc is a section of an oval delimited by two angles (specified -by the B<-start> and B<-extent> options) and displayed in -one of several ways (specified by the B<-style> option). -Arcs are created with methods of the following form: - - $canvas->createArc(x1, y1, x2, y2, ?option, value, option, value, ...?) - -The arguments I<x1>, I<y1>, I<x2>, and I<y2> give -the coordinates of two diagonally opposite corners of a -rectangular region enclosing the oval that defines the arc. -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for arcs: - -=over 4 - -=item B<-dash> =E<gt> I<pattern> - -=item B<-activedash> =E<gt> I<pattern> - -=item B<-disableddash> =E<gt> I<pattern> - -This option specifies dash patterns for the normal state, the active -state, and the disabled state of an arc item. -I<pattern> may have any of the forms accepted by B<Tk_GetDash>. -If the dash options are omitted then the default is a solid outline. - -=item B<-dashoffset> =E<gt> I<offset> - -The starting I<offset> into the pattern provided by the -B<-dash> option. -B<-dashoffset> is ignored if there is no B<-dash> pattern. - -=item B<-extent> =E<gt> I<degrees> - -Specifies the size of the angular range occupied by the arc. -The arc's range extends for I<degrees> degrees counter-clockwise -from the starting angle given by the B<-start> option. -I<Degrees> may be negative. -If it is greater than 360 or less than -360, then I<degrees> -modulo 360 is used as the extent. - -=item B<-fill> =E<gt> I<color> - -=item B<-activefill> =E<gt> I<color> - -=item B<-disabledfill> =E<gt> I<color> - -Specifies the color to be used to fill the arc region in its normal, active, and -disabled states, -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -If I<color> is an empty string (the default), then -then the arc will not be filled. - -=item B<-outline> =E<gt> I<color> - -=item B<-activeoutline> =E<gt> I<color> - -=item B<-disabledoutline> =E<gt> I<color> - -This option specifies the color that should be used to draw the -outline of the arc in its normal, active and disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -This option defaults to B<black>. If I<color> is specified -as undef then no outline is drawn for the arc. - -=item B<-outlinestipple> =E<gt> I<bitmap> - -=item B<-activeoutlinestipple> =E<gt> I<bitmap> - -=item B<-disabledoutlinestipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to draw the -outline of the arc in its normal, active and disabled states. -Indicates that the outline for the arc should be drawn with a stipple pattern; -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If the B<-outline> option hasn't been specified then this option -has no effect. -If I<bitmap> is an empty string (the default), then the outline is drawn -in a solid fashion. - -=item B<-start> =E<gt> I<degrees> - -Specifies the beginning of the angular range occupied by the -arc. -I<Degrees> is given in units of degrees measured counter-clockwise -from the 3-o'clock position; it may be either positive or negative. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the arc item where I<state> may be set to one of: -normal, disabled, hidden or "". If set to empty, the state of the canvas -itself is used. An arc item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-stipple> =E<gt> I<bitmap> - -=item B<-activestipple> =E<gt> I<bitmap> - -=item B<-disabledstipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to fill the -the arc in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If the B<-fill> option hasn't been specified then this option -has no effect. -If I<bitmap> is an empty string (the default), then filling is done -in a solid fashion. - -=item B<-style> =E<gt> I<type> - -Specifies how to draw the arc. If I<type> is B<pieslice> -(the default) then the arc's region is defined by a section -of the oval's perimeter plus two line segments, one between the center -of the oval and each end of the perimeter section. -If I<type> is B<chord> then the arc's region is defined -by a section of the oval's perimeter plus a single line segment -connecting the two end points of the perimeter section. -If I<type> is B<arc> then the arc's region consists of -a section of the perimeter alone. -In this last case the B<-fill> option is ignored. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the arc item is updated on the screen. - -=item B<-width> =E<gt> I<outlineWidth> - -=item B<-activewidth> =E<gt> I<outlineWidth> - -=item B<-disabledwidth> =E<gt> I<outlineWidth> - -Specifies the width of the outline to be drawn around -the arc's region, in its normal, active and disabled states. -I<outlineWidth> may be in any of the forms described in -the L<"COORDINATES"> section above. -If the B<-outline> option has been specified as undef -then this option has no effect. -Wide outlines will be drawn centered on the edges of the arc's region. -This option defaults to 1.0. - -=back - -=head1 BITMAP ITEMS - -Items of type B<bitmap> appear on the display as images with -two colors, foreground and background. -Bitmaps are created with methods of the following form: - - $canvas->createBitmap(x, y, ?option, value, option, value, ...?) - -The arguments I<x> and I<y> specify the coordinates of a -point used to position the bitmap on the display (see the B<-anchor> -option below for more information on how bitmaps are displayed). -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for bitmaps: - -=over 4 - -=item B<-anchor> =E<gt> I<anchorPos> - -I<AnchorPos> tells how to position the bitmap relative to the -positioning point for the item; it may have any of the forms -accepted by B<Tk_GetAnchor>. For example, if I<anchorPos> -is B<center> then the bitmap is centered on the point; if -I<anchorPos> is B<n> then the bitmap will be drawn so that -its top center point is at the positioning point. -This option defaults to B<center>. - -=item B<-background> =E<gt> I<color> - -=item B<-activebackground> =E<gt> I<color> - -=item B<-disabledbackground> =E<gt> I<color> - -Specifies the color to use for each of the bitmap's '0' valued pixels -in its normal, active and disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -If this option isn't specified, or if it is specified as undef, -then nothing is displayed where the bitmap pixels are 0; this -produces a transparent effect. - -=item B<-bitmap> =E<gt> I<bitmap> - -=item B<-activebitmap> =E<gt> I<bitmap> - -=item B<-disabledbitmap> =E<gt> I<bitmap> - -Specifies the bitmaps to display in the item in its normal, active and -disabled states. All bitmaps must have the same width and height. -I<Bitmap> may have any of the forms accepted by B<Tk_GetBitmap>. - -=item B<-foreground> =E<gt> I<color> - -=item B<-activeforeground> =E<gt> I<color> - -=item B<-disabledforeground> =E<gt> I<color> - -Specifies the color to use for each of the bitmap's '1' valued pixels -in its normal, active and disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor> and -defaults to B<black>. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the bitmap item where I<state> may be set to one of: -normal, disabled, or hidden. An bitmap item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the bitmap item is updated on the screen. - -=back - -=head1 GRID ITEMS - -Items of type B<grid> are intended for producing a visual reference for -interpreting other items. They can be drawn as either lines (with dash -style) or as rectangular "dots" at each grid point. - -Items of type B<grid> are unlike other items they always cover the -whole of the canvas, but are never enclosed by nor overlap any area -and are not near any point. That is they are intended to be always visible -but not "pickable", as such they do support the "active" state. -They are like other items in that: multiple -grids are permitted, they can be raised and lowered relative to other -items, they can be moved and scaled. As yet grids do not apear in -PostScript output. - -Grids have outline like configure options. Grids are created with methods of the -following form: - - $canvas->createGrid(x1, y1, x2, y2, ?option, value, option, value, ...?) - -The arguments I<x1>, I<y1> give the origin of the grid. I<x2>, and I<y2> give -the coordinates of the next grid point in their respective directions. -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for grids: - -=over 4 - -=item B<-lines> =E<gt> I<boolean> - -If B<-lines> is set to a true value then lines are drawn for both X and Y -grids in the style determined by B<-dash>. Otherwise retangular "dots" -are drawn at each grid point. - -=item B<-dash> =E<gt> I<pattern> - -=item B<-disableddash> =E<gt> I<pattern> - -This option specifies dash patterns for the normal state, -and the disabled state of a grid item. -I<pattern> may have any of the forms accepted by B<Tk_GetDash>. -If the dash options are omitted then the default is a solid outline. - -=item B<-dashoffset> =E<gt> I<offset> - -The starting I<offset> into the pattern provided by the -B<-dash> option. -B<-dashoffset> is ignored if there is no B<-dash> pattern. - -=item B<-color> =E<gt> I<color> - -=item B<-disabledcolor> =E<gt> I<color> - -This option specifies the color that should be used to draw the -outline of the grid in its normal and disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -This option defaults to B<black>. -If I<color> is undef then no grid will be drawn. - -=item B<-stipple> =E<gt> I<bitmap> - -=item B<-disabledstipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to draw the -outline of the rectangle in its normal and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If I<bitmap> is an empty string (the default), then the outline is drawn -in a solid fashion. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the rectangle item where I<state> may be set to one of: -normal, disabled, or hidden. Many options can take -separate specifications in normal and disabled states such that the -appearance of the item can be different in each state. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the grid item is updated on the screen. - -=item B<-width> =E<gt> I<outlineWidth> - -=item B<-disabledwidth> =E<gt> I<outlineWidth> - -Specifies the width of the lines drawn by the grid or the size (in both X and Y) -of the dots, in its normal and disabled states. -This option defaults to 1.0. - -=back - -=head1 IMAGE ITEMS - -Items of type B<image> are used to display images on a -canvas. -Images are created with methods of the following form: - - $canvas->createImage(x, y, ?option, value, option, value, ...?) - -The arguments I<x> and I<y> specify the coordinates of a -point used to position the image on the display (see the B<-anchor> -option below for more information). -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for images: - -=over 4 - -=item B<-anchor> =E<gt> I<anchorPos> - -I<AnchorPos> tells how to position the image relative to the -positioning point for the item; it may have any of the forms -accepted by B<Tk_GetAnchor>. For example, if I<anchorPos> -is B<center> then the image is centered on the point; if -I<anchorPos> is B<n> then the image will be drawn so that -its top center point is at the positioning point. -This option defaults to B<center>. - -=item B<-image> =E<gt> I<name> - -=item B<-activeimage> =E<gt> I<name> - -=item B<-disabledimage> =E<gt> I<name> - -Specifies the name of the images to display in the item in is normal, -active and disabled states. This image must have been created -previously, see L<Tk::Image>. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the image item where I<state> may be set to one of: -normal, disabled, or hidden. An image item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item; it may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the image item is updated on the screen. - -=back - -=head1 LINE ITEMS - -Items of type B<line> appear on the display as one or more connected -line segments or curves. -Line items support coordinate indexing operations using the canvas -methods: B<dchars, index, insert.> -Lines are created with methods of the following form: - - $canvas->createLine(x1, y1..., xn, yn, ?option, value, option, value, ...?) - -The arguments I<x1> through I<yn> give -the coordinates for a series of two or more points that describe -a series of connected line segments. -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for lines: - -=over 4 - -=item B<-arrow> =E<gt> I<where> - -Indicates whether or not arrowheads are to be drawn at one or both -ends of the line. -I<Where> must have one of the values B<none> (for no arrowheads), -B<first> (for an arrowhead at the first point of the line), -B<last> (for an arrowhead at the last point of the line), or -B<both> (for arrowheads at both ends). -This option defaults to B<none>. - -=item B<-arrowshape> =E<gt> I<shape> - -This option indicates how to draw arrowheads. -The I<shape> argument must be a list with three elements, each -specifying a distance in any of the forms described in -the L<"COORDINATES"> section above. -The first element of the list gives the distance along the line -from the neck of the arrowhead to its tip. -The second element gives the distance along the line from the -trailing points of the arrowhead to the tip, and the third -element gives the distance from the outside edge of the line to the -trailing points. -If this option isn't specified then Tk picks a ``reasonable'' shape. - -=item B<-capstyle> =E<gt> I<style> - -Specifies the ways in which caps are to be drawn at the endpoints -of the line. -I<Style> may have any of the forms accepted by B<Tk_GetCapStyle> -(B<butt>, B<projecting>, or B<round>). -If this option isn't specified then it defaults to B<butt>. -Where arrowheads are drawn the cap style is ignored. - -=item B<-dash> =E<gt> I<pattern> - -=item B<-activedash> =E<gt> I<pattern> - -=item B<-disableddash> =E<gt> I<pattern> - -This option specifies dash patterns for the normal state, the active -state, and the disabled state of a line item. -I<pattern> may have any of the forms accepted by B<Tk_GetDash>. -If the dash options are omitted then the default is a solid outline. - -=item B<-dashoffset> =E<gt> I<offset> - -The starting I<offset> into the pattern provided by the -B<-dash> option. -B<-dashoffset> is ignored if there is no B<-dash> pattern. - -=item B<-fill> =E<gt> I<color> - -=item B<-activefill> =E<gt> I<color> - -=item B<-disabledfill> =E<gt> I<color> - -Specifies the color to be used to fill the line in its normal, active, and -disabled states. -I<Color> may have -any of the forms acceptable to B<Tk_GetColor>. It may also be undef, -in which case the line will be transparent. -This option defaults to B<black>. - -=item B<-joinstyle> =E<gt> I<style> - -Specifies the ways in which joints are to be drawn at the vertices -of the line. -I<Style> may have any of the forms accepted by B<Tk_GetCapStyle> -(B<bevel>, B<miter>, or B<round>). -If this option isn't specified then it defaults to B<miter>. -If the line only contains two points then this option is -irrelevant. - -=item B<-smooth> =E<gt> I<boolean> - -I<Boolean> must have one of the forms accepted by B<Tk_GetBoolean>. -It indicates whether or not the line should be drawn as a curve. -If so, the line is rendered as a set of parabolic splines: one spline -is drawn for the first and second line segments, one for the second -and third, and so on. Straight-line segments can be generated within -a curve by duplicating the end-points of the desired line segment. - -=item B<-splinesteps> =E<gt> I<number> - -Specifies the degree of smoothness desired for curves: each spline -will be approximated with I<number> line segments. This -option is ignored unless the B<-smooth> option is true. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the line item where I<state> may be set to one of: -normal, disabled, or hidden. A line item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-stipple> =E<gt> I<bitmap> - -=item B<-activestipple> =E<gt> I<bitmap> - -=item B<-disabledstipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to fill the -the line in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If I<bitmap> is an empty string (the default), then filling is -done in a solid fashion. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the line item is updated on the screen. - -=item B<-width> =E<gt> I<lineWidth> - -=item B<-activewidth> =E<gt> I<lineWidth> - -=item B<-disabledwidth> =E<gt> I<lineWidth> - -Specifies the width of the line -in its normal, active and disabled states. -I<lineWidth> may be in any of the forms -described in the L<"COORDINATES"> section above. - -Wide lines will be drawn centered on the path specified by the -points. -If this option isn't specified then it defaults to 1.0. - -=back - -=head1 OVAL ITEMS - -Items of type B<oval> appear as circular or oval regions on -the display. Each oval may have an outline, a fill, or -both. Ovals are created with methods of the -following form: - - $canvas->createOval(x1, y1, x2, y2, ?option, value, option, value, ...?) - -The arguments I<x1>, I<y1>, I<x2>, and I<y2> give -the coordinates of two diagonally opposite corners of a -rectangular region enclosing the oval. -The oval will include the top and left edges of the rectangle -not the lower or right edges. -If the region is square then the resulting oval is circular; -otherwise it is elongated in shape. -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for ovals: - -=over 4 - -=item B<-dash> =E<gt> I<pattern> - -=item B<-activedash> =E<gt> I<pattern> - -=item B<-disableddash> =E<gt> I<pattern> - -This option specifies dash patterns for the normal state, the active -state, and the disabled state of an oval item. -I<pattern> may have any of the forms accepted by B<Tk_GetDash>. -If the dash options are omitted then the default is a solid outline. - -=item B<-dashoffset> =E<gt> I<offset> - -The starting I<offset> into the pattern provided by the -B<-dash> option. -B<-dashoffset> is ignored if there is no B<-dash> pattern. - -=item B<-fill> =E<gt> I<color> - -=item B<-activefill> =E<gt> I<color> - -=item B<-disabledfill> =E<gt> I<color> - -Specifies the color to be used to fill the oval in its normal, active, and -disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -If I<color> is undef (the default), then -then the oval will not be filled. - -=item B<-outline> =E<gt> I<color> - -=item B<-activeoutline> =E<gt> I<color> - -=item B<-disabledoutline> =E<gt> I<color> - -This option specifies the color that should be used to draw the -outline of the oval in its normal, active and disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -This option defaults to B<black>. -If I<color> is undef then no outline will be -drawn for the oval. - -=item B<-outlinestipple> =E<gt> I<bitmap> - -=item B<-activeoutlinestipple> =E<gt> I<bitmap> - -=item B<-disabledoutlinestipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to draw the -outline of the oval in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If the B<-outline> option hasn't been specified then this option -has no effect. -If I<bitmap> is an empty string (the default), then the outline is drawn -in a solid fashion. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the oval item where I<state> may be set to one of: -normal, disabled, or hidden. An oval item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-stipple> =E<gt> I<bitmap> - -=item B<-activestipple> =E<gt> I<bitmap> - -=item B<-disabledstipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to fill the -the oval in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If the B<-fill> option hasn't been specified then this option -has no effect. -If I<bitmap> is an empty string (the default), then filling is done -in a solid fashion. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the oval item is updated on the screen. - -=item B<-width> =E<gt> I<outlineWidth> - -=item B<-activewidth> =E<gt> I<outlineWidth> - -=item B<-disabledwidth> =E<gt> I<outlineWidth> - -Specifies the width of the outline to be drawn around -the oval, in its normal, active and disabled states. -I<outlineWidth> specifies the width of the outline to be drawn around -the oval, in any of the forms described in the L<"COORDINATES"> section above. - -If the B<-outline> option hasn't been specified then this option -has no effect. -Wide outlines are drawn centered on the oval path defined by -I<x1>, I<y1>, I<x2>, and I<y2>. -This option defaults to 1.0. - -=back - -=head1 POLYGON ITEMS - -Items of type B<polygon> appear as polygonal or curved filled regions -on the display. -Polygon items support coordinate indexing operations using the canvas -methods: B<dchars, index, insert.> -Polygons are created with methods of the following form: - - $canvas->createPolygon(x1, y1, ..., xn, yn, ?option, value, option, value, ...?) - -The arguments I<x1> through I<yn> specify the coordinates for -three or more points that define a closed polygon. -The first and last points may be the same; whether they are or not, -Tk will draw the polygon as a closed polygon. -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for polygons: - -=over 4 - -=item B<-dash> =E<gt> I<pattern> - -=item B<-activedash> =E<gt> I<pattern> - -=item B<-disableddash> =E<gt> I<pattern> - -This option specifies dash patterns for the normal state, the active -state, and the disabled state of an polygon item. -I<pattern> may have any of the forms accepted by B<Tk_GetDash>. -If the dash options are omitted then the default is a solid outline. - -=item B<-dashoffset> =E<gt> I<offset> - -The starting I<offset> into the pattern provided by the -B<-dash> option. -B<-dashoffset> is ignored if there is no B<-dash> pattern. - -=item B<-fill> =E<gt> I<color> - -=item B<-activefill> =E<gt> I<color> - -=item B<-disabledfill> =E<gt> I<color> - -Specifies the color to be used to fill the polygon in its normal, active, and -disabled states. -I<Color> -may have any of the forms acceptable to B<Tk_GetColor>. -If I<color> is undef then the polygon will be -transparent. -This option defaults to B<black>. - -=item B<-joinstyle> =E<gt> I<style> - -Specifies the ways in which joints are to be drawn at the vertices -of the outline. -I<Style> may have any of the forms accepted by B<Tk_GetCapStyle> -(B<bevel>, B<miter>, or B<round>). -If this option isn't specified then it defaults to B<miter>. - -=item B<-outline> =E<gt> I<color> - -=item B<-activeoutline> =E<gt> I<color> - -=item B<-disabledoutline> =E<gt> I<color> - -This option specifies the color that should be used to draw the -outline of the polygon in its normal, active and disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -If I<color> is undef then no outline will be -drawn for the polygon. -This option defaults to undef (no outline). - -=item B<-outlinestipple> =E<gt> I<bitmap> - -=item B<-activeoutlinestipple> =E<gt> I<bitmap> - -=item B<-disabledoutlinestipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to draw the -outline of the polygon in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If the B<-outline> option hasn't been specified then this option -has no effect. -If I<bitmap> is an empty string (the default), then the outline is drawn -in a solid fashion. - -=item B<-smooth> =E<gt> I<boolean> - -I<Boolean> must have one of the forms accepted by B<Tk_GetBoolean> -It indicates whether or not the polygon should be drawn with a -curved perimeter. -If so, the outline of the polygon becomes a set of parabolic splines, -one spline for the first and second line segments, one for the second -and third, and so on. Straight-line segments can be generated in a -smoothed polygon by duplicating the end-points of the desired line segment. - -=item B<-splinesteps> =E<gt> I<number> - -Specifies the degree of smoothness desired for curves: each spline -will be approximated with I<number> line segments. This -option is ignored unless the B<-smooth> option is true. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the polygon item where I<state> may be set to one of: -normal, disabled, or hidden. A polygon item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-stipple> =E<gt> I<bitmap> - -=item B<-activestipple> =E<gt> I<bitmap> - -=item B<-disabledstipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to fill the -the polygon in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If I<bitmap> is an empty string (the default), then filling is -done in a solid fashion. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the polygon item is updated on the screen. - -=item B<-width> =E<gt> I<outlineWidth> - -=item B<-activewidth> =E<gt> I<outlineWidth> - -=item B<-disabledwidth> =E<gt> I<outlineWidth> - -=item Specifies the width of the outline to be drawn around - -the polygon, in its normal, active and disabled states. -I<outlineWidth> may be in any of the forms described in the COORDINATES -section above. -I<OutlineWidth> specifies the width of the outline to be drawn around -the polygon, in any of the forms described in the L<"COORDINATES"> section above. -If the B<-outline> option hasn't been specified then this option -has no effect. This option defaults to 1.0. - -Polygon items are different from other items such as rectangles, ovals -and arcs in that interior points are considered to be ``inside'' a -polygon (e.g. for purposes of the B<find closest> and -B<find overlapping> methods) even if it is not filled. -For most other item types, an -interior point is considered to be inside the item only if the item -is filled or if it has neither a fill nor an outline. If you would -like an unfilled polygon whose interior points are not considered -to be inside the polygon, use a line item instead. - -=back - -=head1 RECTANGLE ITEMS - -Items of type B<rectangle> appear as rectangular regions on -the display. Each rectangle may have an outline, a fill, or -both. Rectangles are created with methods of the -following form: - - $canvas->createRectangle(x1, y1, x2, y2, ?option, value, option, value, ...?) - -The arguments I<x1>, I<y1>, I<x2>, and I<y2> give -the coordinates of two diagonally opposite corners of the rectangle -(the rectangle will include its upper and left edges but not -its lower or right edges). -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for rectangles: - -=over 4 - -=item B<-dash> =E<gt> I<pattern> - -=item B<-activedash> =E<gt> I<pattern> - -=item B<-disableddash> =E<gt> I<pattern> - -This option specifies dash patterns for the normal state, the active -state, and the disabled state of a rectangle item. -I<pattern> may have any of the forms accepted by B<Tk_GetDash>. -If the dash options are omitted then the default is a solid outline. - -=item B<-dashoffset> =E<gt> I<offset> - -The starting I<offset> into the pattern provided by the -B<-dash> option. -B<-dashoffset> is ignored if there is no B<-dash> pattern. - -=item B<-fill> =E<gt> I<color> - -=item B<-activefill> =E<gt> I<color> - -=item B<-disabledfill> =E<gt> I<color> - -Specifies the color to be used to fill the rectangle in its normal, active, and -disabled states. -I<Color> -may be specified in any of the forms accepted by B<Tk_GetColor>. -If I<color> is undef (the default), -then the rectangle will not be filled. - -=item B<-outline> =E<gt> I<color> - -=item B<-activeoutline> =E<gt> I<color> - -=item B<-disabledoutline> =E<gt> I<color> - -This option specifies the color that should be used to draw the -outline of the rectangle in its normal, active and disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -This option defaults to B<black>. -If I<color> is undef then no outline will be -drawn for the rectangle. - -=item B<-outlinestipple> =E<gt> I<bitmap> - -=item B<-activeoutlinestipple> =E<gt> I<bitmap> - -=item B<-disabledoutlinestipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to draw the -outline of the rectangle in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If the B<-outline> option hasn't been specified then this option -has no effect. -If I<bitmap> is an empty string (the default), then the outline is drawn -in a solid fashion. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the rectangle item where I<state> may be set to one of: -normal, disabled, or hidden. A rectangle item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-stipple> =E<gt> I<bitmap> - -=item B<-activestipple> =E<gt> I<bitmap> - -=item B<-disabledstipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to fill the -the rectangle in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If the B<-fill> option hasn't been specified then this option -has no effect. -If I<bitmap> is an empty string (the default), then filling -is done in a solid fashion. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the rectangle item is updated on the screen. - -=item B<-width> =E<gt> I<outlineWidth> - -=item B<-activewidth> =E<gt> I<outlineWidth> - -=item B<-disabledwidth> =E<gt> I<outlineWidth> - -Specifies the width of the outline to be drawn around -the rectangle, in its normal, active and disabled states. -I<OutlineWidth> specifies the width of the outline to be drawn around -the rectangle, in any of the forms described in the L<"COORDINATES"> section above. - -If the B<-outline> option hasn't been specified then this option -has no effect. -Wide outlines are drawn centered on the rectangular path -defined by I<x1>, I<y1>, I<x2>, and I<y2>. -This option defaults to 1.0. - -=back - -=head1 TEXT ITEMS - -A text item displays a string of characters on the screen in one -or more lines. -Text items support indexing and selection, along with the -following text-related canvas methods: B<dchars>, -B<focus>, B<icursor>, B<index>, B<insert>, -B<select>. -Text items are created with methods of the following -form: - - $canvas->createText(x, y, ?option, value, option, value, ...?) - -The arguments I<x> and I<y> specify the coordinates of a -point used to position the text on the display (see the options -below for more information on how text is displayed). -After the coordinates there may be any number of I<option>-I<value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> methods to change the item's -configuration. -The following options are supported for text items: - -=over 4 - -=item B<-anchor> =E<gt> I<anchorPos> - -I<AnchorPos> tells how to position the text relative to the -positioning point for the text; it may have any of the forms -accepted by B<Tk_GetAnchor>. For example, if I<anchorPos> -is B<center> then the text is centered on the point; if -I<anchorPos> is B<n> then the text will be drawn such that -the top center point of the rectangular region occupied by the -text will be at the positioning point. -This option defaults to B<center>. - -=item B<-fill> =E<gt> I<color> - -=item B<-activefill> =E<gt> I<color> - -=item B<-disabledfill> =E<gt> I<color> - -Specifies the color to be used to fill the text in its normal, active, and -disabled states. -I<Color> may have any of the forms accepted by B<Tk_GetColor>. -If I<color> is undef then the text will be transparent. -If this option isn't specified then it defaults to B<black>. - -=item B<-font> =E<gt> I<fontName> - -Specifies the font to use for the text item. -I<FontName> may be any string acceptable to B<Tk_GetFontStruct>. -If this option isn't specified, it defaults to a system-dependent -font. - -=item B<-justify> =E<gt> I<how> - -Specifies how to justify the text within its bounding region. -I<How> must be one of the values B<left>, B<right>, -or B<center>. -This option will only matter if the text is displayed as multiple -lines. -If the option is omitted, it defaults to B<left>. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the text item where I<state> may be set to one of: -normal, disabled, or hidden. A text item may also be in the "active" -state if the mouse is currently over it. Many options can take -separate specifications in normal, active and disabled states such that the -appearance of the item can be different in each state. - -=item B<-stipple> =E<gt> I<bitmap> - -=item B<-activestipple> =E<gt> I<bitmap> - -=item B<-disabledstipple> =E<gt> I<bitmap> - -This option specifies stipple patterns that should be used to fill the -the text in its normal, active and disabled states. -I<bitmap> specifies the stipple pattern to use, in any of the -forms accepted by B<Tk_GetBitmap>. -If I<bitmap> is an empty string (the default) then the text -is drawn in a solid fashion. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-text> =E<gt> I<string> - -I<String> specifies the characters to be displayed in the text item. -Newline characters cause line breaks. -The characters in the item may also be changed with the -B<insert> and B<delete> methods. -This option defaults to an empty string. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the text item is updated on the screen. - -=item B<-width> =E<gt> I<lineLength> - -Specifies a maximum line length for the text, in any of the forms -described in the L<"COORDINATES"> section above. -If this option is zero (the default) the text is broken into -lines only at newline characters. -However, if this option is non-zero then any line that would -be longer than I<lineLength> is broken just before a space -character to make the line shorter than I<lineLength>; the -space character is treated as if it were a newline -character. - -=back - -=head1 WINDOW ITEMS - -Items of type B<window> cause a particular window to be displayed -at a given position on the canvas. -Window items are created with methods of the following form: - -S< >I<$canvas>->B<createWindow>(I<x, y>?, I<-option>=>I<value>, I<-option>=>I<value>, ...?) - -The arguments I<x> and I<y> specify the coordinates of a -point used to position the window on the display (see the B<-anchor> -option below for more information on how bitmaps are displayed). -After the coordinates there may be any number of I<option-value> -pairs, each of which sets one of the configuration options -for the item. These same I<option>-I<value> pairs may be -used in B<itemconfigure> method to change the item's -configuration. -The following options are supported for window items: - -=over 4 - -=item B<-anchor> =E<gt> I<anchorPos> - -I<AnchorPos> tells how to position the window relative to the -positioning point for the item; it may have any of the forms -accepted by B<Tk_GetAnchor>. For example, if I<anchorPos> -is B<center> then the window is centered on the point; if -I<anchorPos> is B<n> then the window will be drawn so that -its top center point is at the positioning point. -This option defaults to B<center>. - -=item B<-height> =E<gt> I<pixels> - -Specifies the height to assign to the item's window. -I<Pixels> may have any of the -forms described in the L<"COORDINATES"> section above. -If this option isn't specified, or if it is specified as an empty -string, then the window is given whatever height it requests internally. - -=item B<-state> =E<gt> I<state> - -Modifies the state of the window item where I<state> may be set to one of: -normal, disabled, or hidden. - -=item B<-tags> =E<gt> I<tagList> - -Specifies a set of tags to apply to the item. -I<TagList> consists of a list of tag names, which replace any -existing tags for the item. -I<TagList> may be an empty list. - -=item B<-updatecommand> =E<gt> I<command> - -Specifies a callback that is to be executed every time -the window item is updated on the screen. - -=item B<-width> =E<gt> I<pixels> - -Specifies the width to assign to the item's window. -I<Pixels> may have any of the -forms described in the L<"COORDINATES"> section above. -If this option isn't specified, or if it is specified as an empty -string, then the window is given whatever width it requests internally. - -=item B<-window> =E<gt> I<$widget> - -Specifies the window to associate with this item. -The window specified by $widget must either be a child of -the canvas widget or a child of some ancestor of the canvas widget. -I<PathName> may not refer to a top-level window. - -Note: due to restrictions in the ways that windows are managed, it is not -possible to draw other graphical items (such as lines and images) on top -of window items. A window item always obscures any graphics that -overlap it, regardless of their order in the display list. - -=back - -=head1 APPLICATION-DEFINED ITEM TYPES - -It is possible for individual applications to define new item -types for canvas widgets using C code. -See the documentation for B<Tk_CreateItemType>. - -=head1 BINDINGS - -Canvas has default bindings to allow scrolling if necessary: -<Up>, <Down>, <Left> and <Right> (and their <Control-*> counter -parts). Further <Proir>, <Next>, <Home> and <End>. These -bindings allow you to navigate the same way as in other -widgets that can scroll. - -=head1 Perl/Tk Methods - -The following methods are added as perl code: - -=over 4 - -=item $canvas->get_corners - -Returns the bounding box in Canvas coordinates of the visible portion -of the Canvas. (Written by Slaven Rezic.) - -=back - -=head1 CREDITS - -Tk's canvas widget is a blatant ripoff of ideas from Joel Bartlett's -I<ezd> program. I<Ezd> provides structured graphics in a Scheme -environment and preceded canvases by a year or two. Its simple -mechanisms for placing and animating graphical objects inspired the -functions of canvases. - -=head1 KEYWORDS - -canvas, widget - -=cut - |