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,298 @@
1
+ #
2
+ # paned.test,v 1.6 2007/11/25 17:17:10 jenglish Exp
3
+ #
4
+
5
+ package require Tk
6
+ package require tcltest ; namespace import -force tcltest::*
7
+ loadTestedCommands
8
+
9
+ lappend auto_path .
10
+ package require tile
11
+
12
+ proc propagate-geometry {} { update idletasks }
13
+
14
+ # Basic sanity checks:
15
+ #
16
+ test paned-1.0 "Setup" -body {
17
+ ttk::panedwindow .pw
18
+ } -result .pw
19
+
20
+ test paned-1.1 "Make sure empty panedwindow doesn't crash" -body {
21
+ pack .pw -expand true -fill both
22
+ update
23
+ }
24
+
25
+ test paned-1.2 "Add a pane" -body {
26
+ .pw add [ttk::frame .pw.f1]
27
+ winfo manager .pw.f1
28
+ } -result "panedwindow"
29
+
30
+ test paned-1.3 "Steal pane" -body {
31
+ pack .pw.f1 -side bottom
32
+ winfo manager .pw.f1
33
+ } -result "pack"
34
+
35
+ test paned-1.4 "Make sure empty panedwindow still doesn't crash" -body {
36
+ update
37
+ }
38
+
39
+ test paned-1.5 "Remanage pane" -body {
40
+ #XXX .pw insert 0 .pw.f1
41
+ .pw add .pw.f1
42
+ winfo manager .pw.f1
43
+ } -result "panedwindow"
44
+
45
+ test paned-1.6 "Forget pane" -body {
46
+ .pw forget .pw.f1
47
+ winfo manager .pw.f1
48
+ } -result ""
49
+
50
+ test paned-1.7 "Make sure empty panedwindow still still doesn't crash" -body {
51
+ update
52
+ }
53
+
54
+ test paned-1.8 "Re-forget pane" -body {
55
+ .pw forget .pw.f1
56
+ } -returnCodes 1 -result ".pw.f1 is not managed by .pw"
57
+
58
+ test paned-1.end "Cleanup" -body {
59
+ destroy .pw
60
+ }
61
+
62
+ # Resize behavior:
63
+ #
64
+ test paned-2.1 "..." -body {
65
+ ttk::panedwindow .pw -orient horizontal
66
+
67
+ .pw add [listbox .pw.l1]
68
+ .pw add [listbox .pw.l2]
69
+ .pw add [listbox .pw.l3]
70
+ .pw add [listbox .pw.l4]
71
+
72
+ pack .pw -expand true -fill both
73
+ update
74
+ set w1 [winfo width .]
75
+
76
+ # This should make the window shrink:
77
+ destroy .pw.l2
78
+
79
+ update
80
+ set w2 [winfo width .]
81
+
82
+ expr {$w2 < $w1}
83
+ } -result 1
84
+
85
+ test paned-2.2 "..., cont'd" -body {
86
+
87
+ # This should keep the window from shrinking:
88
+ wm geometry . [wm geometry .]
89
+
90
+ set rw2 [winfo reqwidth .pw]
91
+
92
+ destroy .pw.l1
93
+ update
94
+
95
+ set w3 [winfo width .]
96
+ set rw3 [winfo reqwidth .pw]
97
+
98
+ expr {$w3 == $w2 && $rw3 < $rw2}
99
+ # problem: [winfo reqwidth] shrinks, but sashes haven't moved
100
+ # since we haven't gotten a ConfigureNotify.
101
+ # How to (a) check for this, and (b) fix it?
102
+ } -result 1
103
+
104
+ test paned-2.3 "..., cont'd" -body {
105
+
106
+ .pw add [listbox .pw.l5]
107
+ update
108
+ set rw4 [winfo reqwidth .pw]
109
+
110
+ expr {$rw4 > $rw3}
111
+ } -result 1
112
+
113
+ test paned-2.end "Cleanup" -body { destroy .pw }
114
+
115
+ #
116
+ # ...
117
+ #
118
+ test paned-3.0 "configure pane" -body {
119
+ ttk::panedwindow .pw
120
+ .pw add [listbox .pw.lb1]
121
+ .pw add [listbox .pw.lb2]
122
+ .pw pane 1 -weight 2
123
+ .pw pane 1 -weight
124
+ } -result 2
125
+
126
+ test paned-3.1 "configure pane -- errors" -body {
127
+ .pw pane 1 -weight -4
128
+ } -returnCodes 1 -match glob -result "-weight must be nonnegative"
129
+
130
+ test paned-3.2 "add pane -- errors" -body {
131
+ .pw add [ttk::label .pw.l] -weight -1
132
+ } -returnCodes 1 -match glob -result "-weight must be nonnegative"
133
+
134
+
135
+ test paned-3.end "cleanup" -body { destroy .pw }
136
+
137
+
138
+ test paned-4.1 "forget" -body {
139
+ pack [ttk::panedwindow .pw -orient vertical] -expand true -fill both
140
+ .pw add [label .pw.l1 -text "L1"]
141
+ .pw add [label .pw.l2 -text "L2"]
142
+ .pw add [label .pw.l3 -text "L3"]
143
+ .pw add [label .pw.l4 -text "L4"]
144
+
145
+ update
146
+
147
+ .pw forget .pw.l1
148
+ .pw forget .pw.l2
149
+ .pw forget .pw.l3
150
+ .pw forget .pw.l4
151
+ update
152
+ }
153
+
154
+ test paned-4.2 "forget forgotten" -body {
155
+ .pw forget .pw.l1
156
+ } -returnCodes 1 -result ".pw.l1 is not managed by .pw"
157
+
158
+ # checkorder $winlist --
159
+ # Ensure that Y coordinates windows in $winlist are strictly increasing.
160
+ #
161
+ proc checkorder {winlist} {
162
+ set pos -1
163
+ set positions [list]
164
+ foreach win $winlist {
165
+ lappend positions [set nextpos [winfo y $win]]
166
+ if {$nextpos <= $pos} {
167
+ error "window $win out of order ($positions)"
168
+ }
169
+ set pos $nextpos
170
+ }
171
+ }
172
+
173
+ test paned-4.3 "insert command" -body {
174
+ .pw insert end .pw.l1
175
+ .pw insert end .pw.l3
176
+ .pw insert 1 .pw.l2
177
+ .pw insert end .pw.l4
178
+
179
+ update;
180
+ checkorder {.pw.l1 .pw.l2 .pw.l3 .pw.l4}
181
+ }
182
+
183
+ test paned-4.END "cleanup" -body {
184
+ destroy .pw
185
+ }
186
+
187
+ # See #1292219
188
+
189
+ test paned-5.1 "Propagate Map/Unmap state to children" -body {
190
+ set result [list]
191
+ pack [ttk::panedwindow .pw]
192
+ .pw add [ttk::button .pw.b]
193
+ update
194
+
195
+ lappend result [winfo ismapped .pw] [winfo ismapped .pw.b]
196
+
197
+ pack forget .pw
198
+ update
199
+ lappend result [winfo ismapped .pw] [winfo ismapped .pw.b]
200
+
201
+ set result
202
+ } -result [list 1 1 0 0] -cleanup {
203
+ destroy .pw
204
+ }
205
+
206
+ ### sashpos tests.
207
+ #
208
+ proc sashpositions {pw} {
209
+ set positions [list]
210
+ set npanes [llength [winfo children $pw]]
211
+ for {set i 0} {$i < $npanes - 1} {incr i} {
212
+ lappend positions [$pw sashpos $i]
213
+ }
214
+ return $positions
215
+ }
216
+
217
+ test paned-sashpos-setup "Setup for sash position test" -body {
218
+ ttk::style theme use default
219
+ ttk::style configure -sashthickness 5
220
+
221
+ ttk::panedwindow .pw
222
+ .pw add [frame .pw.f1 -width 20 -height 20]
223
+ .pw add [frame .pw.f2 -width 20 -height 20]
224
+ .pw add [frame .pw.f3 -width 20 -height 20]
225
+ .pw add [frame .pw.f4 -width 20 -height 20]
226
+
227
+ propagate-geometry
228
+ list [winfo reqwidth .pw] [winfo reqheight .pw]
229
+ } -result [list 20 [expr {20*4 + 5*3}]]
230
+
231
+ test paned-sashpos-attempt-restore "Attempt to set sash positions" -body {
232
+ # This is not expected to succeed, since .pw isn't large enough yet.
233
+ #
234
+ .pw sashpos 0 30
235
+ .pw sashpos 1 60
236
+ .pw sashpos 2 90
237
+
238
+ list [winfo reqwidth .pw] [winfo reqheight .pw] [sashpositions .pw]
239
+ } -result [list 20 95 [list 0 5 10]]
240
+
241
+ test paned-sashpos-restore "Set height then sash positions" -body {
242
+ # Setting sash positions after setting -height _should_ succeed.
243
+ #
244
+ .pw configure -height 120
245
+ .pw sashpos 0 30
246
+ .pw sashpos 1 60
247
+ .pw sashpos 2 90
248
+ list [winfo reqwidth .pw] [winfo reqheight .pw] [sashpositions .pw]
249
+ } -result [list 20 120 [list 30 60 90]]
250
+
251
+ test paned-sashpos-cleanup "Clean up" -body { destroy .pw }
252
+
253
+ test paned-propagation-setup "Setup." -body {
254
+ ttk::style theme use default
255
+ ttk::style configure -sashthickness 5
256
+ wm geometry . {}
257
+ ttk::panedwindow .pw -orient vertical
258
+
259
+ frame .pw.f1 -width 100 -height 50
260
+ frame .pw.f2 -width 100 -height 50
261
+
262
+ list [winfo reqwidth .pw.f1] [winfo reqheight .pw.f1]
263
+ } -result [list 100 50]
264
+
265
+ test paned-propagation-1 "Initial request size" -body {
266
+ .pw add .pw.f1
267
+ .pw add .pw.f2
268
+ propagate-geometry
269
+ list [winfo reqwidth .pw] [winfo reqheight .pw]
270
+ } -result [list 100 105]
271
+
272
+ test paned-propagation-2 "Slave change before map" -body {
273
+ .pw.f1 configure -width 200 -height 100
274
+ propagate-geometry
275
+ list [winfo reqwidth .pw] [winfo reqheight .pw]
276
+ } -result [list 200 155]
277
+
278
+ test paned-propagation-3 "Map window" -body {
279
+ pack .pw -expand true -fill both
280
+ update
281
+ list [winfo width .pw] [winfo height .pw] [.pw sashpos 0]
282
+ } -result [list 200 155 100]
283
+
284
+ test paned-propagation-4 "Slave change after map, off-axis" -body {
285
+ .pw.f1 configure -width 100 ;# should be granted
286
+ propagate-geometry
287
+ list [winfo reqwidth .pw] [winfo reqheight .pw] [.pw sashpos 0]
288
+ } -result [list 100 155 100]
289
+
290
+ test paned-propagation-5 "Slave change after map, on-axis" -body {
291
+ .pw.f1 configure -height 50 ;# should be denied
292
+ propagate-geometry
293
+ list [winfo reqwidth .pw] [winfo reqheight .pw] [.pw sashpos 0]
294
+ } -result [list 100 155 100]
295
+
296
+ test paned-propagation-cleanup "Clean up." -body { destroy .pw }
297
+
298
+ tcltest::cleanupTests
@@ -0,0 +1,92 @@
1
+ #
2
+ # progress.test,v 1.4 2005/09/12 03:17:48 jenglish Exp
3
+ #
4
+
5
+ package require Tk
6
+ package require tcltest ; namespace import -force tcltest::*
7
+ loadTestedCommands
8
+
9
+ lappend auto_path .
10
+ package require tile
11
+
12
+
13
+ test progress-1.1 "Setup" -body {
14
+ ttk::progressbar .pb
15
+ } -result .pb
16
+
17
+ test progress-1.2 "Linked variable" -body {
18
+ set PB 50
19
+ .pb configure -variable PB
20
+ .pb cget -value
21
+ } -result 50
22
+
23
+ test progress-1.3 "Change linked variable" -body {
24
+ set PB 80
25
+ .pb cget -value
26
+ } -result 80
27
+
28
+ test progress-1.4 "Set linked variable to bad value" -body {
29
+ set PB "bogus"
30
+ .pb instate invalid
31
+ } -result 1
32
+
33
+ test progress-1.4.1 "Set linked variable back to a good value" -body {
34
+ set PB 80
35
+ .pb instate invalid
36
+ } -result 0
37
+
38
+ test progress-1.5 "Set -variable to illegal variable" -body {
39
+ set BAD "bogus"
40
+ .pb configure -variable BAD
41
+ .pb instate invalid
42
+ } -result 1
43
+
44
+ test progress-1.6 "Unset -variable" -body {
45
+ unset -nocomplain UNSET
46
+ .pb configure -variable UNSET
47
+ .pb instate disabled
48
+ } -result 1
49
+
50
+ test progress-2.0 "step command" -body {
51
+ .pb configure -variable {} ;# @@@
52
+ .pb configure -value 5 -maximum 10 -mode determinate
53
+ .pb step
54
+ .pb cget -value
55
+ } -result 6.0
56
+
57
+ test progress-2.1 "step command, with stepamount" -body {
58
+ .pb step 3
59
+ .pb cget -value
60
+ } -result 9.0
61
+
62
+ test progress-2.2 "step wraps at -maximum in determinate mode" -body {
63
+ .pb step
64
+ .pb cget -value
65
+ } -result 0.0
66
+
67
+ test progress-2.3 "step doesn't wrap in indeterminate mode" -body {
68
+ .pb configure -value 8 -maximum 10 -mode indeterminate
69
+ .pb step
70
+ .pb step
71
+ .pb step
72
+ .pb cget -value
73
+ } -result 11.0
74
+
75
+ test progress-2.4 "step with linked variable" -body {
76
+ .pb configure -variable PB ;# @@@
77
+ set PB 5
78
+ .pb step
79
+ set PB
80
+ } -result 6.0
81
+
82
+ test progress-2.5 "error in write trace" -body {
83
+ trace variable PB w { error "YIPES!" ;# }
84
+ .pb step
85
+ set PB ;# NOTREACHED
86
+ } -cleanup { unset PB } -returnCodes 1 -match glob -result "*YIPES!"
87
+
88
+ test progress-end "Cleanup" -body {
89
+ destroy .pb
90
+ }
91
+
92
+ tcltest::cleanupTests
@@ -0,0 +1,90 @@
1
+ # [20 Mar 2005] - interactive test for Tile panedwindow widget
2
+
3
+ package require tile
4
+
5
+ option add *Text.height 10
6
+ option add *Listbox.height 5
7
+ option add *Listbox.width 20
8
+ option add *Panedwindow.opaqueResize 1
9
+ option add *Panedwindow.OpaqueResize 1
10
+
11
+ bind PWTestListbox <ButtonPress-1> {focus %W}
12
+ bind PWTestListbox <KeyPress-t> { %W configure -height 10 }
13
+ bind PWTestListbox <KeyPress-s> { %W configure -height 5 }
14
+ bind PWTestListbox <KeyPress-n> { %W configure -width 20 }
15
+ bind PWTestListbox <KeyPress-w> { %W configure -width 40 }
16
+
17
+ proc pwtest.listbox {w args} {
18
+ eval [linsert $args 0 listbox $w]
19
+ bindtags $w [list $w PWTestListbox [winfo class $w] [winfo toplevel $w] all]
20
+ return $w
21
+ }
22
+
23
+ ttk::panedwindow .pw -orient vertical
24
+ #panedwindow .pw -opaqueresize true -orient vertical
25
+
26
+ #frame .pw
27
+ #proc .pw-add {win} { pack $win -side top -expand false -fill x }
28
+
29
+ .pw add [ttk::frame .pw.f1] -weight 1;#$ -stretch always
30
+ .pw add [ttk::frame .pw.f2] -weight 1;#$ -stretch always
31
+ .pw add [set w3 [pwtest.listbox .pw.f3]] -weight 1;#$ -stretch always
32
+ .pw add [ttk::frame .pw.f4] -weight 1;#$ -stretch always
33
+
34
+ pack [set w1 [pwtest.listbox .pw.f1.l]] -expand true -fill both
35
+ pack [set w2 [pwtest.listbox .pw.f2.l]] -expand true -fill both
36
+ #X pack [set w3 [pwtest.listbox .pw.f3.l]] -expand true -fill both
37
+ pack [set w4 [pwtest.listbox .pw.f4.l]] -expand true -fill both
38
+
39
+ pack [label .l -textvariable ::element] -side bottom -expand false -fill x
40
+ pack .pw -expand true -fill both -side top
41
+
42
+ bind .pw <Motion> { set ::element "[%W identify %x %y] - %x,%y" }
43
+
44
+ bind . <KeyPress-Escape> [list destroy .]
45
+ #- bind . <KeyPress-h> [list .pw configure -orient horizontal]
46
+ #- bind . <KeyPress-v> [list .pw configure -orient vertical]
47
+
48
+ bind PWTestListbox <KeyPress-f> [list pwtest.forget .pw %W]
49
+ bind PWTestListbox <KeyPress-r> [list pwtest.remember .pw]
50
+
51
+ proc pwtest.forget {pw slave} {
52
+ global $pw
53
+ $pw forget $slave
54
+ lappend $pw $slave
55
+ }
56
+ proc pwtest.remember {pw} {
57
+ global $pw
58
+ foreach slave [set $pw] {
59
+ $pw add $slave
60
+ }
61
+ set $pw [list]
62
+ }
63
+
64
+ foreach w [list $w1 $w2 $w3] {
65
+ foreach string {abc def ghi jkl mno pqr stu vwx yz} {
66
+ $w insert end $string
67
+ }
68
+ }
69
+
70
+ proc pwtest.save-config {pw} {
71
+ update idletasks;
72
+ lappend config [winfo width $pw] [winfo height $pw]
73
+ set i -1;
74
+ foreach _ [lrange [$pw panes] 1 end] {
75
+ lappend config [$pw sashpos [incr i]]
76
+ }
77
+ return $config
78
+ }
79
+
80
+ proc pwtest.restore-config {pw config} {
81
+ $pw configure -width [lindex $config 0] -height [lindex $config 1]
82
+ set i -1
83
+ foreach sashpos [lrange $config 2 end] {
84
+ $pw sashpos [incr i] $sashpos
85
+ }
86
+ }
87
+
88
+ bind all <Control-KeyPress-s> { set ::A [pwtest.save-config .pw] }
89
+ bind all <Control-KeyPress-r> { pwtest.restore-config .pw $::A }
90
+