home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _d2d785de4c0e5357eef28fd31a358af6 < prev    next >
Text File  |  2000-03-23  |  27KB  |  578 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Tk::Listbox - Create and manipulate Listbox widgets</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Tk::Listbox - Create and manipulate Listbox widgets</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#standard options">STANDARD OPTIONS</A></LI>
  25.     <LI><A HREF="#widgetspecific options">WIDGET-SPECIFIC OPTIONS</A></LI>
  26.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  27.     <LI><A HREF="#indices">INDICES</A></LI>
  28.     <LI><A HREF="#widget methods">WIDGET METHODS</A></LI>
  29.     <LI><A HREF="#default bindings">DEFAULT BINDINGS</A></LI>
  30.     <LI><A HREF="#keywords">KEYWORDS</A></LI>
  31. </UL>
  32. <!-- INDEX END -->
  33.  
  34. <HR>
  35. <P>
  36. <H1><A NAME="name">NAME</A></H1>
  37. <P>Tk::Listbox - Create and manipulate Listbox widgets</P>
  38. <P>
  39. <HR>
  40. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  41. <UL>
  42. <LI>Linux</LI>
  43. <LI>Solaris</LI>
  44. <LI>Windows</LI>
  45. </UL>
  46. <HR>
  47. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  48. <P><EM>$listbox</EM> = <EM>$parent</EM>-><STRONG>Listbox</STRONG>(?<EM>options</EM>?);</P>
  49. <P>
  50. <HR>
  51. <H1><A NAME="standard options">STANDARD OPTIONS</A></H1>
  52. <P><TABLE CELLSPACING=0 CELLPADDING=0><TR><TD><STRONG>-background</STRONG><TD><STRONG>-foreground</STRONG><TD><STRONG>-relief</STRONG><TD><STRONG>-takefocus</STRONG>
  53. <TR><TD><STRONG>-borderwidth</STRONG><TD><STRONG>-height</STRONG><TD><STRONG>-selectbackground</STRONG><TD><STRONG>-width</STRONG>
  54. <TR><TD><STRONG>-cursor</STRONG><TD><STRONG>-highlightbackground</STRONG><TD><STRONG>-selectborderwidth</STRONG><TD><STRONG>-xscrollcommand</STRONG>
  55. <TR><TD><STRONG>-exportselection</STRONG><TD><STRONG>-highlightcolor</STRONG><TD><STRONG>-selectforeground</STRONG><TD><STRONG>-yscrollcommand</STRONG>
  56. <TR><TD><STRONG>-font</STRONG><TD><STRONG>-highlightthickness</STRONG><TD><STRONG>-setgrid</STRONG></TABLE></P>
  57. <P>See <A HREF="../../../site/lib/Tk/options.html">the Tk::options manpage</A> for details of the standard options.</P>
  58. <P>
  59. <HR>
  60. <H1><A NAME="widgetspecific options">WIDGET-SPECIFIC OPTIONS</A></H1>
  61. <DL>
  62. <DT><STRONG><A NAME="item_Name%3A_height">Name:    <STRONG>height</STRONG></A></STRONG><BR>
  63. <DD>
  64. <DT><STRONG><A NAME="item_Class%3A_Height">Class:    <STRONG>Height</STRONG></A></STRONG><BR>
  65. <DD>
  66. <DT><STRONG><A NAME="item_Switch%3A_%2Dheight">Switch:    <STRONG>-height</STRONG></A></STRONG><BR>
  67. <DD>
  68. Specifies the desired height for the window, in lines.
  69. If zero or less, then the desired height for the window is made just
  70. large enough to hold all the elements in the listbox.
  71. <P></P>
  72. <DT><STRONG><A NAME="item_Name%3A_selectMode">Name:    <STRONG>selectMode</STRONG></A></STRONG><BR>
  73. <DD>
  74. <DT><STRONG><A NAME="item_Class%3A_SelectMode">Class:    <STRONG>SelectMode</STRONG></A></STRONG><BR>
  75. <DD>
  76. <DT><STRONG><A NAME="item_Switch%3A_%2Dselectmode">Switch:    <STRONG>-selectmode</STRONG></A></STRONG><BR>
  77. <DD>
  78. Specifies one of several styles for manipulating the selection.
  79. The value of the option may be arbitrary, but the default bindings
  80. expect it to be either <STRONG>single</STRONG>, <STRONG>browse</STRONG>, <STRONG>multiple</STRONG>,
  81. or <STRONG>extended</STRONG>;  the default value is <STRONG>browse</STRONG>.
  82. <P></P>
  83. <DT><STRONG><A NAME="item_Name%3A_width">Name:    <STRONG>width</STRONG></A></STRONG><BR>
  84. <DD>
  85. <DT><STRONG><A NAME="item_Class%3A_Width">Class:    <STRONG>Width</STRONG></A></STRONG><BR>
  86. <DD>
  87. <DT><STRONG><A NAME="item_Switch%3A_%2Dwidth">Switch:    <STRONG>-width</STRONG></A></STRONG><BR>
  88. <DD>
  89. Specifies the desired width for the window in characters.
  90. If the font doesn't have a uniform width then the width of the
  91. character ``0'' is used in translating from character units to
  92. screen units.
  93. If zero or less, then the desired width for the window is made just
  94. large enough to hold all the elements in the listbox.
  95. <P></P></DL>
  96. <P>
  97. <HR>
  98. <H1><A NAME="description">DESCRIPTION</A></H1>
  99. <P>The <STRONG>Listbox</STRONG> method creates a new window (given by the
  100. $widget argument) and makes it into a listbox widget.
  101. Additional
  102. options, described above, may be specified on the command line
  103. or in the option database
  104. to configure aspects of the listbox such as its colors, font,
  105. text, and relief.  The <STRONG>listbox</STRONG> command returns its
  106. $widget argument.  At the time this command is invoked,
  107. there must not exist a window named $widget, but
  108. $widget's parent must exist.</P>
  109. <P>A listbox is a widget that displays a list of strings, one per line.
  110. When first created, a new listbox has no elements.
  111. Elements may be added or deleted using methods described
  112. below.  In addition, one or more elements may be selected as described
  113. below.
  114. If a listbox is exporting its selection (see <STRONG>exportSelection</STRONG>
  115. option), then it will observe the standard X11 protocols
  116. for handling the selection.
  117. Listbox selections are available as type <STRONG>STRING</STRONG>;
  118. the value of the selection will be the text of the selected elements, with
  119. newlines separating the elements.</P>
  120. <P>It is not necessary for all the elements to be
  121. displayed in the listbox window at once;  commands described below
  122. may be used to change the view in the window.  Listboxes allow
  123. scrolling in both directions using the standard <STRONG>xScrollCommand</STRONG>
  124. and <STRONG>yScrollCommand</STRONG> options.
  125. They also support scanning, as described below.</P>
  126. <P>
  127. <HR>
  128. <H1><A NAME="indices">INDICES</A></H1>
  129. <P>Many of the methods for listboxes take one or more indices
  130. as arguments.
  131. An index specifies a particular element of the listbox, in any of
  132. the following ways:</P>
  133. <DL>
  134. <DT><STRONG><A NAME="item_number"><EM>number</EM></A></STRONG><BR>
  135. <DD>
  136. Specifies the element as a numerical index, where 0 corresponds
  137. to the first element in the listbox.
  138. <P></P>
  139. <DT><STRONG><A NAME="item_active"><STRONG>active</STRONG></A></STRONG><BR>
  140. <DD>
  141. Indicates the element that has the location cursor.  This element
  142. will be displayed with an underline when the listbox has the
  143. keyboard focus, and it is specified with the <STRONG>activate</STRONG>
  144. method.
  145. <P></P>
  146. <DT><STRONG><A NAME="item_anchor"><STRONG>anchor</STRONG></A></STRONG><BR>
  147. <DD>
  148. Indicates the anchor point for the selection, which is set with the
  149. <STRONG>selection anchor</STRONG> method.
  150. <P></P>
  151. <DT><STRONG><A NAME="item_end"><STRONG>end</STRONG></A></STRONG><BR>
  152. <DD>
  153. Indicates the end of the listbox.
  154. For most commands this refers to the last element in the listbox,
  155. but for a few commands such as <STRONG>index</STRONG> and <STRONG>insert</STRONG>
  156. it refers to the element just after the last one.
  157. <P></P>
  158. <DT><STRONG><A NAME="item_%40x%2Cy"><STRONG>@</STRONG><EM>x</EM><STRONG>,</STRONG><EM>y</EM></A></STRONG><BR>
  159. <DD>
  160. Indicates the element that covers the point in the listbox window
  161. specified by <EM>x</EM> and <EM>y</EM> (in pixel coordinates).  If no
  162. element covers that point, then the closest element to that
  163. point is used.
  164. <P></P></DL>
  165. <P>In the method descriptions below, arguments named <EM>index</EM>,
  166. <EM>first</EM>, and <EM>last</EM> always contain text indices in one of
  167. the above forms.</P>
  168. <P>
  169. <HR>
  170. <H1><A NAME="widget methods">WIDGET METHODS</A></H1>
  171. <P>The <STRONG>Listbox</STRONG> method creates a widget object.
  172. This object supports the <STRONG>configure</STRONG> and <STRONG>cget</STRONG> methods
  173. described in <A HREF="../../../site/lib/Tk/options.html">the Tk::options manpage</A> which can be used to enquire and
  174. modify the options described above.
  175. The widget also inherits all the methods provided by the generic
  176. <A HREF="../../../site/lib/Tk/Widget.html">Tk::Widget</A> class.</P>
  177. <P>The following additional methods are available for listbox widgets:</P>
  178. <DL>
  179. <DT><STRONG><A NAME="item_activate"><EM>$listbox</EM>-><STRONG>activate</STRONG>(<EM>index</EM>)</A></STRONG><BR>
  180. <DD>
  181. Sets the active element to the one indicated by <EM>index</EM>.
  182. If <EM>index</EM> is outside the range of elements in the listbox
  183. then the closest element is activated.
  184. The active element is drawn with an underline when the widget
  185. has the input focus, and its index may be retrieved with the
  186. index <STRONG>active</STRONG>.
  187. <P></P>
  188. <DT><STRONG><A NAME="item_bbox"><EM>$listbox</EM>-><STRONG>bbox</STRONG>(<EM>index</EM>)</A></STRONG><BR>
  189. <DD>
  190. Returns a list of four numbers describing the bounding box of
  191. the text in the element given by <EM>index</EM>.
  192. The first two elements of the list give the x and y coordinates
  193. of the upper-left corner of the screen area covered by the text
  194. (specified in pixels relative to the widget) and the last two
  195. elements give the width and height of the area, in pixels.
  196. If no part of the element given by <EM>index</EM> is visible on the
  197. screen,
  198. or if <EM>index</EM> refers to a non-existent element,
  199. then the result is an empty string;  if the element is
  200. partially visible, the result gives the full area of the element,
  201. including any parts that are not visible.
  202. <P></P>
  203. <DT><STRONG><A NAME="item_curselection"><EM>$listbox</EM>-><STRONG>curselection</STRONG></A></STRONG><BR>
  204. <DD>
  205. Returns a list containing the numerical indices of
  206. all of the elements in the listbox that are currently selected.
  207. If there are no elements selected in the listbox then an empty
  208. string is returned.
  209. <P></P>
  210. <DT><STRONG><A NAME="item_delete"><EM>$listbox</EM>-><STRONG>delete</STRONG>(<EM>first, </EM>?<EM>last</EM>?)</A></STRONG><BR>
  211. <DD>
  212. Deletes one or more elements of the listbox.  <EM>First</EM> and <EM>last</EM>
  213. are indices specifying the first and last elements in the range
  214. to delete.  If <EM>last</EM> isn't specified it defaults to
  215. <EM>first</EM>, i.e. a single element is deleted.
  216. <P></P>
  217. <DT><STRONG><A NAME="item_get"><EM>$listbox</EM>-><STRONG>get</STRONG>(<EM>first, </EM>?<EM>last</EM>?)</A></STRONG><BR>
  218. <DD>
  219. If <EM>last</EM> is omitted, returns the contents of the listbox
  220. element indicated by <EM>first</EM>,
  221. or an empty string if <EM>first</EM> refers to a non-existent element.
  222. If <EM>last</EM> is specified, the command returns a list whose elements
  223. are all of the listbox elements between <EM>first</EM> and <EM>last</EM>,
  224. inclusive.
  225. Both <EM>first</EM> and <EM>last</EM> may have any of the standard
  226. forms for indices.
  227. <P></P>
  228. <DT><STRONG><A NAME="item_index"><EM>$listbox</EM>-><STRONG>index</STRONG>(<EM>index</EM>)</A></STRONG><BR>
  229. <DD>
  230. Returns the integer index value that corresponds to <EM>index</EM>.
  231. If <EM>index</EM> is <STRONG>end</STRONG> the return value is a count of the number
  232. of elements in the listbox (not the index of the last element).
  233. <P></P>
  234. <DT><STRONG><A NAME="item_insert"><EM>$listbox</EM>-><STRONG>insert</STRONG>(<EM>index, </EM>?<EM>element, element, ...</EM>?)</A></STRONG><BR>
  235. <DD>
  236. Inserts zero or more new elements in the list just before the
  237. element given by <EM>index</EM>.  If <EM>index</EM> is specified as
  238. <STRONG>end</STRONG> then the new elements are added to the end of the
  239. list.  Returns an empty string.
  240. <P></P>
  241. <DT><STRONG><A NAME="item_nearest"><EM>$listbox</EM>-><STRONG>nearest</STRONG>(<EM>y</EM>)</A></STRONG><BR>
  242. <DD>
  243. Given a y-coordinate within the listbox window, this command returns
  244. the index of the (visible) listbox element nearest to that y-coordinate.
  245. <P></P>
  246. <DT><STRONG><A NAME="item_scan"><EM>$listbox</EM>-><STRONG>scan</STRONG>(<EM>option, args</EM>)</A></STRONG><BR>
  247. <DD>
  248. This command is used to implement scanning on listboxes.  It has
  249. two forms, depending on <EM>option</EM>:
  250. <DL>
  251. <DT><STRONG><A NAME="item_scanMark"><EM>$listbox</EM>-><STRONG>scanMark</STRONG>(<EM>x, y</EM>)</A></STRONG><BR>
  252. <DD>
  253. Records <EM>x</EM> and <EM>y</EM> and the current view in the listbox
  254. window;  used in conjunction with later <STRONG>scan dragto</STRONG> commands.
  255. Typically this command is associated with a mouse button press in
  256. the widget.  It returns an empty string.
  257. <P></P>
  258. <DT><STRONG><A NAME="item_scanDragto"><EM>$listbox</EM>-><STRONG>scanDragto</STRONG>(<EM>x, y</EM>.)</A></STRONG><BR>
  259. <DD>
  260. This command computes the difference between its <EM>x</EM> and <EM>y</EM>
  261. arguments and the <EM>x</EM> and <EM>y</EM> arguments to the last
  262. <STRONG>scan mark</STRONG> command for the widget.
  263. It then adjusts the view by 10 times the
  264. difference in coordinates.  This command is typically associated
  265. with mouse motion events in the widget, to produce the effect of
  266. dragging the list at high speed through the window.  The return
  267. value is an empty string.
  268. <P></P></DL>
  269. <DT><STRONG><A NAME="item_see"><EM>$listbox</EM>-><STRONG>see</STRONG>(<EM>index</EM>)</A></STRONG><BR>
  270. <DD>
  271. Adjust the view in the listbox so that the element given by <EM>index</EM>
  272. is visible.
  273. If the element is already visible then the command has no effect;
  274. if the element is near one edge of the window then the listbox
  275. scrolls to bring the element into view at the edge;  otherwise
  276. the listbox scrolls to center the element.
  277. <P></P>
  278. <DT><STRONG><A NAME="item_selection"><EM>$listbox</EM>-><STRONG>selection</STRONG>(<EM>option, arg</EM>)</A></STRONG><BR>
  279. <DD>
  280. This command is used to adjust the selection within a listbox.  It
  281. has several forms, depending on <EM>option</EM>:
  282. <DL>
  283. <DT><STRONG><A NAME="item_selectionAnchor"><EM>$listbox</EM>-><STRONG>selectionAnchor</STRONG>(<EM>index</EM>)</A></STRONG><BR>
  284. <DD>
  285. Sets the selection anchor to the element given by <EM>index</EM>.
  286. If <EM>index</EM> refers to a non-existent element, then the closest
  287. element is used.
  288. The selection anchor is the end of the selection that is fixed
  289. while dragging out a selection with the mouse.
  290. The index <STRONG>anchor</STRONG> may be used to refer to the anchor
  291. element.
  292. <P></P>
  293. <DT><STRONG><A NAME="item_selectionClear"><EM>$listbox</EM>-><STRONG>selectionClear</STRONG>(<EM>first, </EM>?<EM>last</EM>?)</A></STRONG><BR>
  294. <DD>
  295. If any of the elements between <EM>first</EM> and <EM>last</EM>
  296. (inclusive) are selected, they are deselected.
  297. The selection state is not changed for elements outside
  298. this range.
  299. <P></P>
  300. <DT><STRONG><A NAME="item_selectionIncludes"><EM>$listbox</EM>-><STRONG>selectionIncludes</STRONG>(<EM>index</EM>)</A></STRONG><BR>
  301. <DD>
  302. Returns 1 if the element indicated by <EM>index</EM> is currently
  303. selected, 0 if it isn't.
  304. <P></P>
  305. <DT><STRONG><A NAME="item_selectionSet"><EM>$listbox</EM>-><STRONG>selectionSet</STRONG>(<EM>first, </EM>?<EM>last</EM>?)</A></STRONG><BR>
  306. <DD>
  307. Selects all of the elements in the range between
  308. <EM>first</EM> and <EM>last</EM>, inclusive, without affecting
  309. the selection state of elements outside that range.
  310. <P></P></DL>
  311. <DT><STRONG><A NAME="item_size"><EM>$listbox</EM>-><STRONG>size</STRONG></A></STRONG><BR>
  312. <DD>
  313. Returns a decimal string indicating the total number of elements
  314. in the listbox.
  315. <P></P>
  316. <DT><STRONG><A NAME="item_xview"><EM>$listbox</EM>-><STRONG>xview</STRONG>(<EM>args</EM>)</A></STRONG><BR>
  317. <DD>
  318. This command is used to query and change the horizontal position of the
  319. information in the widget's window.  It can take any of the following
  320. forms:
  321. <DL>
  322. <DT><STRONG><EM>$listbox</EM>-><STRONG>xview</STRONG></STRONG><BR>
  323. <DD>
  324. Returns a list containing two elements.
  325. Each element is a real fraction between 0 and 1;  together they describe
  326. the horizontal span that is visible in the window.
  327. For example, if the first element is .2 and the second element is .6,
  328. 20% of the listbox's text is off-screen to the left, the middle 40% is visible
  329. in the window, and 40% of the text is off-screen to the right.
  330. These are the same values passed to scrollbars via the <STRONG>-xscrollcommand</STRONG>
  331. option.
  332. <P></P>
  333. <DT><STRONG><EM>$listbox</EM>-><STRONG>xview</STRONG>(<EM>index</EM>)</STRONG><BR>
  334. <DD>
  335. Adjusts the view in the window so that the character position given by
  336. <EM>index</EM> is displayed at the left edge of the window.
  337. Character positions are defined by the width of the character <STRONG>0</STRONG>.
  338. <P></P>
  339. <DT><STRONG><EM>$listbox</EM>-><STRONG>xview</STRONG>(<STRONG>moveto</STRONG> => <EM>fraction</EM>)</STRONG><BR>
  340. <DD>
  341. Adjusts the view in the window so that <EM>fraction</EM> of the
  342. total width of the listbox text is off-screen to the left.
  343. <EM>fraction</EM> must be a fraction between 0 and 1.
  344. <P></P>
  345. <DT><STRONG><EM>$listbox</EM>-><STRONG>xview</STRONG>(<STRONG>scroll</STRONG> => <EM>number, what</EM>)</STRONG><BR>
  346. <DD>
  347. This command shifts the view in the window left or right according to
  348. <EM>number</EM> and <EM>what</EM>.
  349. <EM>Number</EM> must be an integer.
  350. <EM>What</EM> must be either <STRONG>units</STRONG> or <STRONG>pages</STRONG> or an abbreviation
  351. of one of these.
  352. If <EM>what</EM> is <STRONG>units</STRONG>, the view adjusts left or right by
  353. <EM>number</EM> character units (the width of the <STRONG>0</STRONG> character)
  354. on the display;  if it is <STRONG>pages</STRONG> then the view adjusts by
  355. <EM>number</EM> screenfuls.
  356. If <EM>number</EM> is negative then characters farther to the left
  357. become visible;  if it is positive then characters farther to the right
  358. become visible.
  359. <P></P></DL>
  360. <DT><STRONG><A NAME="item_yview"><EM>$listbox</EM>-><STRONG>yview</STRONG>(<EM>?args</EM>?)</A></STRONG><BR>
  361. <DD>
  362. This command is used to query and change the vertical position of the
  363. text in the widget's window.
  364. It can take any of the following forms:
  365. <DL>
  366. <DT><STRONG><EM>$listbox</EM>-><STRONG>yview</STRONG></STRONG><BR>
  367. <DD>
  368. Returns a list containing two elements, both of which are real fractions
  369. between 0 and 1.
  370. The first element gives the position of the listbox element at the
  371. top of the window, relative to the listbox as a whole (0.5 means
  372. it is halfway through the listbox, for example).
  373. The second element gives the position of the listbox element just after
  374. the last one in the window, relative to the listbox as a whole.
  375. These are the same values passed to scrollbars via the <STRONG>-yscrollcommand</STRONG>
  376. option.
  377. <P></P>
  378. <DT><STRONG><EM>$listbox</EM>-><STRONG>yview</STRONG>(<EM>index</EM>)</STRONG><BR>
  379. <DD>
  380. Adjusts the view in the window so that the element given by
  381. <EM>index</EM> is displayed at the top of the window.
  382. <P></P>
  383. <DT><STRONG><EM>$listbox</EM>-><STRONG>yview</STRONG>(<STRONG>moveto</STRONG> => <EM>fraction</EM>)</STRONG><BR>
  384. <DD>
  385. Adjusts the view in the window so that the element given by <EM>fraction</EM>
  386. appears at the top of the window.
  387. <EM>Fraction</EM> is a fraction between 0 and 1;  0 indicates the first
  388. element in the listbox, 0.33 indicates the element one-third the
  389. way through the listbox, and so on.
  390. <P></P>
  391. <DT><STRONG><EM>$listbox</EM>-><STRONG>yview</STRONG>(<STRONG>scroll</STRONG> => <EM>number, what</EM>)</STRONG><BR>
  392. <DD>
  393. This command adjusts the view in the window up or down according to
  394. <EM>number</EM> and <EM>what</EM>.
  395. <EM>Number</EM> must be an integer.
  396. <EM>What</EM> must be either <STRONG>units</STRONG> or <STRONG>pages</STRONG>.
  397. If <EM>what</EM> is <STRONG>units</STRONG>, the view adjusts up or down by
  398. <EM>number</EM> lines;  if it is <STRONG>pages</STRONG> then
  399. the view adjusts by <EM>number</EM> screenfuls.
  400. If <EM>number</EM> is negative then earlier elements
  401. become visible;  if it is positive then later elements
  402. become visible.
  403. <P></P></DL>
  404. </DL>
  405. <P>
  406. <HR>
  407. <H1><A NAME="default bindings">DEFAULT BINDINGS</A></H1>
  408. <P>Tk automatically creates class bindings for listboxes that give them
  409. Motif-like behavior.  Much of the behavior of a listbox is determined
  410. by its <STRONG>selectMode</STRONG> option, which selects one of four ways
  411. of dealing with the selection.</P>
  412. <P>If the selection mode is <STRONG>single</STRONG> or <STRONG>browse</STRONG>, at most one
  413. element can be selected in the listbox at once.
  414. In both modes, clicking button 1 on an element selects
  415. it and deselects any other selected item.
  416. In <STRONG>browse</STRONG> mode it is also possible to drag the selection
  417. with button 1.</P>
  418. <P>If the selection mode is <STRONG>multiple</STRONG> or <STRONG>extended</STRONG>,
  419. any number of elements may be selected at once, including discontiguous
  420. ranges.  In <STRONG>multiple</STRONG> mode, clicking button 1 on an element
  421. toggles its selection state without affecting any other elements.
  422. In <STRONG>extended</STRONG> mode, pressing button 1 on an element selects
  423. it, deselects everything else, and sets the anchor to the element
  424. under the mouse;  dragging the mouse with button 1
  425. down extends the selection to include all the elements between
  426. the anchor and the element under the mouse, inclusive.</P>
  427. <P>Most people will probably want to use <STRONG>browse</STRONG> mode for
  428. single selections and <STRONG>extended</STRONG> mode for multiple selections;
  429. the other modes appear to be useful only in special situations.</P>
  430. <P>In addition to the above behavior, the following additional behavior
  431. is defined by the default bindings:</P>
  432. <DL>
  433. <DT><STRONG><A NAME="item_%5B1%5D">[1]</A></STRONG><BR>
  434. <DD>
  435. In <STRONG>extended</STRONG> mode, the selected range can be adjusted by pressing
  436. button 1 with the Shift key down:  this modifies the selection to
  437. consist of the elements between the anchor and the element under
  438. the mouse, inclusive.
  439. The un-anchored end of this new selection can also be dragged with
  440. the button down.
  441. <P></P>
  442. <DT><STRONG><A NAME="item_%5B2%5D">[2]</A></STRONG><BR>
  443. <DD>
  444. In <STRONG>extended</STRONG> mode, pressing button 1 with the Control key down
  445. starts a toggle operation: the anchor is set to the element under
  446. the mouse, and its selection state is reversed.  The selection state
  447. of other elements isn't changed.
  448. If the mouse is dragged with button 1 down, then the selection state
  449. of all elements between the anchor and the element under the mouse
  450. is set to match that of the anchor element;  the selection state of
  451. all other elements remains what it was before the toggle operation
  452. began.
  453. <P></P>
  454. <DT><STRONG><A NAME="item_%5B3%5D">[3]</A></STRONG><BR>
  455. <DD>
  456. If the mouse leaves the listbox window with button 1 down, the window
  457. scrolls away from the mouse, making information visible that used
  458. to be off-screen on the side of the mouse.
  459. The scrolling continues until the mouse re-enters the window, the
  460. button is released, or the end of the listbox is reached.
  461. <P></P>
  462. <DT><STRONG><A NAME="item_%5B4%5D">[4]</A></STRONG><BR>
  463. <DD>
  464. Mouse button 2 may be used for scanning.
  465. If it is pressed and dragged over the listbox, the contents of
  466. the listbox drag at high speed in the direction the mouse moves.
  467. <P></P>
  468. <DT><STRONG><A NAME="item_%5B5%5D">[5]</A></STRONG><BR>
  469. <DD>
  470. If the Up or Down key is pressed, the location cursor (active
  471. element) moves up or down one element.
  472. If the selection mode is <STRONG>browse</STRONG> or <STRONG>extended</STRONG> then the
  473. new active element is also selected and all other elements are
  474. deselected.
  475. In <STRONG>extended</STRONG> mode the new active element becomes the
  476. selection anchor.
  477. <P></P>
  478. <DT><STRONG><A NAME="item_%5B6%5D">[6]</A></STRONG><BR>
  479. <DD>
  480. In <STRONG>extended</STRONG> mode, Shift-Up and Shift-Down move the location
  481. cursor (active element) up or down one element and also extend
  482. the selection to that element in a fashion similar to dragging
  483. with mouse button 1.
  484. <P></P>
  485. <DT><STRONG><A NAME="item_%5B7%5D">[7]</A></STRONG><BR>
  486. <DD>
  487. The Left and Right keys scroll the listbox view left and right
  488. by the width of the character <STRONG>0</STRONG>.
  489. Control-Left and Control-Right scroll the listbox view left and
  490. right by the width of the window.
  491. Control-Prior and Control-Next also scroll left and right by
  492. the width of the window.
  493. <P></P>
  494. <DT><STRONG><A NAME="item_%5B8%5D">[8]</A></STRONG><BR>
  495. <DD>
  496. The Prior and Next keys scroll the listbox view up and down
  497. by one page (the height of the window).
  498. <P></P>
  499. <DT><STRONG><A NAME="item_%5B9%5D">[9]</A></STRONG><BR>
  500. <DD>
  501. The Home and End keys scroll the listbox horizontally to
  502. the left and right edges, respectively.
  503. <P></P>
  504. <DT><STRONG><A NAME="item_%5B10%5D">[10]</A></STRONG><BR>
  505. <DD>
  506. Control-Home sets the location cursor to the the first element in
  507. the listbox, selects that element, and deselects everything else
  508. in the listbox.
  509. <P></P>
  510. <DT><STRONG><A NAME="item_%5B11%5D">[11]</A></STRONG><BR>
  511. <DD>
  512. Control-End sets the location cursor to the the last element in
  513. the listbox, selects that element, and deselects everything else
  514. in the listbox.
  515. <P></P>
  516. <DT><STRONG><A NAME="item_%5B12%5D">[12]</A></STRONG><BR>
  517. <DD>
  518. In <STRONG>extended</STRONG> mode, Control-Shift-Home extends the selection
  519. to the first element in the listbox and Control-Shift-End extends
  520. the selection to the last element.
  521. <P></P>
  522. <DT><STRONG><A NAME="item_%5B13%5D">[13]</A></STRONG><BR>
  523. <DD>
  524. In <STRONG>multiple</STRONG> mode, Control-Shift-Home moves the location cursor
  525. to the first element in the listbox and Control-Shift-End moves
  526. the location cursor to the last element.
  527. <P></P>
  528. <DT><STRONG><A NAME="item_%5B14%5D">[14]</A></STRONG><BR>
  529. <DD>
  530. The space and Select keys make a selection at the location cursor
  531. (active element) just as if mouse button 1 had been pressed over
  532. this element.
  533. <P></P>
  534. <DT><STRONG><A NAME="item_%5B15%5D">[15]</A></STRONG><BR>
  535. <DD>
  536. In <STRONG>extended</STRONG> mode, Control-Shift-space and Shift-Select
  537. extend the selection to the active element just as if button 1
  538. had been pressed with the Shift key down.
  539. <P></P>
  540. <DT><STRONG><A NAME="item_%5B16%5D">[16]</A></STRONG><BR>
  541. <DD>
  542. In <STRONG>extended</STRONG> mode, the Escape key cancels the most recent
  543. selection and restores all the elements in the selected range
  544. to their previous selection state.
  545. <P></P>
  546. <DT><STRONG><A NAME="item_%5B17%5D">[17]</A></STRONG><BR>
  547. <DD>
  548. Control-slash selects everything in the widget, except in
  549. <STRONG>single</STRONG> and <STRONG>browse</STRONG> modes, in which case it selects
  550. the active element and deselects everything else.
  551. <P></P>
  552. <DT><STRONG><A NAME="item_%5B18%5D">[18]</A></STRONG><BR>
  553. <DD>
  554. Control-backslash deselects everything in the widget, except in
  555. <STRONG>browse</STRONG> mode where it has no effect.
  556. <P></P>
  557. <DT><STRONG><A NAME="item_%5B19%5D">[19]</A></STRONG><BR>
  558. <DD>
  559. The F16 key (labelled Copy on many Sun workstations) or Meta-w
  560. copies the selection in the widget to the clipboard, if there is
  561. a selection.
  562. <P>The behavior of listboxes can be changed by defining new bindings for
  563. individual widgets or by redefining the class bindings.</P>
  564. <P></P></DL>
  565. <P>
  566. <HR>
  567. <H1><A NAME="keywords">KEYWORDS</A></H1>
  568. <P>listbox, widget</P>
  569. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  570. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  571. <STRONG><P CLASS=block> Tk::Listbox - Create and manipulate Listbox widgets</P></STRONG>
  572. </TD></TR>
  573. </TABLE>
  574.  
  575. </BODY>
  576.  
  577. </HTML>
  578.