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,51 @@
1
+ #
2
+ # progress.tcl,v 1.5 2006/01/16 15:34:09 jenglish Exp
3
+ #
4
+ # Tile widget set: progress bar utilities.
5
+ #
6
+
7
+ namespace eval ttk::progressbar {
8
+ variable Timers ;# Map: widget name -> after ID
9
+ }
10
+
11
+ # Autoincrement --
12
+ # Periodic callback procedure for autoincrement mode
13
+ #
14
+ proc ttk::progressbar::Autoincrement {pb steptime stepsize} {
15
+ variable Timers
16
+
17
+ if {![winfo exists $pb]} {
18
+ # widget has been destroyed -- cancel timer
19
+ unset -nocomplain Timers($pb)
20
+ return
21
+ }
22
+
23
+ $pb step $stepsize
24
+
25
+ set Timers($pb) [after $steptime \
26
+ [list ttk::progressbar::Autoincrement $pb $steptime $stepsize] ]
27
+ }
28
+
29
+ # ttk::progressbar::start --
30
+ # Start autoincrement mode. Invoked by [$pb start] widget code.
31
+ #
32
+ proc ttk::progressbar::start {pb {steptime 50} {stepsize 1}} {
33
+ variable Timers
34
+ if {![info exists Timers($pb)]} {
35
+ Autoincrement $pb $steptime $stepsize
36
+ }
37
+ }
38
+
39
+ # ttk::progressbar::stop --
40
+ # Cancel autoincrement mode. Invoked by [$pb stop] widget code.
41
+ #
42
+ proc ttk::progressbar::stop {pb} {
43
+ variable Timers
44
+ if {[info exists Timers($pb)]} {
45
+ after cancel $Timers($pb)
46
+ unset Timers($pb)
47
+ }
48
+ $pb configure -value 0
49
+ }
50
+
51
+
@@ -0,0 +1,54 @@
1
+ # scale.tcl - Copyright (C) 2004 Pat Thoyts <patthoyts@users.sourceforge.net>
2
+ #
3
+ # Bindings for the TScale widget
4
+ #
5
+ # scale.tcl,v 1.11 2006/11/05 18:40:48 jenglish Exp
6
+
7
+ namespace eval ttk::scale {
8
+ variable State
9
+ array set State {
10
+ dragging 0
11
+ }
12
+ }
13
+
14
+ bind TScale <ButtonPress-1> { ttk::scale::Press %W %x %y }
15
+ bind TScale <B1-Motion> { ttk::scale::Drag %W %x %y }
16
+ bind TScale <ButtonRelease-1> { ttk::scale::Release %W %x %y }
17
+
18
+ proc ttk::scale::Press {w x y} {
19
+ variable State
20
+ set State(dragging) 0
21
+
22
+ switch -glob -- [$w identify $x $y] {
23
+ *track -
24
+ *trough {
25
+ if {[$w get $x $y] <= [$w get]} {
26
+ ttk::Repeatedly Increment $w -1
27
+ } else {
28
+ ttk::Repeatedly Increment $w 1
29
+ }
30
+ }
31
+ *slider {
32
+ set State(dragging) 1
33
+ set State(initial) [$w get]
34
+ }
35
+ }
36
+ }
37
+
38
+ proc ttk::scale::Drag {w x y} {
39
+ variable State
40
+ if {$State(dragging)} {
41
+ $w set [$w get $x $y]
42
+ }
43
+ }
44
+
45
+ proc ttk::scale::Release {w x y} {
46
+ variable State
47
+ set State(dragging) 0
48
+ ttk::CancelRepeat
49
+ }
50
+
51
+ proc ttk::scale::Increment {w delta} {
52
+ if {![winfo exists $w]} return
53
+ $w set [expr {[$w get] + $delta}]
54
+ }
@@ -0,0 +1,125 @@
1
+ #
2
+ # scrollbar.tcl,v 1.19 2007/12/12 16:53:10 jenglish Exp
3
+ #
4
+ # Bindings for TScrollbar widget
5
+ #
6
+
7
+ # Still don't have a working ttk::scrollbar under OSX -
8
+ # Swap in a [tk::scrollbar] on that platform,
9
+ # unless user specifies -class or -style.
10
+ #
11
+ if {[tk windowingsystem] eq "aqua"} {
12
+ rename ::ttk::scrollbar ::ttk::_scrollbar_
13
+ proc ttk::scrollbar {w args} {
14
+ set constructor ::scrollbar
15
+ foreach {option _} $args {
16
+ if {$option eq "-class" || $option eq "-style"} {
17
+ set constructor ::ttk::_scrollbar_
18
+ break
19
+ }
20
+ }
21
+ return [eval [linsert $args 0 $constructor $w]]
22
+ }
23
+ }
24
+
25
+ namespace eval ttk::scrollbar {
26
+ variable State
27
+ # State(xPress) --
28
+ # State(yPress) -- initial position of mouse at start of drag.
29
+ # State(first) -- value of -first at start of drag.
30
+ }
31
+
32
+ bind TScrollbar <ButtonPress-1> { ttk::scrollbar::Press %W %x %y }
33
+ bind TScrollbar <B1-Motion> { ttk::scrollbar::Drag %W %x %y }
34
+ bind TScrollbar <ButtonRelease-1> { ttk::scrollbar::Release %W %x %y }
35
+
36
+ bind TScrollbar <ButtonPress-2> { ttk::scrollbar::Jump %W %x %y }
37
+ bind TScrollbar <B2-Motion> { ttk::scrollbar::Drag %W %x %y }
38
+ bind TScrollbar <ButtonRelease-2> { ttk::scrollbar::Release %W %x %y }
39
+
40
+ proc ttk::scrollbar::Scroll {w n units} {
41
+ set cmd [$w cget -command]
42
+ if {$cmd ne ""} {
43
+ uplevel #0 $cmd scroll $n $units
44
+ }
45
+ }
46
+
47
+ proc ttk::scrollbar::Moveto {w fraction} {
48
+ set cmd [$w cget -command]
49
+ if {$cmd ne ""} {
50
+ uplevel #0 $cmd moveto $fraction
51
+ }
52
+ }
53
+
54
+ proc ttk::scrollbar::Press {w x y} {
55
+ variable State
56
+
57
+ set State(xPress) $x
58
+ set State(yPress) $y
59
+
60
+ switch -glob -- [$w identify $x $y] {
61
+ *uparrow -
62
+ *leftarrow {
63
+ ttk::Repeatedly Scroll $w -1 units
64
+ }
65
+ *downarrow -
66
+ *rightarrow {
67
+ ttk::Repeatedly Scroll $w 1 units
68
+ }
69
+ *thumb {
70
+ set State(first) [lindex [$w get] 0]
71
+ }
72
+ *trough {
73
+ set f [$w fraction $x $y]
74
+ if {$f < [lindex [$w get] 0]} {
75
+ # Clicked in upper/left trough
76
+ ttk::Repeatedly Scroll $w -1 pages
77
+ } elseif {$f > [lindex [$w get] 1]} {
78
+ # Clicked in lower/right trough
79
+ ttk::Repeatedly Scroll $w 1 pages
80
+ } else {
81
+ # Clicked on thumb (???)
82
+ set State(first) [lindex [$w get] 0]
83
+ }
84
+ }
85
+ }
86
+ }
87
+
88
+ proc ttk::scrollbar::Drag {w x y} {
89
+ variable State
90
+ if {![info exists State(first)]} {
91
+ # Initial buttonpress was not on the thumb,
92
+ # or something screwy has happened. In either case, ignore:
93
+ return;
94
+ }
95
+ set xDelta [expr {$x - $State(xPress)}]
96
+ set yDelta [expr {$y - $State(yPress)}]
97
+ Moveto $w [expr {$State(first) + [$w delta $xDelta $yDelta]}]
98
+ }
99
+
100
+ proc ttk::scrollbar::Release {w x y} {
101
+ variable State
102
+ unset -nocomplain State(xPress) State(yPress) State(first)
103
+ ttk::CancelRepeat
104
+ }
105
+
106
+ # scrollbar::Jump -- ButtonPress-2 binding for scrollbars.
107
+ # Behaves exactly like scrollbar::Press, except that
108
+ # clicking in the trough jumps to the the selected position.
109
+ #
110
+ proc ttk::scrollbar::Jump {w x y} {
111
+ variable State
112
+
113
+ switch -glob -- [$w identify $x $y] {
114
+ *thumb -
115
+ *trough {
116
+ set State(first) [$w fraction $x $y]
117
+ Moveto $w $State(first)
118
+ set State(xPress) $x
119
+ set State(yPress) $y
120
+ }
121
+ default {
122
+ Press $w $x $y
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,77 @@
1
+ #
2
+ # sizegrip.tcl,v 1.3 2006/11/05 18:40:48 jenglish Exp
3
+ #
4
+ # Tile widget set -- sizegrip widget bindings.
5
+ #
6
+ # Dragging a sizegrip widget resizes the containing toplevel.
7
+ #
8
+ # NOTE: the sizegrip widget must be in the lower right hand corner.
9
+ #
10
+
11
+ option add *TSizegrip.cursor $::ttk::Cursors(seresize)
12
+
13
+ namespace eval ttk::sizegrip {
14
+ variable State
15
+ array set State {
16
+ pressed 0
17
+ pressX 0
18
+ pressY 0
19
+ width 0
20
+ height 0
21
+ widthInc 1
22
+ heightInc 1
23
+ toplevel {}
24
+ }
25
+ }
26
+
27
+ bind TSizegrip <ButtonPress-1> { ttk::sizegrip::Press %W %X %Y }
28
+ bind TSizegrip <B1-Motion> { ttk::sizegrip::Drag %W %X %Y }
29
+ bind TSizegrip <ButtonRelease-1> { ttk::sizegrip::Release %W %X %Y }
30
+
31
+ proc ttk::sizegrip::Press {W X Y} {
32
+ variable State
33
+
34
+ set top [winfo toplevel $W]
35
+
36
+ # Sanity-checks:
37
+ # If a negative X or Y position was specified for [wm geometry],
38
+ # just bail out -- there's no way to handle this cleanly.
39
+ #
40
+ if {[scan [wm geometry $top] "%dx%d+%d+%d" width height _x _y] != 4} {
41
+ return;
42
+ }
43
+
44
+ # Account for gridded geometry:
45
+ #
46
+ set grid [wm grid $top]
47
+ if {[llength $grid]} {
48
+ set State(widthInc) [lindex $grid 2]
49
+ set State(heightInc) [lindex $grid 3]
50
+ } else {
51
+ set State(widthInc) [set State(heightInc) 1]
52
+ }
53
+
54
+ set State(toplevel) $top
55
+ set State(pressX) $X
56
+ set State(pressY) $Y
57
+ set State(width) $width
58
+ set State(height) $height
59
+ set State(pressed) 1
60
+ }
61
+
62
+ proc ttk::sizegrip::Drag {W X Y} {
63
+ variable State
64
+ if {!$State(pressed)} { return }
65
+ set w [expr {$State(width) + ($X - $State(pressX))/$State(widthInc)}]
66
+ set h [expr {$State(height) + ($Y - $State(pressY))/$State(heightInc)}]
67
+ if {$w <= 0} { set w 1 }
68
+ if {$h <= 0} { set h 1 }
69
+ wm geometry $State(toplevel) ${w}x${h}
70
+ }
71
+
72
+ proc ttk::sizegrip::Release {W X Y} {
73
+ variable State
74
+ set State(pressed) 0
75
+ }
76
+
77
+ #*EOF*
@@ -0,0 +1,211 @@
1
+ #
2
+ # tile.tcl,v 1.104 2006/12/13 17:05:25 jenglish Exp
3
+ #
4
+ # Tile widget set initialization script.
5
+ #
6
+
7
+ namespace eval tile {} ;# Old namespace, being phased out
8
+ namespace eval ttk {} ;# New official namespace
9
+
10
+ ### Source library scripts.
11
+ #
12
+
13
+ namespace eval tile {
14
+ if {![info exists library]} {
15
+ variable library [file dirname [info script]]
16
+ }
17
+ }
18
+
19
+ source [file join $tile::library keynav.tcl]
20
+ source [file join $tile::library fonts.tcl]
21
+ source [file join $tile::library cursors.tcl]
22
+ source [file join $tile::library icons.tcl]
23
+ source [file join $tile::library utils.tcl]
24
+
25
+ ### Deprecated aliases.
26
+ #
27
+
28
+ ## ttk::deprecated $old $new --
29
+ # Define $old command as a deprecated alias for $new command
30
+ # $old and $new must be fully namespace-qualified.
31
+ #
32
+ proc ttk::deprecated {old new} {
33
+ interp alias {} $old {} ttk::do'deprecate $old $new
34
+ }
35
+ ## do'deprecate --
36
+ # Implementation procedure for deprecated commands --
37
+ # issue a warning (once), then re-alias old to new.
38
+ #
39
+ proc ttk::do'deprecate {old new args} {
40
+ deprecated'warning $old $new
41
+ interp alias {} $old {} $new
42
+ uplevel 1 [linsert $args 0 $new]
43
+ }
44
+
45
+ ## deprecated'warning --
46
+ # Gripe about use of deprecated commands.
47
+ #
48
+ proc ttk::deprecated'warning {old new} {
49
+ puts stderr "$old deprecated -- use $new instead"
50
+ }
51
+
52
+ ### Backward compatibility:
53
+ #
54
+
55
+ ## 0.7.X compatibility: renamed in 0.8.0
56
+ #
57
+ ttk::deprecated ::ttk::paned ::ttk::panedwindow
58
+ ttk::deprecated ::tile::availableThemes ::ttk::themes
59
+ ttk::deprecated ::tile::setTheme ::ttk::setTheme
60
+ #Not yet: ttk::deprecated ::style ::ttk::style
61
+ interp alias {} ::style {} ::ttk::style
62
+
63
+ ttk::deprecated ::tile::defineImage ::ttk::defineImage
64
+ ttk::deprecated ::tile::stockIcon ::ttk::stockIcon
65
+
66
+ ttk::deprecated ::tile::CopyBindings ::ttk::copyBindings
67
+
68
+ ### Exported routines:
69
+ #
70
+ namespace eval ttk {
71
+
72
+ namespace export style
73
+
74
+ # All widget constructor commands are exported:
75
+ variable widgets {
76
+ button checkbutton radiobutton menubutton label entry
77
+ frame labelframe scrollbar
78
+ notebook progressbar combobox separator
79
+ panedwindow treeview sizegrip
80
+ scale
81
+ }
82
+
83
+ variable wc
84
+ foreach wc $widgets {
85
+ namespace export $wc
86
+ }
87
+ }
88
+
89
+ ### ttk::ThemeChanged --
90
+ # Called from [style theme use].
91
+ # Sends a <<ThemeChanged>> virtual event to all widgets.
92
+ #
93
+ proc ttk::ThemeChanged {} {
94
+ set Q .
95
+ while {[llength $Q]} {
96
+ set QN [list]
97
+ foreach w $Q {
98
+ event generate $w <<ThemeChanged>>
99
+ foreach child [winfo children $w] {
100
+ lappend QN $child
101
+ }
102
+ }
103
+ set Q $QN
104
+ }
105
+ }
106
+
107
+ ### Public API.
108
+ #
109
+
110
+ ## ttk::themes --
111
+ # Return list of themes registered in the package database.
112
+ #
113
+ proc ttk::themes {} {
114
+ set themes [list]
115
+
116
+ foreach pkg [lsearch -inline -all -glob [package names] ttk::theme::*] {
117
+ lappend themes [lindex [split $pkg :] end]
118
+ }
119
+
120
+ return $themes
121
+ }
122
+
123
+ ## ttk::setTheme $theme --
124
+ # Set the current theme to $theme, loading it if necessary.
125
+ #
126
+ proc ttk::setTheme {theme} {
127
+ variable currentTheme
128
+ if {[lsearch [style theme names] $theme] < 0} {
129
+ package require ttk::theme::$theme
130
+ }
131
+ style theme use $theme
132
+ set currentTheme $theme
133
+ }
134
+
135
+ ### Load widget bindings.
136
+ #
137
+ source [file join $tile::library button.tcl]
138
+ source [file join $tile::library menubutton.tcl]
139
+ source [file join $tile::library scrollbar.tcl]
140
+ source [file join $tile::library scale.tcl]
141
+ source [file join $tile::library progress.tcl]
142
+ source [file join $tile::library notebook.tcl]
143
+ source [file join $tile::library paned.tcl]
144
+ source [file join $tile::library entry.tcl]
145
+ source [file join $tile::library combobox.tcl] ;# dependency: entry.tcl
146
+ source [file join $tile::library treeview.tcl]
147
+ source [file join $tile::library sizegrip.tcl]
148
+ source [file join $tile::library dialog.tcl]
149
+
150
+ ## Label and Labelframe bindings:
151
+ # (not enough to justify their own file...)
152
+ #
153
+ bind TLabelframe <<Invoke>> { ttk::traverseTo [tk_focusNext %W] }
154
+ bind TLabel <<Invoke>> { ttk::traverseTo [tk_focusNext %W] }
155
+
156
+ ### Load settings for built-in themes:
157
+ #
158
+ proc ttk::LoadThemes {} {
159
+ variable ::tile::library
160
+
161
+ # "default" always present:
162
+ uplevel #0 [list source [file join $library defaults.tcl]]
163
+
164
+ set builtinThemes [style theme names]
165
+ foreach {theme script} {
166
+ classic classicTheme.tcl
167
+ alt altTheme.tcl
168
+ clam clamTheme.tcl
169
+ winnative winTheme.tcl
170
+ xpnative xpTheme.tcl
171
+ aqua aquaTheme.tcl
172
+ } {
173
+ if {[lsearch -exact $builtinThemes $theme] >= 0} {
174
+ uplevel #0 [list source [file join $library $script]]
175
+ }
176
+ }
177
+ }
178
+
179
+ ttk::LoadThemes; rename ::ttk::LoadThemes {}
180
+
181
+ ### Select platform-specific default theme:
182
+ #
183
+ # Notes:
184
+ # + On OSX, aqua theme is the default
185
+ # + On Windows, xpnative takes precedence over winnative if available.
186
+ # + On X11, users can use the X resource database to
187
+ # specify a preferred theme (*TkTheme: themeName);
188
+ # otherwise "default" is used.
189
+ #
190
+
191
+ proc ttk::DefaultTheme {} {
192
+ set preferred [list aqua xpnative winnative]
193
+
194
+ set userTheme [option get . tkTheme TkTheme]
195
+ if {$userTheme != {} && ![catch {
196
+ uplevel #0 [list package require ttk::theme::$userTheme]
197
+ }]} {
198
+ return $userTheme
199
+ }
200
+
201
+ foreach theme $preferred {
202
+ if {[package provide ttk::theme::$theme] != ""} {
203
+ return $theme
204
+ }
205
+ }
206
+ return "default"
207
+ }
208
+
209
+ ttk::setTheme [ttk::DefaultTheme] ; rename ttk::DefaultTheme {}
210
+
211
+ #*EOF*