Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Tk::bindtags.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "BINDTAGS 1"
132.TH BINDTAGS 1 "2000-12-30" "perl v5.8.0" "User Contributed Perl Documentation"
133.SH "NAME"
134Tk::bindtags \- Determine which bindings apply to a window, and order of evaluation
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137\&\fI$widget\fR\->\fBbindtags\fR([\fItagList\fR]);
138\&\fI@tags\fR = \fI$widget\fR\->\fBbindtags\fR;
139.SH "DESCRIPTION"
140.IX Header "DESCRIPTION"
141When a binding is created with the \fBbind\fR command, it is
142associated either with a particular window such as \fI$widget\fR,
143a class name such as \fBTk::Button\fR, the keyword \fBall\fR, or any
144other string.
145All of these forms are called \fIbinding tags\fR.
146Each window has a list of binding tags that determine how
147events are processed for the window.
148When an event occurs in a window, it is applied to each of the
149window's tags in order: for each tag, the most specific binding
150that matches the given tag and event is executed.
151See the Tk::bind documentation for more information on the matching
152process.
153.PP
154By default, each window has four binding tags consisting of the
155the window's class name, name of the window, the name of the window's
156nearest toplevel ancestor, and \fBall\fR, in that order.
157Toplevel windows have only three tags by default, since the toplevel
158name is the same as that of the window.
159.PP
160Note that this order is \fIdifferent\fR from order used by Tcl/Tk.
161Tcl/Tk has the window ahead of the class name in the binding order.
162This is because Tcl is procedural rather than object oriented and
163the normal way for Tcl/Tk applications to override class bindings
164is with an instance binding. However, with perl/Tk the normal way
165to override a class binding is to derive a class. The perl/Tk order
166causes instance bindings to execute after the class binding, and
167so instance bind callbacks can make use of state changes (e.g. changes
168to the selection) than the class bindings have made.
169.PP
170The \fBbindtags\fR command allows the binding tags for a window to be
171read and modified.
172.PP
173If \fI$widget\fR\->\fBbindtags\fR is invoked without an argument, then the
174current set of binding tags for \f(CW$widget\fR is returned as a list.
175If the \fItagList\fR argument is specified to \fBbindtags\fR,
176then it must be a reference to and array; the tags for \f(CW$widget\fR are changed
177to the elements of the array. (A reference to an anonymous array can
178be created by enclosin the elements in \fB[ ]\fR.)
179The elements of \fItagList\fR may be arbitrary strings or widget objects,
180if no window exists for an object at the time an event is processed,
181then the tag is ignored for that event.
182The order of the elements in \fItagList\fR determines the order in
183which binding callbacks are executed in response to events.
184For example, the command
185.PP
186.Vb 1
187\& $b->bindtags([$b,ref($b),$b->toplevel,'all'])
188.Ve
189.PP
190applies the Tcl/Tk binding order which binding callbacks will be
191evaluated for a button (say) \fB$b\fR so that \fB$b\fR's instance bindings
192are invoked first, following by bindings for \fB$b\fR's class, followed by
193bindings for \fB$b\fR's toplevel, followed by '\fBall\fR' bindings.
194.PP
195If \fItagList\fR is an empty list i.e. \fB[]\fR, then the binding
196tags for \f(CW$widget\fR are returned to the perl/Tk default state described above.
197.PP
198The \fBbindtags\fR command may be used to introduce arbitrary
199additional binding tags for a window, or to remove standard tags.
200For example, the command
201.PP
202.Vb 1
203\& $b->bindtags(['TrickyButton',$b->toplevel,'all'])
204.Ve
205.PP
206replaces the (say) \fBTk::Button\fR tag for \fB$b\fR with \fBTrickyButton\fR.
207This means that the default widget bindings for buttons, which are
208associated with the \fBTk::Button\fR tag, will no longer apply to \fB$b\fR,
209but any bindings associated with \fBTrickyButton\fR (perhaps some
210new button behavior) will apply.
211.SH "BUGS"
212.IX Header "BUGS"
213The current mapping of the 'native' Tk behaviour of this method
214i.e. returning a list but only accepting a reference to an array is
215counter intuitive. The perl/Tk interface may be tidied up, returning
216a list is sensible so, most likely fix will be to allow a list to be
217passed to /fIset/fR the bindtags.
218.SH "SEE ALSO"
219.IX Header "SEE ALSO"
220Tk::bind
221Tk::callbacks
222.SH "KEYWORDS"
223.IX Header "KEYWORDS"
224binding, event, tag