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,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
+