Pratt 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. data/.exrc +61 -0
  2. data/.gitignore +4 -0
  3. data/History.txt +6 -0
  4. data/Manifest.txt +46 -0
  5. data/Pratt.gemspec +351 -0
  6. data/README.txt +66 -0
  7. data/Rakefile +85 -0
  8. data/TODO +54 -0
  9. data/VERSION +1 -0
  10. data/bin/pratt.rb +13 -0
  11. data/config.rb +34 -0
  12. data/lib/pratt.rb +527 -0
  13. data/lib/pratt/array.rb +11 -0
  14. data/lib/pratt/string.rb +18 -0
  15. data/models/app.rb +40 -0
  16. data/models/customer.rb +24 -0
  17. data/models/payment.rb +22 -0
  18. data/models/pratt.rb +19 -0
  19. data/models/project.rb +82 -0
  20. data/models/whence.rb +70 -0
  21. data/pkgs/tile-0.8.2.tar.gz +0 -0
  22. data/pkgs/tile-0.8.2/ANNOUNCE.txt +95 -0
  23. data/pkgs/tile-0.8.2/ChangeLog +4651 -0
  24. data/pkgs/tile-0.8.2/Makefile +250 -0
  25. data/pkgs/tile-0.8.2/Makefile.in +250 -0
  26. data/pkgs/tile-0.8.2/README.txt +86 -0
  27. data/pkgs/tile-0.8.2/aclocal.m4 +2 -0
  28. data/pkgs/tile-0.8.2/altTheme.o +0 -0
  29. data/pkgs/tile-0.8.2/blink.o +0 -0
  30. data/pkgs/tile-0.8.2/button.o +0 -0
  31. data/pkgs/tile-0.8.2/cache.o +0 -0
  32. data/pkgs/tile-0.8.2/clamTheme.o +0 -0
  33. data/pkgs/tile-0.8.2/classicTheme.o +0 -0
  34. data/pkgs/tile-0.8.2/config.log +1330 -0
  35. data/pkgs/tile-0.8.2/config.status +795 -0
  36. data/pkgs/tile-0.8.2/configure +15248 -0
  37. data/pkgs/tile-0.8.2/configure.in +89 -0
  38. data/pkgs/tile-0.8.2/demos/autocomplete.tcl +59 -0
  39. data/pkgs/tile-0.8.2/demos/demo.tcl +870 -0
  40. data/pkgs/tile-0.8.2/demos/dirbrowser.tcl +167 -0
  41. data/pkgs/tile-0.8.2/demos/dlgtest.tcl +97 -0
  42. data/pkgs/tile-0.8.2/demos/iconlib.tcl +110 -0
  43. data/pkgs/tile-0.8.2/demos/repeater.tcl +117 -0
  44. data/pkgs/tile-0.8.2/demos/toolbutton.tcl +101 -0
  45. data/pkgs/tile-0.8.2/doc/Geometry.3 +230 -0
  46. data/pkgs/tile-0.8.2/doc/INDEX.MAP +153 -0
  47. data/pkgs/tile-0.8.2/doc/Makefile +36 -0
  48. data/pkgs/tile-0.8.2/doc/TILE.XML +45 -0
  49. data/pkgs/tile-0.8.2/doc/Theme.3 +34 -0
  50. data/pkgs/tile-0.8.2/doc/button.n +75 -0
  51. data/pkgs/tile-0.8.2/doc/checkbutton.n +61 -0
  52. data/pkgs/tile-0.8.2/doc/combobox.n +98 -0
  53. data/pkgs/tile-0.8.2/doc/converting.txt +97 -0
  54. data/pkgs/tile-0.8.2/doc/dialog.n +122 -0
  55. data/pkgs/tile-0.8.2/doc/entry.n +438 -0
  56. data/pkgs/tile-0.8.2/doc/frame.n +43 -0
  57. data/pkgs/tile-0.8.2/doc/html/Geometry.html +304 -0
  58. data/pkgs/tile-0.8.2/doc/html/Theme.html +48 -0
  59. data/pkgs/tile-0.8.2/doc/html/button.html +120 -0
  60. data/pkgs/tile-0.8.2/doc/html/category-index.html +18 -0
  61. data/pkgs/tile-0.8.2/doc/html/checkbutton.html +94 -0
  62. data/pkgs/tile-0.8.2/doc/html/combobox.html +164 -0
  63. data/pkgs/tile-0.8.2/doc/html/converting.txt +97 -0
  64. data/pkgs/tile-0.8.2/doc/html/dialog.html +159 -0
  65. data/pkgs/tile-0.8.2/doc/html/entry.html +613 -0
  66. data/pkgs/tile-0.8.2/doc/html/frame.html +76 -0
  67. data/pkgs/tile-0.8.2/doc/html/image.html +100 -0
  68. data/pkgs/tile-0.8.2/doc/html/index.html +25 -0
  69. data/pkgs/tile-0.8.2/doc/html/keyword-index.html +228 -0
  70. data/pkgs/tile-0.8.2/doc/html/label.html +133 -0
  71. data/pkgs/tile-0.8.2/doc/html/labelframe.html +91 -0
  72. data/pkgs/tile-0.8.2/doc/html/manpage.css +212 -0
  73. data/pkgs/tile-0.8.2/doc/html/menubutton.html +63 -0
  74. data/pkgs/tile-0.8.2/doc/html/notebook.html +280 -0
  75. data/pkgs/tile-0.8.2/doc/html/paned.html +149 -0
  76. data/pkgs/tile-0.8.2/doc/html/progressbar.html +138 -0
  77. data/pkgs/tile-0.8.2/doc/html/radiobutton.html +89 -0
  78. data/pkgs/tile-0.8.2/doc/html/scrollbar.html +221 -0
  79. data/pkgs/tile-0.8.2/doc/html/separator.html +48 -0
  80. data/pkgs/tile-0.8.2/doc/html/sizegrip.html +62 -0
  81. data/pkgs/tile-0.8.2/doc/html/style.html +172 -0
  82. data/pkgs/tile-0.8.2/doc/html/tile-intro.html +164 -0
  83. data/pkgs/tile-0.8.2/doc/html/treeview.html +634 -0
  84. data/pkgs/tile-0.8.2/doc/html/widget.html +342 -0
  85. data/pkgs/tile-0.8.2/doc/image.n +81 -0
  86. data/pkgs/tile-0.8.2/doc/internals.txt +409 -0
  87. data/pkgs/tile-0.8.2/doc/label.n +75 -0
  88. data/pkgs/tile-0.8.2/doc/labelframe.n +64 -0
  89. data/pkgs/tile-0.8.2/doc/man.macros +239 -0
  90. data/pkgs/tile-0.8.2/doc/menubutton.n +41 -0
  91. data/pkgs/tile-0.8.2/doc/notebook.n +188 -0
  92. data/pkgs/tile-0.8.2/doc/paned.n +95 -0
  93. data/pkgs/tile-0.8.2/doc/progressbar.n +79 -0
  94. data/pkgs/tile-0.8.2/doc/radiobutton.n +57 -0
  95. data/pkgs/tile-0.8.2/doc/scrollbar.n +160 -0
  96. data/pkgs/tile-0.8.2/doc/separator.n +30 -0
  97. data/pkgs/tile-0.8.2/doc/sizegrip.n +53 -0
  98. data/pkgs/tile-0.8.2/doc/style.n +119 -0
  99. data/pkgs/tile-0.8.2/doc/tile-intro.n +165 -0
  100. data/pkgs/tile-0.8.2/doc/tmml.options +4 -0
  101. data/pkgs/tile-0.8.2/doc/treeview.n +415 -0
  102. data/pkgs/tile-0.8.2/doc/widget.n +227 -0
  103. data/pkgs/tile-0.8.2/doc/xml/Geometry.tmml +379 -0
  104. data/pkgs/tile-0.8.2/doc/xml/INDEX.MAP +153 -0
  105. data/pkgs/tile-0.8.2/doc/xml/Theme.tmml +63 -0
  106. data/pkgs/tile-0.8.2/doc/xml/button.tmml +134 -0
  107. data/pkgs/tile-0.8.2/doc/xml/checkbutton.tmml +119 -0
  108. data/pkgs/tile-0.8.2/doc/xml/combobox.tmml +184 -0
  109. data/pkgs/tile-0.8.2/doc/xml/dialog.tmml +195 -0
  110. data/pkgs/tile-0.8.2/doc/xml/entry.tmml +630 -0
  111. data/pkgs/tile-0.8.2/doc/xml/frame.tmml +98 -0
  112. data/pkgs/tile-0.8.2/doc/xml/image.tmml +101 -0
  113. data/pkgs/tile-0.8.2/doc/xml/label.tmml +154 -0
  114. data/pkgs/tile-0.8.2/doc/xml/labelframe.tmml +116 -0
  115. data/pkgs/tile-0.8.2/doc/xml/menubutton.tmml +80 -0
  116. data/pkgs/tile-0.8.2/doc/xml/notebook.tmml +306 -0
  117. data/pkgs/tile-0.8.2/doc/xml/paned.tmml +154 -0
  118. data/pkgs/tile-0.8.2/doc/xml/progressbar.tmml +151 -0
  119. data/pkgs/tile-0.8.2/doc/xml/radiobutton.tmml +109 -0
  120. data/pkgs/tile-0.8.2/doc/xml/scrollbar.tmml +233 -0
  121. data/pkgs/tile-0.8.2/doc/xml/separator.tmml +59 -0
  122. data/pkgs/tile-0.8.2/doc/xml/sizegrip.tmml +82 -0
  123. data/pkgs/tile-0.8.2/doc/xml/style.tmml +171 -0
  124. data/pkgs/tile-0.8.2/doc/xml/tile-intro.tmml +192 -0
  125. data/pkgs/tile-0.8.2/doc/xml/treeview.tmml +604 -0
  126. data/pkgs/tile-0.8.2/doc/xml/widget.tmml +372 -0
  127. data/pkgs/tile-0.8.2/entry.o +0 -0
  128. data/pkgs/tile-0.8.2/frame.o +0 -0
  129. data/pkgs/tile-0.8.2/generic/Makefile.in +221 -0
  130. data/pkgs/tile-0.8.2/generic/TODO +493 -0
  131. data/pkgs/tile-0.8.2/generic/altTheme.c +1172 -0
  132. data/pkgs/tile-0.8.2/generic/blink.c +168 -0
  133. data/pkgs/tile-0.8.2/generic/button.c +858 -0
  134. data/pkgs/tile-0.8.2/generic/cache.c +354 -0
  135. data/pkgs/tile-0.8.2/generic/clamTheme.c +974 -0
  136. data/pkgs/tile-0.8.2/generic/classicTheme.c +518 -0
  137. data/pkgs/tile-0.8.2/generic/configure +10334 -0
  138. data/pkgs/tile-0.8.2/generic/configure.in +100 -0
  139. data/pkgs/tile-0.8.2/generic/entry.c +1922 -0
  140. data/pkgs/tile-0.8.2/generic/frame.c +648 -0
  141. data/pkgs/tile-0.8.2/generic/gunk.h +44 -0
  142. data/pkgs/tile-0.8.2/generic/image.c +416 -0
  143. data/pkgs/tile-0.8.2/generic/label.c +663 -0
  144. data/pkgs/tile-0.8.2/generic/layout.c +1215 -0
  145. data/pkgs/tile-0.8.2/generic/manager.c +554 -0
  146. data/pkgs/tile-0.8.2/generic/manager.h +91 -0
  147. data/pkgs/tile-0.8.2/generic/notebook.c +1380 -0
  148. data/pkgs/tile-0.8.2/generic/paned.c +958 -0
  149. data/pkgs/tile-0.8.2/generic/pkgIndex.tcl.in +7 -0
  150. data/pkgs/tile-0.8.2/generic/progress.c +549 -0
  151. data/pkgs/tile-0.8.2/generic/scale.c +526 -0
  152. data/pkgs/tile-0.8.2/generic/scroll.c +253 -0
  153. data/pkgs/tile-0.8.2/generic/scrollbar.c +346 -0
  154. data/pkgs/tile-0.8.2/generic/separator.c +132 -0
  155. data/pkgs/tile-0.8.2/generic/square.c +306 -0
  156. data/pkgs/tile-0.8.2/generic/tagset.c +147 -0
  157. data/pkgs/tile-0.8.2/generic/tile.c +296 -0
  158. data/pkgs/tile-0.8.2/generic/tkElements.c +1280 -0
  159. data/pkgs/tile-0.8.2/generic/tkTheme.c +1708 -0
  160. data/pkgs/tile-0.8.2/generic/tkTheme.h +419 -0
  161. data/pkgs/tile-0.8.2/generic/tkThemeInt.h +45 -0
  162. data/pkgs/tile-0.8.2/generic/tkstate.c +268 -0
  163. data/pkgs/tile-0.8.2/generic/trace.c +145 -0
  164. data/pkgs/tile-0.8.2/generic/track.c +174 -0
  165. data/pkgs/tile-0.8.2/generic/treeview.c +3211 -0
  166. data/pkgs/tile-0.8.2/generic/ttk.decls +154 -0
  167. data/pkgs/tile-0.8.2/generic/ttkDecls.h +340 -0
  168. data/pkgs/tile-0.8.2/generic/ttkStubInit.c +61 -0
  169. data/pkgs/tile-0.8.2/generic/ttkStubLib.c +70 -0
  170. data/pkgs/tile-0.8.2/generic/widget.c +785 -0
  171. data/pkgs/tile-0.8.2/generic/widget.h +263 -0
  172. data/pkgs/tile-0.8.2/image.o +0 -0
  173. data/pkgs/tile-0.8.2/label.o +0 -0
  174. data/pkgs/tile-0.8.2/layout.o +0 -0
  175. data/pkgs/tile-0.8.2/library/altTheme.tcl +101 -0
  176. data/pkgs/tile-0.8.2/library/aquaTheme.tcl +62 -0
  177. data/pkgs/tile-0.8.2/library/button.tcl +85 -0
  178. data/pkgs/tile-0.8.2/library/clamTheme.tcl +139 -0
  179. data/pkgs/tile-0.8.2/library/classicTheme.tcl +108 -0
  180. data/pkgs/tile-0.8.2/library/combobox.tcl +439 -0
  181. data/pkgs/tile-0.8.2/library/cursors.tcl +36 -0
  182. data/pkgs/tile-0.8.2/library/defaults.tcl +118 -0
  183. data/pkgs/tile-0.8.2/library/dialog.tcl +274 -0
  184. data/pkgs/tile-0.8.2/library/entry.tcl +580 -0
  185. data/pkgs/tile-0.8.2/library/fonts.tcl +153 -0
  186. data/pkgs/tile-0.8.2/library/icons.tcl +105 -0
  187. data/pkgs/tile-0.8.2/library/keynav.tcl +192 -0
  188. data/pkgs/tile-0.8.2/library/menubutton.tcl +171 -0
  189. data/pkgs/tile-0.8.2/library/notebook.tcl +193 -0
  190. data/pkgs/tile-0.8.2/library/paned.tcl +87 -0
  191. data/pkgs/tile-0.8.2/library/progress.tcl +51 -0
  192. data/pkgs/tile-0.8.2/library/scale.tcl +54 -0
  193. data/pkgs/tile-0.8.2/library/scrollbar.tcl +125 -0
  194. data/pkgs/tile-0.8.2/library/sizegrip.tcl +77 -0
  195. data/pkgs/tile-0.8.2/library/tile.tcl +211 -0
  196. data/pkgs/tile-0.8.2/library/treeview.tcl +382 -0
  197. data/pkgs/tile-0.8.2/library/utils.tcl +254 -0
  198. data/pkgs/tile-0.8.2/library/winTheme.tcl +77 -0
  199. data/pkgs/tile-0.8.2/library/xpTheme.tcl +63 -0
  200. data/pkgs/tile-0.8.2/libtile0.8.2.so +0 -0
  201. data/pkgs/tile-0.8.2/libttkstub.a +0 -0
  202. data/pkgs/tile-0.8.2/license.terms +24 -0
  203. data/pkgs/tile-0.8.2/macosx/aquaTheme.c +1076 -0
  204. data/pkgs/tile-0.8.2/manager.o +0 -0
  205. data/pkgs/tile-0.8.2/notebook.o +0 -0
  206. data/pkgs/tile-0.8.2/paned.o +0 -0
  207. data/pkgs/tile-0.8.2/pkgIndex.tcl +3 -0
  208. data/pkgs/tile-0.8.2/progress.o +0 -0
  209. data/pkgs/tile-0.8.2/scale.o +0 -0
  210. data/pkgs/tile-0.8.2/scroll.o +0 -0
  211. data/pkgs/tile-0.8.2/scrollbar.o +0 -0
  212. data/pkgs/tile-0.8.2/separator.o +0 -0
  213. data/pkgs/tile-0.8.2/tagset.o +0 -0
  214. data/pkgs/tile-0.8.2/tclconfig/install-sh +119 -0
  215. data/pkgs/tile-0.8.2/tclconfig/tcl.m4 +4069 -0
  216. data/pkgs/tile-0.8.2/tclconfig/teax.m4 +109 -0
  217. data/pkgs/tile-0.8.2/tests/all.tcl +18 -0
  218. data/pkgs/tile-0.8.2/tests/bwidget.test +103 -0
  219. data/pkgs/tile-0.8.2/tests/cbtest.tcl +125 -0
  220. data/pkgs/tile-0.8.2/tests/combobox.test +51 -0
  221. data/pkgs/tile-0.8.2/tests/compound.tcl +92 -0
  222. data/pkgs/tile-0.8.2/tests/entry.test +285 -0
  223. data/pkgs/tile-0.8.2/tests/entrytest.tcl +78 -0
  224. data/pkgs/tile-0.8.2/tests/image.test +94 -0
  225. data/pkgs/tile-0.8.2/tests/labelframe.tcl +41 -0
  226. data/pkgs/tile-0.8.2/tests/labelframe.test +137 -0
  227. data/pkgs/tile-0.8.2/tests/layout.test +33 -0
  228. data/pkgs/tile-0.8.2/tests/misc.test +35 -0
  229. data/pkgs/tile-0.8.2/tests/nbtest.tcl +66 -0
  230. data/pkgs/tile-0.8.2/tests/notebook.test +500 -0
  231. data/pkgs/tile-0.8.2/tests/paned.test +298 -0
  232. data/pkgs/tile-0.8.2/tests/progress.test +92 -0
  233. data/pkgs/tile-0.8.2/tests/pwtest.tcl +90 -0
  234. data/pkgs/tile-0.8.2/tests/sbtest.tcl +79 -0
  235. data/pkgs/tile-0.8.2/tests/scrollbar.test +77 -0
  236. data/pkgs/tile-0.8.2/tests/sgtest.tcl +52 -0
  237. data/pkgs/tile-0.8.2/tests/testutils.tcl +20 -0
  238. data/pkgs/tile-0.8.2/tests/tile.test +674 -0
  239. data/pkgs/tile-0.8.2/tests/treetags.test +78 -0
  240. data/pkgs/tile-0.8.2/tests/treeview.test +563 -0
  241. data/pkgs/tile-0.8.2/tests/tvtest.tcl +332 -0
  242. data/pkgs/tile-0.8.2/tests/validate.test +278 -0
  243. data/pkgs/tile-0.8.2/tile.o +0 -0
  244. data/pkgs/tile-0.8.2/tkElements.o +0 -0
  245. data/pkgs/tile-0.8.2/tkTheme.o +0 -0
  246. data/pkgs/tile-0.8.2/tkstate.o +0 -0
  247. data/pkgs/tile-0.8.2/tools/genStubs.tcl +861 -0
  248. data/pkgs/tile-0.8.2/trace.o +0 -0
  249. data/pkgs/tile-0.8.2/track.o +0 -0
  250. data/pkgs/tile-0.8.2/treeview.o +0 -0
  251. data/pkgs/tile-0.8.2/ttkStubInit.o +0 -0
  252. data/pkgs/tile-0.8.2/ttkStubLib.o +0 -0
  253. data/pkgs/tile-0.8.2/widget.o +0 -0
  254. data/pkgs/tile-0.8.2/win/Tile.dsp +261 -0
  255. data/pkgs/tile-0.8.2/win/makefile.vc +527 -0
  256. data/pkgs/tile-0.8.2/win/monitor.c +164 -0
  257. data/pkgs/tile-0.8.2/win/nmakehlp.c +483 -0
  258. data/pkgs/tile-0.8.2/win/rules.vc +512 -0
  259. data/pkgs/tile-0.8.2/win/tile.rc +40 -0
  260. data/pkgs/tile-0.8.2/win/winTheme.c +734 -0
  261. data/pkgs/tile-0.8.2/win/xpTheme.c +1029 -0
  262. data/spec/app_spec.rb +48 -0
  263. data/spec/customer_spec.rb +31 -0
  264. data/spec/fixtures/graph.expectation +18 -0
  265. data/spec/payment_spec.rb +19 -0
  266. data/spec/pratt_spec.rb +148 -0
  267. data/spec/project_spec.rb +163 -0
  268. data/spec/rcov.opts +0 -0
  269. data/spec/spec.opts +1 -0
  270. data/spec/spec_helper.rb +21 -0
  271. data/spec/whence_spec.rb +54 -0
  272. data/tasks/pratt.rb +84 -0
  273. data/templates/model.eruby +12 -0
  274. data/templates/spec.eruby +8 -0
  275. data/views/env.rb +22 -0
  276. data/views/graph.eruby +20 -0
  277. data/views/invoice.eruby +148 -0
  278. data/views/main.rb +92 -0
  279. data/views/pid.eruby +3 -0
  280. data/views/pop.rb +94 -0
  281. data/views/pop2.rb +75 -0
  282. data/views/raw.eruby +11 -0
  283. metadata +390 -0
@@ -0,0 +1,122 @@
1
+ '\"
2
+ '\" Copyright (c) 2005 Joe English
3
+ '\"
4
+ .so man.macros
5
+ .TH dialog n 0.8 tile "Tile Widget Set"
6
+ .SH "NAME"
7
+ ttk::dialog \- create a dialog box
8
+ .SH "SYNOPSIS"
9
+ \fBpackage require ttk::dialog\fR ?\fI0.8\fR?
10
+ .br
11
+ \fBttk::dialog\fR \fIpathname\fR ?\fIoptions...\fR?
12
+ \fBttk::dialog::define\fR \fIdialogType\fR ?\fIoptions...\fR?
13
+ .SH "DESCRIPTION"
14
+ A dialog box is a transient top-level window
15
+ containing an icon, a short message, an optional, longer, detail message,
16
+ and a row of command buttons.
17
+ When the user presses any of the buttons,
18
+ a callback function is invoked
19
+ and then the dialog is destroyed.
20
+ .PP
21
+ Additional widgets may be added in the dialog \fIclient frame\fR.
22
+ .SH "OPTIONS"
23
+ .OP \-title n/a n/a
24
+ Specifies a string to use as the window manager title.
25
+ .OP \-message n/a n/a
26
+ Specifies the message to display in this dialog.
27
+ .OP \-detail n/a n/a
28
+ Specifies a longer auxiliary message.
29
+ .OP \-command n/a n/a
30
+ Specifies a command prefix to be invoked when the user presses
31
+ one of the command buttons.
32
+ The symbolic name of the button is passed as an additional argument
33
+ to the command.
34
+ The dialog is dismissed after invoking the command.
35
+ .OP \-parent n/a n/a
36
+ Specifies a toplevel window for which the dialog is transient.
37
+ If omitted, the default is the nearest ancestor toplevel.
38
+ If set to the empty string, the dialog will not be a transient window.
39
+ .OP \-type n/a n/a
40
+ Specifies a built-in or user-defined dialog type.
41
+ See \fBPREDEFINED DIALOG TYPES\fR, below.
42
+ .OP \-icon n/a n/a
43
+ Specifies one of the stock dialog icons,
44
+ \fBinfo\fR, \fBquestion\fR, \fBwarning\fR, \fBerror\fR,
45
+ \fBauth\fR, or \fBbusy\fR.
46
+ If set to the empty string (the default), no icon is displayed.
47
+ .OP \-buttons n/a n/a
48
+ A list of symbolic button names.
49
+ .OP \-labels n/a n/a
50
+ A dictionary mapping symbolic button names to textual labels.
51
+ May be omitted if all the buttons are predefined.
52
+ .OP \-default n/a n/a
53
+ The symbolic name of the default button.
54
+ .OP \-cancel n/a n/a
55
+ The symbolic name of the "cancel" button.
56
+ The cancel button is invoked if the user presses the Escape key
57
+ and when the dialog is closed from the window manager.
58
+ If \fB-cancel\fR is not specified,
59
+ the dialog ignores window manager close commands (WM_DELETE_WINDOW).
60
+ .SH "WIDGET COMMANDS"
61
+ .TP
62
+ \fBttk::dialog::clientframe \fIdlg\fR
63
+ Returns the widget path of the client frame.
64
+ Other widgets may be added to the client frame.
65
+ The client frame appears between the detail message and the command buttons.
66
+ .SH "PREDEFINED DIALOG TYPES"
67
+ The \fB-type\fR option, if present, specifies default values
68
+ for other options. \fBttk::dialog::define \fItype options...\fR
69
+ specifies a new stock dialog \fItype\fR.
70
+ The following stock dialog types are predefined:
71
+ .CS
72
+ ttk::dialog::define ok \e
73
+ -icon info -buttons {ok} -default ok
74
+ ttk::dialog::define okcancel \e
75
+ -icon info -buttons {ok cancel} -default ok -cancel cancel
76
+ ttk::dialog::define yesno \e
77
+ -icon question -buttons {yes no}
78
+ ttk::dialog::define yesnocancel \e
79
+ -icon question -buttons {yes no cancel} -cancel cancel
80
+ ttk::dialog::define retrycancel \e
81
+ -icon question -buttons {retry cancel} -cancel cancel
82
+ .CE
83
+ .SH "STOCK BUTTONS"
84
+ The following ``stock'' symbolic button names have predefined labels:
85
+ \fByes\fR, \fBno\fR, \fBok\fR, \fBcancel\fR, and \fBretry\fR.
86
+ .PP
87
+ It is not necessary to list these in the \fB-labels\fR dictionary.
88
+ .\" .SH "DIFFERENCES FROM MESSAGE BOXES"
89
+ .\" The \fBttk::dialog\fR constructor is similar to
90
+ .\" the Tk library procedure \fBtk_messageBox\fR,
91
+ .\" but with the following notable differences:
92
+ .\" .IP \(bu
93
+ .\" The first argument to \fBttk::dialog\fR is the name of
94
+ .\" the widget to create; \fBtk_messageBox\fR has
95
+ .\" .IP \(bu
96
+ .\" Tile dialog boxes are non-modal by default.
97
+ .\" .IP \(bu
98
+ .\" The \fBtk_messageBox\fR command is blocking:
99
+ .\" it does not return until the user presses one of the command buttons.
100
+ .\" \fBttk::dialog\fR returns immediately after creating the dialog box.
101
+ .SH EXAMPLE
102
+ .CS
103
+ proc saveFileComplete {button} {
104
+ switch -- $button {
105
+ yes { # save file ... }
106
+ no { exit }
107
+ cancel { # no-op }
108
+ }
109
+ }
110
+
111
+ ttk::dialog .saveFileDialog \e
112
+ -title "Save file?" \e
113
+ -icon question \e
114
+ -message "Save file before closing?" \e
115
+ -detail "If you do not save the file, your work will be lost" \e
116
+ -buttons [list yes no cancel] \e
117
+ -labels [list yes "Save file" no "Don't save"] \e
118
+ -command saveFileComplete \e
119
+ ;
120
+ .CE
121
+ .SH "SEE ALSO"
122
+ tk_messageBox(n), wm(n), toplevel(n)
@@ -0,0 +1,438 @@
1
+ '\"
2
+ '\" SOURCE: entry.n, r1.12
3
+ '\"
4
+ '\" Copyright (c) 1990-1994 The Regents of the University of California.
5
+ '\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
6
+ '\" Copyright (c) 1998-2000 Scriptics Corporation.
7
+ '\" Copyright (c) 2004 Joe English
8
+ '\"
9
+ '\" See the file "license.terms" for information on usage and redistribution
10
+ '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
11
+ '\"
12
+ .so man.macros
13
+ .TH entry n 0.4 tile "Tile Widget Set"
14
+ .BS
15
+ .SH NAME
16
+ ttk::entry \- Editable text field widget
17
+ .SH SYNOPSIS
18
+ \fBttk::entry\fR \fIpathName \fR?\fIoptions\fR?
19
+ .SH DESCRIPTION
20
+ .PP
21
+ An \fBentry\fR widget displays a one-line text string and
22
+ allows that string to be edited by the user.
23
+ The value of the string may be linked to a Tcl variable
24
+ with the \fB-textvariable\fR option.
25
+ Entry widgets support horizontal scrolling with the
26
+ standard \fB-xscrollcommand\fR option and \fBxview\fR widget command.
27
+ .SO
28
+ \-class \-cursor \-style \-takefocus
29
+ \-xscrollcommand
30
+ .SE
31
+ .SH "WIDGET-SPECIFIC OPTIONS"
32
+ .OP \-exportselection exportSelection ExportSelection
33
+ A boolean value specifying whether or not
34
+ a selection in the widget should be linked to the X selection.
35
+ If the selection is exported, then selecting in the widget deselects
36
+ the current X selection, selecting outside the widget deselects any
37
+ widget selection, and the widget will respond to selection retrieval
38
+ requests when it has a selection.
39
+ .\" MAYBE: .OP \-font font Font
40
+ .\" MAYBE: .OP \-foreground foreground Foreground
41
+ .\" MAYBE: .OP \-insertbackground insertBackground Foreground
42
+ .\" MAYBE: .OP \-insertwidth insertWidth InsertWidth
43
+ .OP \-invalidcommand invalidCommand InvalidCommand
44
+ A script template to evaluate whenever the \fBvalidateCommand\fR returns 0.
45
+ See \fBVALIDATION\fR below for more information.
46
+ .OP \-justify justify Justify
47
+ Specifies how the text is aligned within the entry widget.
48
+ One of \fBleft\fR, \fBcenter\fR, or \fBright\fR.
49
+ .\" MAYBE: .OP \-selectbackground selectBackground Foreground
50
+ .\" MAYBE: .OP \-selectborderwidth selectBorderWidth BorderWidth
51
+ .\" MAYBE: .OP \-selectforeground selectForeground Background
52
+ .OP \-show show Show
53
+ If this option is specified, then the true contents of the entry
54
+ are not displayed in the window.
55
+ Instead, each character in the entry's value will be displayed as
56
+ the first character in the value of this option, such as ``*''.
57
+ This is useful, for example, if the entry is to be used to enter
58
+ a password.
59
+ If characters in the entry are selected and copied elsewhere, the
60
+ information copied will be what is displayed, not the true contents
61
+ of the entry.
62
+ .OP \-state state State
63
+ Compatibility option; see \fBwidget(n)\fR for details.
64
+ Specifies one of three states for the entry,
65
+ \fBnormal\fR, \fBdisabled\fR, or \fBreadonly\fR.
66
+ See \fBWIDGET STATES\fR, below.
67
+ .OP \-textvariable textVariable Variable
68
+ Specifies the name of a variable whose value is linked
69
+ to the entry widget's contents.
70
+ Whenever the variable changes value, the widget's contents are updated,
71
+ and vice versa.
72
+ .OP \-validate validate Validate
73
+ Specifies the mode in which validation should operate:
74
+ \fBnone\fR, \fBfocus\fR, \fBfocusin\fR, \fBfocusout\fR, \fBkey\fR, or \fBall\fR.
75
+ Default is \fBnone\fR, meaning that validation is disabled.
76
+ See \fBVALIDATION\fR below.
77
+ .OP \-validatecommand validateCommand ValidateCommand
78
+ A script template to evaluate whenever validation is triggered.
79
+ If set to the empty string (the default), validation is disabled.
80
+ The script must return a boolean value.
81
+ See \fBVALIDATION\fR below.
82
+ .OP \-width width Width
83
+ Specifies an integer value indicating the desired width of the entry window,
84
+ in average-size characters of the widget's font.
85
+ .\" Not in tile: If the value is less than or equal to zero, the widget picks a
86
+ .\" Not in tile: size just large enough to hold its current text.
87
+ .BE
88
+ .SH NOTES
89
+ A portion of the entry may be selected as described below.
90
+ If an entry is exporting its selection (see the \fBexportSelection\fR
91
+ option), then it will observe the standard X11 protocols for handling the
92
+ selection; entry selections are available as type \fBSTRING\fR.
93
+ Entries also observe the standard Tk rules for dealing with the
94
+ input focus. When an entry has the input focus it displays an
95
+ \fIinsert cursor\fR to indicate where new characters will be
96
+ inserted.
97
+ .PP
98
+ Entries are capable of displaying strings that are too long to
99
+ fit entirely within the widget's window. In this case, only a
100
+ portion of the string will be displayed; commands described below
101
+ may be used to change the view in the window. Entries use
102
+ the standard \fBxScrollCommand\fR mechanism for interacting with
103
+ scrollbars (see the description of the \fBxScrollCommand\fR option
104
+ for details).
105
+ .SH "INDICES"
106
+ Many of the \fBentry\fR widget commands take one or more indices as
107
+ arguments. An index specifies a particular character in the entry's
108
+ string, in any of the following ways:
109
+ .IP \fInumber\fR
110
+ Specifies the character as a numerical index, where 0 corresponds
111
+ to the first character in the string.
112
+ .IP \fB@\fInumber\fR
113
+ In this form, \fInumber\fR is treated as an x-coordinate in the
114
+ entry's window; the character spanning that x-coordinate is used.
115
+ For example, ``\fB@0\fR'' indicates the left-most character in the
116
+ window.
117
+ .IP \fBend\fR
118
+ Indicates the character just after the last one in the entry's string.
119
+ This is equivalent to specifying a numerical index equal to the length
120
+ of the entry's string.
121
+ .IP \fBinsert\fR
122
+ Indicates the character adjacent to and immediately following the
123
+ insert cursor.
124
+ .IP \fBsel.first\fR
125
+ Indicates the first character in the selection. It is an error to
126
+ use this form if the selection isn't in the entry window.
127
+ .IP \fBsel.last\fR
128
+ Indicates the character just after the last one in the selection.
129
+ It is an error to use this form if the selection isn't in the
130
+ entry window.
131
+ .LP
132
+ Abbreviations may be used for any of the forms above, e.g. ``\fBe\fR''
133
+ or ``\fBsel.f\fR''. In general, out-of-range indices are automatically
134
+ rounded to the nearest legal value.
135
+ .SH "WIDGET COMMAND"
136
+ .PP
137
+ The following commands are possible for entry widgets:
138
+ .TP
139
+ \fIpathName \fBbbox \fIindex\fR
140
+ Returns a list of four numbers describing the bounding box of the
141
+ character given by \fIindex\fR.
142
+ The first two elements of the list give the x and y coordinates of
143
+ the upper-left corner of the screen area covered by the character
144
+ (in pixels relative to the widget) and the last two elements give
145
+ the width and height of the character, in pixels.
146
+ The bounding box may refer to a region outside the visible area
147
+ of the window.
148
+ .TP
149
+ \fIpathName \fBcget\fR \fIoption\fR
150
+ Returns the current value of the specified \fIoption\fR.
151
+ See \fIwidget(n)\fR.
152
+ .TP
153
+ \fIpathName \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
154
+ Modify or query widget options.
155
+ See \fIwidget(n)\fR.
156
+ .TP
157
+ \fIpathName \fBdelete \fIfirst \fR?\fIlast\fR?
158
+ Delete one or more elements of the entry.
159
+ \fIFirst\fR is the index of the first character to delete, and
160
+ \fIlast\fR is the index of the character just after the last
161
+ one to delete.
162
+ If \fIlast\fR isn't specified it defaults to \fIfirst\fR+1,
163
+ i.e. a single character is deleted.
164
+ This command returns the empty string.
165
+ .TP
166
+ \fIpathName \fBget\fR
167
+ Returns the entry's string.
168
+ .TP
169
+ \fIpathName \fBicursor \fIindex\fR
170
+ Arrange for the insert cursor to be displayed just before the character
171
+ given by \fIindex\fR. Returns the empty string.
172
+ .TP
173
+ \fIpathName \fBidentify \fIx y\fR
174
+ Returns the name of the element at position \fIx\fR, \fIy\fR,
175
+ or the empty string if the coordinates are outside the window.
176
+ .TP
177
+ \fIpathName \fBindex\fI index\fR
178
+ Returns the numerical index corresponding to \fIindex\fR.
179
+ .TP
180
+ \fIpathName \fBinsert \fIindex string\fR
181
+ Insert \fIstring\fR just before the character
182
+ indicated by \fIindex\fR. Returns the empty string.
183
+ .TP
184
+ \fIpathName \fBinstate \fIstatespec\fR ?\fIscript\fR?
185
+ Test the widget state.
186
+ See \fIwidget(n)\fR.
187
+ .TP
188
+ \fIpathName \fBselection \fIoption arg\fR
189
+ This command is used to adjust the selection within an entry. It
190
+ has several forms, depending on \fIoption\fR:
191
+ .RS
192
+ .TP
193
+ \fIpathName \fBselection clear\fR
194
+ Clear the selection if it is currently in this widget.
195
+ If the selection isn't in this widget then the command has no effect.
196
+ Returns the empty string.
197
+ .TP
198
+ \fIpathName \fBselection present\fR
199
+ Returns 1 if there is are characters selected in the entry,
200
+ 0 if nothing is selected.
201
+ .TP
202
+ \fIpathName \fBselection range \fIstart\fR \fIend\fR
203
+ Sets the selection to include the characters starting with
204
+ the one indexed by \fIstart\fR and ending with the one just
205
+ before \fIend\fR.
206
+ If \fIend\fR refers to the same character as \fIstart\fR or an
207
+ earlier one, then the entry's selection is cleared.
208
+ .RE
209
+ .TP
210
+ \fIpathName \fBstate\fR ?\fIstateSpec\fR?
211
+ Modify or query the widget state.
212
+ See \fIwidget(n)\fR.
213
+ .TP
214
+ \fIpathName \fBvalidate\fR
215
+ Force revalidation, independent of the conditions specified
216
+ by the \fB-validate\fR option.
217
+ Returns 0 if validation fails, 1 if it succeeds.
218
+ Sets or clears the \fBinvalid\fR state accordingly.
219
+ .TP
220
+ \fIpathName \fBxview \fIargs\fR
221
+ This command is used to query and change the horizontal position of the
222
+ text in the widget's window. It can take any of the following
223
+ forms:
224
+ .RS
225
+ .TP
226
+ \fIpathName \fBxview\fR
227
+ Returns a list containing two elements.
228
+ Each element is a real fraction between 0 and 1; together they describe
229
+ the horizontal span that is visible in the window.
230
+ For example, if the first element is .2 and the second element is .6,
231
+ 20% of the entry's text is off-screen to the left, the middle 40% is visible
232
+ in the window, and 40% of the text is off-screen to the right.
233
+ These are the same values passed to scrollbars via the \fB\-xscrollcommand\fR
234
+ option.
235
+ .TP
236
+ \fIpathName \fBxview\fR \fIindex\fR
237
+ Adjusts the view in the window so that the character given by \fIindex\fR
238
+ is displayed at the left edge of the window.
239
+ .TP
240
+ \fIpathName \fBxview moveto\fI fraction\fR
241
+ Adjusts the view in the window so that the character \fIfraction\fR of the
242
+ way through the text appears at the left edge of the window.
243
+ \fIFraction\fR must be a fraction between 0 and 1.
244
+ .TP
245
+ \fIpathName \fBxview scroll \fInumber what\fR
246
+ This command shifts the view in the window left or right according to
247
+ \fInumber\fR and \fIwhat\fR.
248
+ \fINumber\fR must be an integer.
249
+ \fIWhat\fR must be either \fBunits\fR or \fBpages\fR.
250
+ '\" or an abbreviation of one of these, but we don't document that.
251
+ If \fIwhat\fR is \fBunits\fR, the view adjusts left or right by
252
+ \fInumber\fR average-width characters on the display; if it is
253
+ \fBpages\fR then the view adjusts by \fInumber\fR screenfuls.
254
+ If \fInumber\fR is negative then characters farther to the left
255
+ become visible; if it is positive then characters farther to the right
256
+ become visible.
257
+ .RE
258
+ .SH VALIDATION
259
+ The \fB-validate\fR, \fB-validatecommand\fR, and \fB-invalidcommand\fR
260
+ options are used to enable entry widget validation.
261
+ .SS "VALIDATION MODES"
262
+ There are two main validation modes: \fIprevalidation\fR,
263
+ in which the \fB-validatecommand\fR is evaluated prior to each edit
264
+ and the return value is used to determine whether to accept
265
+ or reject the change;
266
+ and \fIrevalidation\fR, in which the \fB-validatecommand\fR is
267
+ evaluated to determine whether the current value is valid.
268
+ .PP
269
+ The \fB-validate\fR option determines when validation occurs;
270
+ it may be set to any of the following values:
271
+ .IP \fBnone\fR
272
+ Default. This means validation will only occur when
273
+ specifically requested by the \fBvalidate\fR widget command.
274
+ .IP \fBkey\fR
275
+ The entry will be prevalidated prior to each edit
276
+ (specifically, whenever the \fBinsert\fR or \fBdelete\fR
277
+ widget commands are called).
278
+ If prevalidation fails, the edit is rejected.
279
+ .IP \fBfocus\fR
280
+ The entry is revalidated when the entry receives or loses focus.
281
+ .IP \fBfocusin\fR
282
+ The entry is revalidated when the entry receives focus.
283
+ .IP \fBfocusout\fR
284
+ The entry is revalidated when the entry loses focus.
285
+ .IP \fBall\fR
286
+ Validation is performed for all above conditions.
287
+ .PP
288
+ The \fB-invalidcommand\fR is evaluated whenever
289
+ the \fB-validatecommand\fR returns a false value.
290
+ .PP
291
+ The \fB-validatecommand\fR and \fB-invalidcommand\fR
292
+ may modify the entry widget's value
293
+ via the widget \fBinsert\fR or \fBdelete\fR commands,
294
+ or by setting the linked \fB-textvariable\fR.
295
+ If either does so during prevalidation,
296
+ then the edit is rejected
297
+ regardless of the value returned by the \fB-validatecommand\fR.
298
+ .PP
299
+ If \fB-validatecommand\fR is empty (the default),
300
+ validation always succeeds.
301
+ .SS "VALIDATION SCRIPT SUBSTITUTIONS"
302
+ It is possible to perform percent substitutions on the
303
+ \fB-validatecommand\fR and \fBinvalidCommand\fR,
304
+ just as in a \fBbind\fR script.
305
+ The following substitutions are recognized:
306
+ .IP \fB%d\fR
307
+ Type of action: 1 for \fBinsert\fR prevalidation,
308
+ 0 for \fBdelete\fR prevalidation,
309
+ or -1 for revalidation.
310
+ .IP \fB%i\fR
311
+ Index of character string to be inserted/deleted, if any, otherwise -1.
312
+ .IP \fB%P\fR
313
+ In prevalidation, the new value of the entry if the edit is accepted.
314
+ In revalidation, the current value of the entry.
315
+ .IP \fB%s\fR
316
+ The current value of entry prior to editing.
317
+ .IP \fB%S\fR
318
+ The text string being inserted/deleted, if any, {} otherwise.
319
+ .IP \fB%v\fR
320
+ The current value of the \fB-validate\fR option.
321
+ .IP \fB%V\fR
322
+ The validation condition that triggered the callback
323
+ (\fBkey\fR, \fBfocusin\fR, \fBfocusout\fR, or \fBforced\fR).
324
+ .IP \fB%W\fR
325
+ The name of the entry widget.
326
+ .SS "DIFFERENCES FROM TK ENTRY WIDGET VALIDATION"
327
+ .IP \(bu
328
+ The standard Tk entry widget automatically disables validation
329
+ (by setting \fB-validate\fR to \fBnone\fR)
330
+ if the \fB-validatecommand\fR or \fB-invalidcommand\fR modifies
331
+ the entry's value.
332
+ The Tile entry widget only disables validation if one
333
+ of the validation scripts raises an error, or if \fB-validatecommand\fR
334
+ does not return a valid boolean value.
335
+ (Thus, it is not necessary to reenable validation after
336
+ modifying the entry value in a validation script).
337
+ .IP \(bu
338
+ The standard entry widget invokes validation whenever the linked
339
+ \fB-textvariable\fR is modified; the Tile entry widget does not.
340
+ .SH "DEFAULT BINDINGS"
341
+ The entry widget's default bindings enable the following behavior.
342
+ In the descriptions below, ``word'' refers to a contiguous group
343
+ of letters, digits, or ``_'' characters, or any single character
344
+ other than these.
345
+ .IP \(bu
346
+ Clicking mouse button 1 positions the insert cursor
347
+ just before the character underneath the mouse cursor, sets the
348
+ input focus to this widget, and clears any selection in the widget.
349
+ Dragging with mouse button 1 down strokes out a selection between
350
+ the insert cursor and the character under the mouse.
351
+ .IP \(bu
352
+ Double-clicking with mouse button 1 selects the word under the mouse
353
+ and positions the insert cursor at the end of the word.
354
+ Dragging after a double click strokes out a selection consisting
355
+ of whole words.
356
+ .IP \(bu
357
+ Triple-clicking with mouse button 1 selects all of the text in the
358
+ entry and positions the insert cursor at the end of the line.
359
+ .IP \(bu
360
+ The ends of the selection can be adjusted by dragging with mouse
361
+ button 1 while the Shift key is down.
362
+ If the button is double-clicked before dragging then the selection
363
+ will be adjusted in units of whole words.
364
+ .IP \(bu
365
+ Clicking mouse button 1 with the Control key down will position the
366
+ insert cursor in the entry without affecting the selection.
367
+ .IP \(bu
368
+ If any normal printing characters are typed in an entry, they are
369
+ inserted at the point of the insert cursor.
370
+ .IP \(bu
371
+ The view in the entry can be adjusted by dragging with mouse button 2.
372
+ If mouse button 2 is clicked without moving the mouse, the selection
373
+ is copied into the entry at the position of the mouse cursor.
374
+ .IP \(bu
375
+ If the mouse is dragged out of the entry on the left or right sides
376
+ while button 1 is pressed, the entry will automatically scroll to
377
+ make more text visible (if there is more text off-screen on the side
378
+ where the mouse left the window).
379
+ .IP \(bu
380
+ The Left and Right keys move the insert cursor one character to the
381
+ left or right; they also clear any selection in the entry.
382
+ If Left or Right is typed with the Shift key down, then the insertion
383
+ cursor moves and the selection is extended to include the new character.
384
+ Control-Left and Control-Right move the insert cursor by words, and
385
+ Control-Shift-Left and Control-Shift-Right move the insert cursor
386
+ by words and also extend the selection.
387
+ Control-b and Control-f behave the same as Left and Right, respectively.
388
+ .IP \(bu
389
+ The Home key and Control-a move the insert cursor to the
390
+ beginning of the entry and clear any selection in the entry.
391
+ Shift-Home moves the insert cursor to the beginning of the entry
392
+ and extends the selection to that point.
393
+ .IP \(bu
394
+ The End key and Control-e move the insert cursor to the
395
+ end of the entry and clear any selection in the entry.
396
+ Shift-End moves the cursor to the end and extends the selection
397
+ to that point.
398
+ .IP \(bu
399
+ Control-/ selects all the text in the entry.
400
+ .IP \(bu
401
+ Control-\e clears any selection in the entry.
402
+ .IP \(bu
403
+ The standard Tk <<Cut>>, <<Copy>>, <<Paste>>, and <<Clear>>
404
+ virtual events operate on the selection in the expected manner.
405
+ .IP \(bu
406
+ The Delete key deletes the selection, if there is one in the entry.
407
+ If there is no selection, it deletes the character to the right of
408
+ the insert cursor.
409
+ .IP \(bu
410
+ The BackSpace key and Control-h delete the selection, if there is one
411
+ in the entry.
412
+ If there is no selection, it deletes the character to the left of
413
+ the insert cursor.
414
+ .IP \(bu
415
+ Control-d deletes the character to the right of the insert cursor.
416
+ .IP \(bu
417
+ Control-k deletes all the characters to the right of the insertion
418
+ cursor.
419
+ .SH "WIDGET STATES"
420
+ In the \fBdisabled\fR state,
421
+ the entry cannot be edited and the text cannot be selected.
422
+ In the \fBreadonly\fR state,
423
+ no insert cursor is displayed and
424
+ the entry cannot be edited
425
+ (specifically: the \fBinsert\fR and \fBdelete\fR commands have no effect).
426
+ The \fBdisabled\fR state is the same as \fBreadonly\fR,
427
+ and in addition text cannot be selected.
428
+ .PP
429
+ Note that changes to the linked \fB-textvariable\fR will
430
+ still be reflected in the entry, even if it is disabled or readonly.
431
+ .PP
432
+ Typically, the text is "grayed-out" in the \fBdisabled\fR state,
433
+ and a different background is used in the \fBreadonly\fR state.
434
+ .PP
435
+ The entry widget sets the \fBinvalid\fR state if revalidation fails,
436
+ and clears it whenever validation succeeds.
437
+ .SH KEYWORDS
438
+ entry, widget, text field