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,419 @@
1
+ /* tkTheme.h,v 1.130 2007/12/16 18:20:55 jenglish Exp
2
+ * Copyright (c) 2003 Joe English. Freely redistributable.
3
+ *
4
+ * Declarations for Tk theme engine.
5
+ */
6
+
7
+ #ifndef _TTKTHEME
8
+ #define _TTKTHEME
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ #if defined(BUILD_tile)
15
+ # define TTKAPI DLLEXPORT
16
+ # undef USE_TTK_STUBS
17
+ #else
18
+ # define TTKAPI DLLIMPORT
19
+ #endif
20
+
21
+ #ifndef MODULE_SCOPE
22
+ # define MODULE_SCOPE extern
23
+ #endif
24
+
25
+ #define TILE_VERSION "0.8.2"
26
+
27
+ /*------------------------------------------------------------------------
28
+ * +++ Defaults for element option specifications.
29
+ */
30
+ #define DEFAULT_FONT "TkDefaultFont"
31
+ #define DEFAULT_BACKGROUND "#d9d9d9"
32
+ #define DEFAULT_FOREGROUND "black"
33
+
34
+ /*------------------------------------------------------------------------
35
+ * +++ Widget states.
36
+ * Keep in sync with stateNames[] in tkstate.c.
37
+ */
38
+
39
+ typedef unsigned int Ttk_State;
40
+
41
+ #define TTK_STATE_ACTIVE (1<<0)
42
+ #define TTK_STATE_DISABLED (1<<1)
43
+ #define TTK_STATE_FOCUS (1<<2)
44
+ #define TTK_STATE_PRESSED (1<<3)
45
+ #define TTK_STATE_SELECTED (1<<4)
46
+ #define TTK_STATE_BACKGROUND (1<<5)
47
+ #define TTK_STATE_ALTERNATE (1<<6)
48
+ #define TTK_STATE_INVALID (1<<7)
49
+ #define TTK_STATE_READONLY (1<<8)
50
+ #define TTK_STATE_USER7 (1<<9)
51
+ #define TTK_STATE_USER6 (1<<10)
52
+ #define TTK_STATE_USER5 (1<<11)
53
+ #define TTK_STATE_USER4 (1<<12)
54
+ #define TTK_STATE_USER3 (1<<13)
55
+ #define TTK_STATE_USER2 (1<<14)
56
+ #define TTK_STATE_USER1 (1<<15)
57
+
58
+ /* Maintenance note: if you get all the way to "USER1",
59
+ * see tkstate.c
60
+ */
61
+ typedef struct
62
+ {
63
+ unsigned int onbits; /* bits to turn on */
64
+ unsigned int offbits; /* bits to turn off */
65
+ } Ttk_StateSpec;
66
+
67
+ #define Ttk_StateMatches(state, spec) \
68
+ (((state) & ((spec)->onbits|(spec)->offbits)) == (spec)->onbits)
69
+
70
+ #define Ttk_ModifyState(state, spec) \
71
+ (((state) & ~(spec)->offbits) | (spec)->onbits)
72
+
73
+ TTKAPI int Ttk_GetStateSpecFromObj(Tcl_Interp *, Tcl_Obj *, Ttk_StateSpec *);
74
+ TTKAPI Tcl_Obj *Ttk_NewStateSpecObj(unsigned int onbits,unsigned int offbits);
75
+
76
+ /*------------------------------------------------------------------------
77
+ * +++ State maps and state tables.
78
+ */
79
+ typedef Tcl_Obj *Ttk_StateMap;
80
+
81
+ TTKAPI Ttk_StateMap Ttk_GetStateMapFromObj(Tcl_Interp *, Tcl_Obj *);
82
+ TTKAPI Tcl_Obj *Ttk_StateMapLookup(Tcl_Interp*, Ttk_StateMap, Ttk_State);
83
+
84
+ /*
85
+ * Table for looking up an integer index based on widget state:
86
+ */
87
+ typedef struct
88
+ {
89
+ int index; /* Value to return if this entry matches */
90
+ unsigned int onBits; /* Bits which must be set */
91
+ unsigned int offBits; /* Bits which must be cleared */
92
+ } Ttk_StateTable;
93
+
94
+ TTKAPI int Ttk_StateTableLookup(Ttk_StateTable map[], Ttk_State);
95
+
96
+ /*------------------------------------------------------------------------
97
+ * +++ Padding.
98
+ * Used to represent internal padding and borders.
99
+ */
100
+ typedef struct
101
+ {
102
+ short left;
103
+ short top;
104
+ short right;
105
+ short bottom;
106
+ } Ttk_Padding;
107
+
108
+ TTKAPI int Ttk_GetPaddingFromObj(Tcl_Interp*,Tk_Window,Tcl_Obj*,Ttk_Padding*);
109
+ TTKAPI int Ttk_GetBorderFromObj(Tcl_Interp*,Tcl_Obj*,Ttk_Padding*);
110
+
111
+ TTKAPI Ttk_Padding Ttk_MakePadding(short l, short t, short r, short b);
112
+ TTKAPI Ttk_Padding Ttk_UniformPadding(short borderWidth);
113
+ TTKAPI Ttk_Padding Ttk_AddPadding(Ttk_Padding, Ttk_Padding);
114
+ TTKAPI Ttk_Padding Ttk_RelievePadding(Ttk_Padding, int relief, int n);
115
+
116
+ #define Ttk_PaddingWidth(p) ((p).left + (p).right)
117
+ #define Ttk_PaddingHeight(p) ((p).top + (p).bottom)
118
+
119
+ #define Ttk_SetMargins(tkwin, pad) \
120
+ Tk_SetInternalBorderEx(tkwin, pad.left, pad.right, pad.top, pad.bottom)
121
+
122
+ /*------------------------------------------------------------------------
123
+ * +++ Boxes.
124
+ * Used to represent rectangular regions
125
+ */
126
+ typedef struct /* Hey, this is an XRectangle! */
127
+ {
128
+ int x;
129
+ int y;
130
+ int width;
131
+ int height;
132
+ } Ttk_Box;
133
+
134
+ TTKAPI Ttk_Box Ttk_MakeBox(int x, int y, int width, int height);
135
+ TTKAPI int Ttk_BoxContains(Ttk_Box, int x, int y);
136
+
137
+ #define Ttk_WinBox(tkwin) Ttk_MakeBox(0,0,Tk_Width(tkwin),Tk_Height(tkwin))
138
+
139
+ /*------------------------------------------------------------------------
140
+ * +++ Layout utilities.
141
+ */
142
+ typedef enum {
143
+ TTK_SIDE_LEFT, TTK_SIDE_TOP, TTK_SIDE_RIGHT, TTK_SIDE_BOTTOM
144
+ } Ttk_Side;
145
+
146
+ typedef unsigned int Ttk_Sticky;
147
+
148
+ /*
149
+ * -sticky bits for Ttk_StickBox:
150
+ */
151
+ #define TTK_STICK_W (0x1)
152
+ #define TTK_STICK_E (0x2)
153
+ #define TTK_STICK_N (0x4)
154
+ #define TTK_STICK_S (0x8)
155
+
156
+ /*
157
+ * Aliases and useful combinations:
158
+ */
159
+ #define TTK_FILL_X (0x3) /* -sticky ew */
160
+ #define TTK_FILL_Y (0xC) /* -sticky ns */
161
+ #define TTK_FILL_BOTH (0xF) /* -sticky nswe */
162
+
163
+ TTKAPI int Ttk_GetStickyFromObj(Tcl_Interp *, Tcl_Obj *, Ttk_Sticky *);
164
+ TTKAPI Tcl_Obj *Ttk_NewStickyObj(Ttk_Sticky);
165
+
166
+ /*
167
+ * Extra bits for position specifications (combine -side and -sticky)
168
+ */
169
+
170
+ typedef unsigned int Ttk_PositionSpec; /* See below */
171
+
172
+ #define TTK_PACK_LEFT (0x10) /* pack at left of current parcel */
173
+ #define TTK_PACK_RIGHT (0x20) /* pack at right of current parcel */
174
+ #define TTK_PACK_TOP (0x40) /* pack at top of current parcel */
175
+ #define TTK_PACK_BOTTOM (0x80) /* pack at bottom of current parcel */
176
+ #define TTK_EXPAND (0x100) /* use entire parcel */
177
+ #define TTK_BORDER (0x200) /* draw this element after children */
178
+ #define TTK_UNIT (0x400) /* treat descendants as a part of element */
179
+
180
+ /*
181
+ * Extra bits for layout specifications
182
+ */
183
+ #define _TTK_CHILDREN (0x1000)/* for LayoutSpecs -- children follow */
184
+ #define _TTK_LAYOUT_END (0x2000)/* for LayoutSpecs -- end of child list */
185
+ #define _TTK_LAYOUT (0x4000)/* for LayoutSpec tables -- define layout */
186
+
187
+ #define _TTK_MASK_STICK (0x0F) /* See Ttk_UnparseLayout() */
188
+ #define _TTK_MASK_PACK (0xF0) /* See Ttk_UnparseLayout(), packStrings */
189
+
190
+ TTKAPI Ttk_Box Ttk_PackBox(Ttk_Box *cavity, int w, int h, Ttk_Side side);
191
+ TTKAPI Ttk_Box Ttk_StickBox(Ttk_Box parcel, int w, int h, Ttk_Sticky sticky);
192
+ TTKAPI Ttk_Box Ttk_AnchorBox(Ttk_Box parcel, int w, int h, Tk_Anchor anchor);
193
+ TTKAPI Ttk_Box Ttk_PadBox(Ttk_Box b, Ttk_Padding p);
194
+ TTKAPI Ttk_Box Ttk_ExpandBox(Ttk_Box b, Ttk_Padding p);
195
+ TTKAPI Ttk_Box Ttk_PlaceBox(Ttk_Box *cavity, int w,int h, Ttk_Side,Ttk_Sticky);
196
+ TTKAPI Ttk_Box Ttk_PositionBox(Ttk_Box *cavity, int w, int h, Ttk_PositionSpec);
197
+
198
+ /*------------------------------------------------------------------------
199
+ * +++ Themes.
200
+ */
201
+ extern void Ttk_StylePkgInit(Tcl_Interp *);
202
+
203
+ typedef struct Ttk_Theme_ *Ttk_Theme;
204
+ typedef struct Ttk_ElementImpl_ *Ttk_ElementImpl;
205
+ typedef struct Ttk_Layout_ *Ttk_Layout;
206
+ typedef struct Ttk_LayoutNode_ Ttk_LayoutNode;
207
+
208
+ TTKAPI Ttk_Theme Ttk_GetTheme(Tcl_Interp *interp, const char *name);
209
+ TTKAPI Ttk_Theme Ttk_GetDefaultTheme(Tcl_Interp *interp);
210
+ TTKAPI Ttk_Theme Ttk_GetCurrentTheme(Tcl_Interp *interp);
211
+
212
+ TTKAPI Ttk_Theme Ttk_CreateTheme(
213
+ Tcl_Interp *interp, const char *name, Ttk_Theme parent);
214
+
215
+ typedef int (Ttk_ThemeEnabledProc)(Ttk_Theme theme, void *clientData);
216
+ extern void Ttk_SetThemeEnabledProc(Ttk_Theme, Ttk_ThemeEnabledProc, void *);
217
+
218
+ extern int Ttk_UseTheme(Tcl_Interp *, Ttk_Theme);
219
+
220
+ typedef void (Ttk_CleanupProc)(void *clientData);
221
+ TTKAPI void Ttk_RegisterCleanup(
222
+ Tcl_Interp *interp, void *deleteData, Ttk_CleanupProc *cleanupProc);
223
+
224
+ /*------------------------------------------------------------------------
225
+ * +++ Elements.
226
+ */
227
+
228
+ enum TTKStyleVersion2 { TK_STYLE_VERSION_2 = 2 };
229
+
230
+ typedef void (Ttk_ElementSizeProc)(void *clientData, void *elementRecord,
231
+ Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding*);
232
+ typedef void (Ttk_ElementDrawProc)(void *clientData, void *elementRecord,
233
+ Tk_Window tkwin, Drawable d, Ttk_Box b, Ttk_State state);
234
+
235
+ typedef struct Ttk_ElementOptionSpec
236
+ {
237
+ char *optionName; /* Command-line name of the widget option */
238
+ Tk_OptionType type; /* Accepted option types */
239
+ int offset; /* Offset of Tcl_Obj* field in element record */
240
+ char *defaultValue; /* Default value to used if resource missing */
241
+ } Ttk_ElementOptionSpec;
242
+
243
+ #define TK_OPTION_ANY TK_OPTION_STRING
244
+
245
+ typedef struct Ttk_ElementSpec {
246
+ enum TTKStyleVersion2 version; /* Version of the style support. */
247
+ size_t elementSize; /* Size of element record */
248
+ Ttk_ElementOptionSpec *options; /* List of options, NULL-terminated */
249
+ Ttk_ElementSizeProc *size; /* Compute min size and padding */
250
+ Ttk_ElementDrawProc *draw; /* Draw the element */
251
+ } Ttk_ElementSpec;
252
+
253
+ TTKAPI Ttk_ElementImpl Ttk_RegisterElement(
254
+ Tcl_Interp *interp, Ttk_Theme theme, const char *elementName,
255
+ Ttk_ElementSpec *, void *clientData);
256
+
257
+ typedef int (*Ttk_ElementFactory)
258
+ (Tcl_Interp *, void *clientData,
259
+ Ttk_Theme, const char *elementName, int objc, Tcl_Obj *const objv[]);
260
+
261
+ TTKAPI int Ttk_RegisterElementFactory(
262
+ Tcl_Interp *, const char *name, Ttk_ElementFactory, void *clientData);
263
+
264
+ /*
265
+ * Null element implementation:
266
+ * has no geometry or layout; may be used as a stub or placeholder.
267
+ */
268
+
269
+ typedef struct {
270
+ Tcl_Obj *unused;
271
+ } NullElement;
272
+
273
+ extern void TtkNullElementSize
274
+ (void *, void *, Tk_Window, int *, int *, Ttk_Padding *);
275
+ extern void TtkNullElementDraw
276
+ (void *, void *, Tk_Window, Drawable, Ttk_Box, Ttk_State);
277
+ extern Ttk_ElementOptionSpec TtkNullElementOptions[];
278
+ extern Ttk_ElementSpec ttkNullElementSpec;
279
+
280
+ /*------------------------------------------------------------------------
281
+ * +++ Layout templates.
282
+ */
283
+ typedef struct {
284
+ const char * elementName;
285
+ unsigned opcode;
286
+ } TTKLayoutInstruction, *Ttk_LayoutSpec;
287
+
288
+ #define TTK_BEGIN_LAYOUT_TABLE(name) \
289
+ static TTKLayoutInstruction name[] = {
290
+ #define TTK_LAYOUT(name, content) \
291
+ { name, _TTK_CHILDREN|_TTK_LAYOUT }, \
292
+ content \
293
+ { 0, _TTK_LAYOUT_END },
294
+ #define TTK_GROUP(name, flags, children) \
295
+ { name, flags | _TTK_CHILDREN }, \
296
+ children \
297
+ { 0, _TTK_LAYOUT_END },
298
+ #define TTK_NODE(name, flags) { name, flags },
299
+ #define TTK_END_LAYOUT_TABLE { 0, _TTK_LAYOUT | _TTK_LAYOUT_END } };
300
+
301
+ #define TTK_BEGIN_LAYOUT(name) static TTKLayoutInstruction name[] = {
302
+ #define TTK_END_LAYOUT { 0, _TTK_LAYOUT_END } };
303
+
304
+ TTKAPI void Ttk_RegisterLayout(
305
+ Ttk_Theme theme, const char *className, Ttk_LayoutSpec layoutSpec);
306
+
307
+ TTKAPI void Ttk_RegisterLayouts(
308
+ Ttk_Theme theme, Ttk_LayoutSpec layoutTable);
309
+
310
+ /*------------------------------------------------------------------------
311
+ * +++ Layout instances.
312
+ */
313
+
314
+ extern Ttk_Layout Ttk_CreateLayout(
315
+ Tcl_Interp *, Ttk_Theme, const char *name,
316
+ void *recordPtr, Tk_OptionTable, Tk_Window tkwin);
317
+
318
+ extern Ttk_Layout Ttk_CreateSublayout(
319
+ Tcl_Interp *, Ttk_Theme, Ttk_Layout, const char *name, Tk_OptionTable);
320
+
321
+ extern void Ttk_FreeLayout(Ttk_Layout);
322
+
323
+ extern void Ttk_LayoutSize(Ttk_Layout,Ttk_State,int *widthPtr,int *heightPtr);
324
+ extern void Ttk_PlaceLayout(Ttk_Layout, Ttk_State, Ttk_Box);
325
+ extern void Ttk_DrawLayout(Ttk_Layout, Ttk_State, Drawable);
326
+
327
+ extern void Ttk_RebindSublayout(Ttk_Layout, void *recordPtr);
328
+
329
+ extern Ttk_LayoutNode *Ttk_LayoutIdentify(Ttk_Layout, int x, int y);
330
+ extern Ttk_LayoutNode *Ttk_LayoutFindNode(Ttk_Layout, const char *nodeName);
331
+
332
+ extern const char *Ttk_LayoutNodeName(Ttk_LayoutNode *);
333
+ extern Ttk_Box Ttk_LayoutNodeParcel(Ttk_LayoutNode *);
334
+ extern Ttk_Box Ttk_LayoutNodeInternalParcel(Ttk_Layout,Ttk_LayoutNode *);
335
+ extern Ttk_Padding Ttk_LayoutNodeInternalPadding(Ttk_Layout,Ttk_LayoutNode *);
336
+ extern void Ttk_LayoutNodeReqSize(Ttk_Layout, Ttk_LayoutNode *, int *w, int *h);
337
+
338
+ extern void Ttk_PlaceLayoutNode(Ttk_Layout,Ttk_LayoutNode *, Ttk_Box);
339
+ extern void Ttk_ChangeElementState(Ttk_LayoutNode *,unsigned set,unsigned clr);
340
+
341
+ extern Tcl_Obj *Ttk_QueryOption(Ttk_Layout, const char *, Ttk_State);
342
+
343
+ /*------------------------------------------------------------------------
344
+ * +++ Resource cache.
345
+ * See resource.c for explanation.
346
+ */
347
+
348
+ typedef struct Ttk_ResourceCache_ *Ttk_ResourceCache;
349
+ extern Ttk_ResourceCache Ttk_CreateResourceCache(Tcl_Interp *);
350
+ extern void Ttk_FreeResourceCache(Ttk_ResourceCache);
351
+
352
+ extern Ttk_ResourceCache Ttk_GetResourceCache(Tcl_Interp*);
353
+ extern Tcl_Obj *Ttk_UseFont(Ttk_ResourceCache, Tk_Window, Tcl_Obj *);
354
+ extern Tcl_Obj *Ttk_UseColor(Ttk_ResourceCache, Tk_Window, Tcl_Obj *);
355
+ extern Tcl_Obj *Ttk_UseBorder(Ttk_ResourceCache, Tk_Window, Tcl_Obj *);
356
+ extern Tk_Image Ttk_UseImage(Ttk_ResourceCache, Tk_Window, Tcl_Obj *);
357
+
358
+ extern void Ttk_RegisterNamedColor(Ttk_ResourceCache, const char *, XColor *);
359
+
360
+ /*------------------------------------------------------------------------
361
+ * +++ Image specifications.
362
+ */
363
+
364
+ typedef struct TtkImageSpec Ttk_ImageSpec;
365
+ TTKAPI Ttk_ImageSpec *TtkGetImageSpec(Tcl_Interp *, Tk_Window, Tcl_Obj *);
366
+ TTKAPI void TtkFreeImageSpec(Ttk_ImageSpec *);
367
+ TTKAPI Tk_Image TtkSelectImage(Ttk_ImageSpec *, Ttk_State);
368
+
369
+ /*------------------------------------------------------------------------
370
+ * +++ Miscellaneous enumerations.
371
+ * Other stuff that element implementations need to know about.
372
+ */
373
+ typedef enum /* -default option values */
374
+ {
375
+ TTK_BUTTON_DEFAULT_NORMAL, /* widget defaultable */
376
+ TTK_BUTTON_DEFAULT_ACTIVE, /* currently the default widget */
377
+ TTK_BUTTON_DEFAULT_DISABLED /* not defaultable */
378
+ } Ttk_ButtonDefaultState;
379
+
380
+ TTKAPI int Ttk_GetButtonDefaultStateFromObj(Tcl_Interp *, Tcl_Obj *, int *);
381
+
382
+ typedef enum /* -compound option values */
383
+ {
384
+ TTK_COMPOUND_NONE, /* image if specified, otherwise text */
385
+ TTK_COMPOUND_TEXT, /* text only */
386
+ TTK_COMPOUND_IMAGE, /* image only */
387
+ TTK_COMPOUND_CENTER, /* text overlays image */
388
+ TTK_COMPOUND_TOP, /* image above text */
389
+ TTK_COMPOUND_BOTTOM, /* image below text */
390
+ TTK_COMPOUND_LEFT, /* image to left of text */
391
+ TTK_COMPOUND_RIGHT /* image to right of text */
392
+ } Ttk_Compound;
393
+
394
+ TTKAPI int Ttk_GetCompoundFromObj(Tcl_Interp *, Tcl_Obj *, int *);
395
+
396
+ typedef enum { /* -orient option values */
397
+ TTK_ORIENT_HORIZONTAL,
398
+ TTK_ORIENT_VERTICAL
399
+ } Ttk_Orient;
400
+
401
+ /*------------------------------------------------------------------------
402
+ * +++ Stub table declarations:
403
+ */
404
+
405
+ #include "ttkDecls.h"
406
+
407
+ /*
408
+ * Drawing utilities for theme code:
409
+ * (@@@ find a better home for this)
410
+ */
411
+ typedef enum { ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT } ArrowDirection;
412
+ extern void TtkArrowSize(int h, ArrowDirection, int *widthPtr, int *heightPtr);
413
+ extern void TtkDrawArrow(Display *, Drawable, GC, Ttk_Box, ArrowDirection);
414
+ extern void TtkFillArrow(Display *, Drawable, GC, Ttk_Box, ArrowDirection);
415
+
416
+ #ifdef __cplusplus
417
+ }
418
+ #endif
419
+ #endif /* _TTKTHEME */
@@ -0,0 +1,45 @@
1
+ /*
2
+ * tkThemeInt.h,v 1.17 2007/12/02 04:34:31 jenglish Exp
3
+ *
4
+ * Theme engine: private definitions.
5
+ *
6
+ * Copyright (c) 2004 Joe English. Freely redistributable.
7
+ */
8
+
9
+ #ifndef TKTHEMEINT_INCLUDED
10
+ #define TKTHEMEINT_INCLUDED 1
11
+
12
+ #include "tkTheme.h"
13
+
14
+ typedef struct Ttk_Style_ *Ttk_Style;
15
+ typedef struct Ttk_TemplateNode_ Ttk_TemplateNode, *Ttk_LayoutTemplate;
16
+
17
+ MODULE_SCOPE Ttk_ElementImpl Ttk_GetElement(Ttk_Theme theme, const char *name);
18
+ MODULE_SCOPE const char *Ttk_ElementName(Ttk_ElementImpl);
19
+
20
+ MODULE_SCOPE void Ttk_ElementSize(
21
+ Ttk_ElementImpl element, Ttk_Style, char *recordPtr, Tk_OptionTable,
22
+ Tk_Window tkwin, Ttk_State state,
23
+ int *widthPtr, int *heightPtr, Ttk_Padding*);
24
+ MODULE_SCOPE void Ttk_DrawElement(
25
+ Ttk_ElementImpl element, Ttk_Style, char *recordPtr, Tk_OptionTable,
26
+ Tk_Window tkwin, Drawable d, Ttk_Box b, Ttk_State state);
27
+
28
+ MODULE_SCOPE Tcl_Obj *Ttk_QueryStyle(
29
+ Ttk_Style, void *, Tk_OptionTable, const char *, Ttk_State state);
30
+
31
+ MODULE_SCOPE Ttk_LayoutTemplate Ttk_ParseLayoutTemplate(
32
+ Tcl_Interp *, Tcl_Obj *);
33
+ MODULE_SCOPE Tcl_Obj *Ttk_UnparseLayoutTemplate(Ttk_LayoutTemplate);
34
+ MODULE_SCOPE Ttk_LayoutTemplate Ttk_BuildLayoutTemplate(Ttk_LayoutSpec);
35
+ MODULE_SCOPE void Ttk_FreeLayoutTemplate(Ttk_LayoutTemplate);
36
+ MODULE_SCOPE void Ttk_RegisterLayoutTemplate(
37
+ Ttk_Theme theme, const char *layoutName, Ttk_LayoutTemplate);
38
+
39
+ MODULE_SCOPE Ttk_Style Ttk_GetStyle(Ttk_Theme themePtr, const char *styleName);
40
+ MODULE_SCOPE Ttk_LayoutTemplate Ttk_FindLayoutTemplate(
41
+ Ttk_Theme themePtr, const char *layoutName);
42
+
43
+ MODULE_SCOPE const char *Ttk_StyleName(Ttk_Style);
44
+
45
+ #endif /* TKTHEMEINT_INCLUDED */