Pratt 1.5.6

Sign up to get free protection for your applications and to get access to all the features.
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