tk 0.1.0

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 (1060) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +6 -0
  4. data/BSDL +22 -0
  5. data/ChangeLog.tkextlib +949 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +56 -0
  8. data/MANUAL_tcltklib.eng +467 -0
  9. data/MANUAL_tcltklib.ja +578 -0
  10. data/README.1st +19 -0
  11. data/README.ActiveTcl +62 -0
  12. data/README.fork +34 -0
  13. data/README.macosx-aqua +67 -0
  14. data/README.md +33 -0
  15. data/README.tcltklib +152 -0
  16. data/Rakefile +16 -0
  17. data/bin/console +14 -0
  18. data/bin/setup +8 -0
  19. data/ext/tk/config_list.in +41 -0
  20. data/ext/tk/extconf.rb +2098 -0
  21. data/ext/tk/old-extconf.rb +441 -0
  22. data/ext/tk/stubs.c +592 -0
  23. data/ext/tk/stubs.h +33 -0
  24. data/ext/tk/tcltklib.c +11066 -0
  25. data/ext/tk/tkutil/extconf.rb +14 -0
  26. data/ext/tk/tkutil/tkutil.c +1900 -0
  27. data/lib/README +30 -0
  28. data/lib/multi-tk.rb +3743 -0
  29. data/lib/remote-tk.rb +527 -0
  30. data/lib/tcltk.rb +369 -0
  31. data/lib/tk.rb +5758 -0
  32. data/lib/tk/after.rb +7 -0
  33. data/lib/tk/autoload.rb +763 -0
  34. data/lib/tk/bgerror.rb +30 -0
  35. data/lib/tk/bindtag.rb +139 -0
  36. data/lib/tk/busy.rb +119 -0
  37. data/lib/tk/button.rb +32 -0
  38. data/lib/tk/canvas.rb +847 -0
  39. data/lib/tk/canvastag.rb +460 -0
  40. data/lib/tk/checkbutton.rb +33 -0
  41. data/lib/tk/clipboard.rb +76 -0
  42. data/lib/tk/clock.rb +72 -0
  43. data/lib/tk/composite.rb +485 -0
  44. data/lib/tk/console.rb +53 -0
  45. data/lib/tk/dialog.rb +327 -0
  46. data/lib/tk/encodedstr.rb +188 -0
  47. data/lib/tk/entry.rb +121 -0
  48. data/lib/tk/event.rb +563 -0
  49. data/lib/tk/font.rb +2352 -0
  50. data/lib/tk/fontchooser.rb +181 -0
  51. data/lib/tk/frame.rb +133 -0
  52. data/lib/tk/grid.rb +280 -0
  53. data/lib/tk/image.rb +396 -0
  54. data/lib/tk/itemconfig.rb +1222 -0
  55. data/lib/tk/itemfont.rb +328 -0
  56. data/lib/tk/kinput.rb +72 -0
  57. data/lib/tk/label.rb +23 -0
  58. data/lib/tk/labelframe.rb +32 -0
  59. data/lib/tk/listbox.rb +285 -0
  60. data/lib/tk/macpkg.rb +81 -0
  61. data/lib/tk/menu.rb +719 -0
  62. data/lib/tk/menubar.rb +138 -0
  63. data/lib/tk/menuspec.rb +457 -0
  64. data/lib/tk/message.rb +25 -0
  65. data/lib/tk/mngfocus.rb +34 -0
  66. data/lib/tk/msgcat.rb +300 -0
  67. data/lib/tk/namespace.rb +547 -0
  68. data/lib/tk/optiondb.rb +372 -0
  69. data/lib/tk/optionobj.rb +213 -0
  70. data/lib/tk/pack.rb +108 -0
  71. data/lib/tk/package.rb +144 -0
  72. data/lib/tk/palette.rb +56 -0
  73. data/lib/tk/panedwindow.rb +261 -0
  74. data/lib/tk/place.rb +129 -0
  75. data/lib/tk/radiobutton.rb +74 -0
  76. data/lib/tk/root.rb +96 -0
  77. data/lib/tk/scale.rb +113 -0
  78. data/lib/tk/scrollable.rb +83 -0
  79. data/lib/tk/scrollbar.rb +184 -0
  80. data/lib/tk/scrollbox.rb +40 -0
  81. data/lib/tk/selection.rb +87 -0
  82. data/lib/tk/spinbox.rb +145 -0
  83. data/lib/tk/tagfont.rb +44 -0
  84. data/lib/tk/text.rb +1605 -0
  85. data/lib/tk/textimage.rb +89 -0
  86. data/lib/tk/textmark.rb +205 -0
  87. data/lib/tk/texttag.rb +322 -0
  88. data/lib/tk/textwindow.rb +155 -0
  89. data/lib/tk/timer.rb +666 -0
  90. data/lib/tk/tk_mac.rb +159 -0
  91. data/lib/tk/toplevel.rb +265 -0
  92. data/lib/tk/ttk_selector.rb +99 -0
  93. data/lib/tk/txtwin_abst.rb +40 -0
  94. data/lib/tk/validation.rb +398 -0
  95. data/lib/tk/variable.rb +1797 -0
  96. data/lib/tk/virtevent.rb +140 -0
  97. data/lib/tk/winfo.rb +393 -0
  98. data/lib/tk/winpkg.rb +157 -0
  99. data/lib/tk/wm.rb +553 -0
  100. data/lib/tk/xim.rb +123 -0
  101. data/lib/tkafter.rb +5 -0
  102. data/lib/tkbgerror.rb +5 -0
  103. data/lib/tkcanvas.rb +5 -0
  104. data/lib/tkclass.rb +48 -0
  105. data/lib/tkconsole.rb +5 -0
  106. data/lib/tkdialog.rb +5 -0
  107. data/lib/tkentry.rb +5 -0
  108. data/lib/tkextlib/ICONS.rb +14 -0
  109. data/lib/tkextlib/ICONS/icons.rb +130 -0
  110. data/lib/tkextlib/ICONS/setup.rb +9 -0
  111. data/lib/tkextlib/SUPPORT_STATUS +193 -0
  112. data/lib/tkextlib/blt.rb +190 -0
  113. data/lib/tkextlib/blt/barchart.rb +80 -0
  114. data/lib/tkextlib/blt/bitmap.rb +113 -0
  115. data/lib/tkextlib/blt/busy.rb +84 -0
  116. data/lib/tkextlib/blt/component.rb +2219 -0
  117. data/lib/tkextlib/blt/container.rb +29 -0
  118. data/lib/tkextlib/blt/cutbuffer.rb +24 -0
  119. data/lib/tkextlib/blt/dragdrop.rb +270 -0
  120. data/lib/tkextlib/blt/eps.rb +33 -0
  121. data/lib/tkextlib/blt/graph.rb +68 -0
  122. data/lib/tkextlib/blt/htext.rb +113 -0
  123. data/lib/tkextlib/blt/setup.rb +9 -0
  124. data/lib/tkextlib/blt/spline.rb +24 -0
  125. data/lib/tkextlib/blt/stripchart.rb +75 -0
  126. data/lib/tkextlib/blt/table.rb +413 -0
  127. data/lib/tkextlib/blt/tabnotebook.rb +111 -0
  128. data/lib/tkextlib/blt/tabset.rb +505 -0
  129. data/lib/tkextlib/blt/ted.rb +69 -0
  130. data/lib/tkextlib/blt/tile.rb +26 -0
  131. data/lib/tkextlib/blt/tile/button.rb +17 -0
  132. data/lib/tkextlib/blt/tile/checkbutton.rb +18 -0
  133. data/lib/tkextlib/blt/tile/frame.rb +17 -0
  134. data/lib/tkextlib/blt/tile/label.rb +17 -0
  135. data/lib/tkextlib/blt/tile/radiobutton.rb +18 -0
  136. data/lib/tkextlib/blt/tile/scrollbar.rb +17 -0
  137. data/lib/tkextlib/blt/tile/toplevel.rb +17 -0
  138. data/lib/tkextlib/blt/tree.rb +1059 -0
  139. data/lib/tkextlib/blt/treeview.rb +1288 -0
  140. data/lib/tkextlib/blt/unix_dnd.rb +142 -0
  141. data/lib/tkextlib/blt/vector.rb +257 -0
  142. data/lib/tkextlib/blt/watch.rb +176 -0
  143. data/lib/tkextlib/blt/win_printer.rb +62 -0
  144. data/lib/tkextlib/blt/winop.rb +108 -0
  145. data/lib/tkextlib/bwidget.rb +154 -0
  146. data/lib/tkextlib/bwidget/arrowbutton.rb +22 -0
  147. data/lib/tkextlib/bwidget/bitmap.rb +22 -0
  148. data/lib/tkextlib/bwidget/button.rb +32 -0
  149. data/lib/tkextlib/bwidget/buttonbox.rb +91 -0
  150. data/lib/tkextlib/bwidget/combobox.rb +63 -0
  151. data/lib/tkextlib/bwidget/dialog.rb +195 -0
  152. data/lib/tkextlib/bwidget/dragsite.rb +32 -0
  153. data/lib/tkextlib/bwidget/dropsite.rb +40 -0
  154. data/lib/tkextlib/bwidget/dynamichelp.rb +64 -0
  155. data/lib/tkextlib/bwidget/entry.rb +44 -0
  156. data/lib/tkextlib/bwidget/label.rb +42 -0
  157. data/lib/tkextlib/bwidget/labelentry.rb +81 -0
  158. data/lib/tkextlib/bwidget/labelframe.rb +53 -0
  159. data/lib/tkextlib/bwidget/listbox.rb +362 -0
  160. data/lib/tkextlib/bwidget/mainframe.rb +133 -0
  161. data/lib/tkextlib/bwidget/messagedlg.rb +193 -0
  162. data/lib/tkextlib/bwidget/notebook.rb +167 -0
  163. data/lib/tkextlib/bwidget/pagesmanager.rb +74 -0
  164. data/lib/tkextlib/bwidget/panedwindow.rb +43 -0
  165. data/lib/tkextlib/bwidget/panelframe.rb +68 -0
  166. data/lib/tkextlib/bwidget/passwddlg.rb +45 -0
  167. data/lib/tkextlib/bwidget/progressbar.rb +21 -0
  168. data/lib/tkextlib/bwidget/progressdlg.rb +59 -0
  169. data/lib/tkextlib/bwidget/scrollableframe.rb +41 -0
  170. data/lib/tkextlib/bwidget/scrolledwindow.rb +49 -0
  171. data/lib/tkextlib/bwidget/scrollview.rb +26 -0
  172. data/lib/tkextlib/bwidget/selectcolor.rb +74 -0
  173. data/lib/tkextlib/bwidget/selectfont.rb +92 -0
  174. data/lib/tkextlib/bwidget/separator.rb +21 -0
  175. data/lib/tkextlib/bwidget/setup.rb +9 -0
  176. data/lib/tkextlib/bwidget/spinbox.rb +99 -0
  177. data/lib/tkextlib/bwidget/statusbar.rb +63 -0
  178. data/lib/tkextlib/bwidget/titleframe.rb +34 -0
  179. data/lib/tkextlib/bwidget/tree.rb +501 -0
  180. data/lib/tkextlib/bwidget/widget.rb +130 -0
  181. data/lib/tkextlib/itcl.rb +14 -0
  182. data/lib/tkextlib/itcl/incr_tcl.rb +179 -0
  183. data/lib/tkextlib/itcl/setup.rb +14 -0
  184. data/lib/tkextlib/itk.rb +14 -0
  185. data/lib/tkextlib/itk/incr_tk.rb +447 -0
  186. data/lib/tkextlib/itk/setup.rb +14 -0
  187. data/lib/tkextlib/iwidgets.rb +95 -0
  188. data/lib/tkextlib/iwidgets/buttonbox.rb +122 -0
  189. data/lib/tkextlib/iwidgets/calendar.rb +126 -0
  190. data/lib/tkextlib/iwidgets/canvasprintbox.rb +54 -0
  191. data/lib/tkextlib/iwidgets/canvasprintdialog.rb +39 -0
  192. data/lib/tkextlib/iwidgets/checkbox.rb +131 -0
  193. data/lib/tkextlib/iwidgets/combobox.rb +105 -0
  194. data/lib/tkextlib/iwidgets/dateentry.rb +21 -0
  195. data/lib/tkextlib/iwidgets/datefield.rb +59 -0
  196. data/lib/tkextlib/iwidgets/dialog.rb +21 -0
  197. data/lib/tkextlib/iwidgets/dialogshell.rb +122 -0
  198. data/lib/tkextlib/iwidgets/disjointlistbox.rb +51 -0
  199. data/lib/tkextlib/iwidgets/entryfield.rb +186 -0
  200. data/lib/tkextlib/iwidgets/extbutton.rb +41 -0
  201. data/lib/tkextlib/iwidgets/extfileselectionbox.rb +47 -0
  202. data/lib/tkextlib/iwidgets/extfileselectiondialog.rb +34 -0
  203. data/lib/tkextlib/iwidgets/feedback.rb +36 -0
  204. data/lib/tkextlib/iwidgets/fileselectionbox.rb +47 -0
  205. data/lib/tkextlib/iwidgets/fileselectiondialog.rb +34 -0
  206. data/lib/tkextlib/iwidgets/finddialog.rb +43 -0
  207. data/lib/tkextlib/iwidgets/hierarchy.rb +366 -0
  208. data/lib/tkextlib/iwidgets/hyperhelp.rb +51 -0
  209. data/lib/tkextlib/iwidgets/labeledframe.rb +40 -0
  210. data/lib/tkextlib/iwidgets/labeledwidget.rb +46 -0
  211. data/lib/tkextlib/iwidgets/mainwindow.rb +68 -0
  212. data/lib/tkextlib/iwidgets/menubar.rb +213 -0
  213. data/lib/tkextlib/iwidgets/messagebox.rb +94 -0
  214. data/lib/tkextlib/iwidgets/messagedialog.rb +21 -0
  215. data/lib/tkextlib/iwidgets/notebook.rb +176 -0
  216. data/lib/tkextlib/iwidgets/optionmenu.rb +93 -0
  217. data/lib/tkextlib/iwidgets/panedwindow.rb +135 -0
  218. data/lib/tkextlib/iwidgets/promptdialog.rb +132 -0
  219. data/lib/tkextlib/iwidgets/pushbutton.rb +36 -0
  220. data/lib/tkextlib/iwidgets/radiobox.rb +122 -0
  221. data/lib/tkextlib/iwidgets/scopedobject.rb +25 -0
  222. data/lib/tkextlib/iwidgets/scrolledcanvas.rb +354 -0
  223. data/lib/tkextlib/iwidgets/scrolledframe.rb +60 -0
  224. data/lib/tkextlib/iwidgets/scrolledhtml.rb +59 -0
  225. data/lib/tkextlib/iwidgets/scrolledlistbox.rb +208 -0
  226. data/lib/tkextlib/iwidgets/scrolledtext.rb +569 -0
  227. data/lib/tkextlib/iwidgets/scrolledwidget.rb +21 -0
  228. data/lib/tkextlib/iwidgets/selectionbox.rb +103 -0
  229. data/lib/tkextlib/iwidgets/selectiondialog.rb +93 -0
  230. data/lib/tkextlib/iwidgets/setup.rb +9 -0
  231. data/lib/tkextlib/iwidgets/shell.rb +39 -0
  232. data/lib/tkextlib/iwidgets/spindate.rb +49 -0
  233. data/lib/tkextlib/iwidgets/spinint.rb +31 -0
  234. data/lib/tkextlib/iwidgets/spinner.rb +170 -0
  235. data/lib/tkextlib/iwidgets/spintime.rb +49 -0
  236. data/lib/tkextlib/iwidgets/tabnotebook.rb +182 -0
  237. data/lib/tkextlib/iwidgets/tabset.rb +146 -0
  238. data/lib/tkextlib/iwidgets/timeentry.rb +26 -0
  239. data/lib/tkextlib/iwidgets/timefield.rb +59 -0
  240. data/lib/tkextlib/iwidgets/toolbar.rb +113 -0
  241. data/lib/tkextlib/iwidgets/watch.rb +57 -0
  242. data/lib/tkextlib/pkg_checker.rb +185 -0
  243. data/lib/tkextlib/setup.rb +9 -0
  244. data/lib/tkextlib/tcllib.rb +106 -0
  245. data/lib/tkextlib/tcllib/README +135 -0
  246. data/lib/tkextlib/tcllib/autoscroll.rb +159 -0
  247. data/lib/tkextlib/tcllib/calendar.rb +56 -0
  248. data/lib/tkextlib/tcllib/canvas_sqmap.rb +37 -0
  249. data/lib/tkextlib/tcllib/canvas_zoom.rb +22 -0
  250. data/lib/tkextlib/tcllib/chatwidget.rb +152 -0
  251. data/lib/tkextlib/tcllib/crosshair.rb +118 -0
  252. data/lib/tkextlib/tcllib/ctext.rb +161 -0
  253. data/lib/tkextlib/tcllib/cursor.rb +98 -0
  254. data/lib/tkextlib/tcllib/dateentry.rb +63 -0
  255. data/lib/tkextlib/tcllib/datefield.rb +58 -0
  256. data/lib/tkextlib/tcllib/diagrams.rb +225 -0
  257. data/lib/tkextlib/tcllib/dialog.rb +85 -0
  258. data/lib/tkextlib/tcllib/getstring.rb +135 -0
  259. data/lib/tkextlib/tcllib/history.rb +74 -0
  260. data/lib/tkextlib/tcllib/ico.rb +147 -0
  261. data/lib/tkextlib/tcllib/ip_entry.rb +76 -0
  262. data/lib/tkextlib/tcllib/khim.rb +69 -0
  263. data/lib/tkextlib/tcllib/menuentry.rb +48 -0
  264. data/lib/tkextlib/tcllib/ntext.rb +147 -0
  265. data/lib/tkextlib/tcllib/panelframe.rb +79 -0
  266. data/lib/tkextlib/tcllib/plotchart.rb +1405 -0
  267. data/lib/tkextlib/tcllib/ruler.rb +66 -0
  268. data/lib/tkextlib/tcllib/screenruler.rb +69 -0
  269. data/lib/tkextlib/tcllib/scrolledwindow.rb +58 -0
  270. data/lib/tkextlib/tcllib/scrollwin.rb +62 -0
  271. data/lib/tkextlib/tcllib/setup.rb +9 -0
  272. data/lib/tkextlib/tcllib/statusbar.rb +80 -0
  273. data/lib/tkextlib/tcllib/style.rb +62 -0
  274. data/lib/tkextlib/tcllib/superframe.rb +52 -0
  275. data/lib/tkextlib/tcllib/swaplist.rb +151 -0
  276. data/lib/tkextlib/tcllib/tablelist.rb +29 -0
  277. data/lib/tkextlib/tcllib/tablelist_core.rb +1073 -0
  278. data/lib/tkextlib/tcllib/tablelist_tile.rb +44 -0
  279. data/lib/tkextlib/tcllib/tkpiechart.rb +315 -0
  280. data/lib/tkextlib/tcllib/toolbar.rb +176 -0
  281. data/lib/tkextlib/tcllib/tooltip.rb +105 -0
  282. data/lib/tkextlib/tcllib/validator.rb +66 -0
  283. data/lib/tkextlib/tcllib/widget.rb +83 -0
  284. data/lib/tkextlib/tclx.rb +14 -0
  285. data/lib/tkextlib/tclx/setup.rb +9 -0
  286. data/lib/tkextlib/tclx/tclx.rb +75 -0
  287. data/lib/tkextlib/tile.rb +450 -0
  288. data/lib/tkextlib/tile/dialog.rb +103 -0
  289. data/lib/tkextlib/tile/setup.rb +9 -0
  290. data/lib/tkextlib/tile/sizegrip.rb +33 -0
  291. data/lib/tkextlib/tile/style.rb +337 -0
  292. data/lib/tkextlib/tile/tbutton.rb +35 -0
  293. data/lib/tkextlib/tile/tcheckbutton.rb +39 -0
  294. data/lib/tkextlib/tile/tcombobox.rb +56 -0
  295. data/lib/tkextlib/tile/tentry.rb +50 -0
  296. data/lib/tkextlib/tile/tframe.rb +35 -0
  297. data/lib/tkextlib/tile/tlabel.rb +35 -0
  298. data/lib/tkextlib/tile/tlabelframe.rb +39 -0
  299. data/lib/tkextlib/tile/tmenubutton.rb +39 -0
  300. data/lib/tkextlib/tile/tnotebook.rb +148 -0
  301. data/lib/tkextlib/tile/tpaned.rb +246 -0
  302. data/lib/tkextlib/tile/tprogressbar.rb +58 -0
  303. data/lib/tkextlib/tile/tradiobutton.rb +39 -0
  304. data/lib/tkextlib/tile/treeview.rb +1337 -0
  305. data/lib/tkextlib/tile/tscale.rb +57 -0
  306. data/lib/tkextlib/tile/tscrollbar.rb +64 -0
  307. data/lib/tkextlib/tile/tseparator.rb +35 -0
  308. data/lib/tkextlib/tile/tspinbox.rb +108 -0
  309. data/lib/tkextlib/tile/tsquare.rb +31 -0
  310. data/lib/tkextlib/tkDND.rb +19 -0
  311. data/lib/tkextlib/tkDND/setup.rb +9 -0
  312. data/lib/tkextlib/tkDND/shape.rb +126 -0
  313. data/lib/tkextlib/tkDND/tkdnd.rb +183 -0
  314. data/lib/tkextlib/tkHTML.rb +14 -0
  315. data/lib/tkextlib/tkHTML/htmlwidget.rb +454 -0
  316. data/lib/tkextlib/tkHTML/setup.rb +9 -0
  317. data/lib/tkextlib/tkimg.rb +37 -0
  318. data/lib/tkextlib/tkimg/README +26 -0
  319. data/lib/tkextlib/tkimg/bmp.rb +34 -0
  320. data/lib/tkextlib/tkimg/dted.rb +34 -0
  321. data/lib/tkextlib/tkimg/gif.rb +34 -0
  322. data/lib/tkextlib/tkimg/ico.rb +34 -0
  323. data/lib/tkextlib/tkimg/jpeg.rb +34 -0
  324. data/lib/tkextlib/tkimg/pcx.rb +34 -0
  325. data/lib/tkextlib/tkimg/pixmap.rb +45 -0
  326. data/lib/tkextlib/tkimg/png.rb +34 -0
  327. data/lib/tkextlib/tkimg/ppm.rb +34 -0
  328. data/lib/tkextlib/tkimg/ps.rb +34 -0
  329. data/lib/tkextlib/tkimg/raw.rb +34 -0
  330. data/lib/tkextlib/tkimg/setup.rb +9 -0
  331. data/lib/tkextlib/tkimg/sgi.rb +34 -0
  332. data/lib/tkextlib/tkimg/sun.rb +34 -0
  333. data/lib/tkextlib/tkimg/tga.rb +34 -0
  334. data/lib/tkextlib/tkimg/tiff.rb +34 -0
  335. data/lib/tkextlib/tkimg/window.rb +34 -0
  336. data/lib/tkextlib/tkimg/xbm.rb +34 -0
  337. data/lib/tkextlib/tkimg/xpm.rb +34 -0
  338. data/lib/tkextlib/tktable.rb +15 -0
  339. data/lib/tkextlib/tktable/setup.rb +9 -0
  340. data/lib/tkextlib/tktable/tktable.rb +967 -0
  341. data/lib/tkextlib/tktrans.rb +15 -0
  342. data/lib/tkextlib/tktrans/setup.rb +9 -0
  343. data/lib/tkextlib/tktrans/tktrans.rb +65 -0
  344. data/lib/tkextlib/treectrl.rb +14 -0
  345. data/lib/tkextlib/treectrl/setup.rb +9 -0
  346. data/lib/tkextlib/treectrl/tktreectrl.rb +2523 -0
  347. data/lib/tkextlib/trofs.rb +14 -0
  348. data/lib/tkextlib/trofs/setup.rb +9 -0
  349. data/lib/tkextlib/trofs/trofs.rb +52 -0
  350. data/lib/tkextlib/version.rb +7 -0
  351. data/lib/tkextlib/vu.rb +49 -0
  352. data/lib/tkextlib/vu/bargraph.rb +62 -0
  353. data/lib/tkextlib/vu/charts.rb +54 -0
  354. data/lib/tkextlib/vu/dial.rb +103 -0
  355. data/lib/tkextlib/vu/pie.rb +287 -0
  356. data/lib/tkextlib/vu/setup.rb +9 -0
  357. data/lib/tkextlib/vu/spinbox.rb +23 -0
  358. data/lib/tkextlib/winico.rb +15 -0
  359. data/lib/tkextlib/winico/setup.rb +9 -0
  360. data/lib/tkextlib/winico/winico.rb +225 -0
  361. data/lib/tkfont.rb +5 -0
  362. data/lib/tkmacpkg.rb +5 -0
  363. data/lib/tkmenubar.rb +5 -0
  364. data/lib/tkmngfocus.rb +5 -0
  365. data/lib/tkpalette.rb +5 -0
  366. data/lib/tkscrollbox.rb +5 -0
  367. data/lib/tktext.rb +5 -0
  368. data/lib/tkvirtevent.rb +5 -0
  369. data/lib/tkwinpkg.rb +5 -0
  370. data/old-README.tcltklib.ja +159 -0
  371. data/sample/24hr_clock.rb +287 -0
  372. data/sample/binding_sample.rb +88 -0
  373. data/sample/bindtag_sample.rb +128 -0
  374. data/sample/binstr_usage.rb +46 -0
  375. data/sample/btn_with_frame.rb +21 -0
  376. data/sample/cd_timer.rb +82 -0
  377. data/sample/cmd_res_test.rb +18 -0
  378. data/sample/cmd_resource +5 -0
  379. data/sample/demos-en/ChangeLog +64 -0
  380. data/sample/demos-en/ChangeLog.prev +9 -0
  381. data/sample/demos-en/README +138 -0
  382. data/sample/demos-en/README.1st +18 -0
  383. data/sample/demos-en/README.tkencoding +29 -0
  384. data/sample/demos-en/anilabel.rb +175 -0
  385. data/sample/demos-en/aniwave.rb +119 -0
  386. data/sample/demos-en/arrow.rb +250 -0
  387. data/sample/demos-en/bind.rb +128 -0
  388. data/sample/demos-en/bitmap.rb +76 -0
  389. data/sample/demos-en/browse1 +63 -0
  390. data/sample/demos-en/browse2 +82 -0
  391. data/sample/demos-en/button.rb +85 -0
  392. data/sample/demos-en/check.rb +73 -0
  393. data/sample/demos-en/check2.rb +110 -0
  394. data/sample/demos-en/clrpick.rb +88 -0
  395. data/sample/demos-en/colors.rb +159 -0
  396. data/sample/demos-en/combo.rb +97 -0
  397. data/sample/demos-en/cscroll.rb +137 -0
  398. data/sample/demos-en/ctext.rb +208 -0
  399. data/sample/demos-en/dialog1.rb +39 -0
  400. data/sample/demos-en/dialog2.rb +42 -0
  401. data/sample/demos-en/doc.org/README +7 -0
  402. data/sample/demos-en/doc.org/README.JP +14 -0
  403. data/sample/demos-en/doc.org/README.tk80 +46 -0
  404. data/sample/demos-en/doc.org/license.terms +39 -0
  405. data/sample/demos-en/doc.org/license.terms.tk80 +39 -0
  406. data/sample/demos-en/entry1.rb +59 -0
  407. data/sample/demos-en/entry2.rb +94 -0
  408. data/sample/demos-en/entry3.rb +221 -0
  409. data/sample/demos-en/filebox.rb +103 -0
  410. data/sample/demos-en/floor.rb +1724 -0
  411. data/sample/demos-en/floor2.rb +1723 -0
  412. data/sample/demos-en/form.rb +65 -0
  413. data/sample/demos-en/goldberg.rb +2007 -0
  414. data/sample/demos-en/hello +14 -0
  415. data/sample/demos-en/hscale.rb +76 -0
  416. data/sample/demos-en/icon.rb +106 -0
  417. data/sample/demos-en/image1.rb +66 -0
  418. data/sample/demos-en/image2.rb +108 -0
  419. data/sample/demos-en/image3.rb +126 -0
  420. data/sample/demos-en/items.rb +382 -0
  421. data/sample/demos-en/ixset +333 -0
  422. data/sample/demos-en/ixset2 +367 -0
  423. data/sample/demos-en/knightstour.rb +272 -0
  424. data/sample/demos-en/label.rb +73 -0
  425. data/sample/demos-en/labelframe.rb +96 -0
  426. data/sample/demos-en/mclist.rb +118 -0
  427. data/sample/demos-en/menu.rb +197 -0
  428. data/sample/demos-en/menu84.rb +216 -0
  429. data/sample/demos-en/menubu.rb +238 -0
  430. data/sample/demos-en/msgbox.rb +91 -0
  431. data/sample/demos-en/msgbox2.rb +92 -0
  432. data/sample/demos-en/paned1.rb +48 -0
  433. data/sample/demos-en/paned2.rb +95 -0
  434. data/sample/demos-en/pendulum.rb +241 -0
  435. data/sample/demos-en/plot.rb +125 -0
  436. data/sample/demos-en/puzzle.rb +135 -0
  437. data/sample/demos-en/radio.rb +87 -0
  438. data/sample/demos-en/radio2.rb +110 -0
  439. data/sample/demos-en/radio3.rb +118 -0
  440. data/sample/demos-en/rmt +268 -0
  441. data/sample/demos-en/rolodex +320 -0
  442. data/sample/demos-en/ruler.rb +206 -0
  443. data/sample/demos-en/sayings.rb +107 -0
  444. data/sample/demos-en/search.rb +188 -0
  445. data/sample/demos-en/spin.rb +66 -0
  446. data/sample/demos-en/square +81 -0
  447. data/sample/demos-en/states.rb +81 -0
  448. data/sample/demos-en/style.rb +232 -0
  449. data/sample/demos-en/tcolor +526 -0
  450. data/sample/demos-en/text.rb +129 -0
  451. data/sample/demos-en/textpeer.rb +77 -0
  452. data/sample/demos-en/timer +136 -0
  453. data/sample/demos-en/tkencoding.rb +43 -0
  454. data/sample/demos-en/toolbar.rb +131 -0
  455. data/sample/demos-en/tree.rb +120 -0
  456. data/sample/demos-en/ttkbut.rb +140 -0
  457. data/sample/demos-en/ttkmenu.rb +86 -0
  458. data/sample/demos-en/ttknote.rb +90 -0
  459. data/sample/demos-en/ttkpane.rb +214 -0
  460. data/sample/demos-en/ttkprogress.rb +67 -0
  461. data/sample/demos-en/twind.rb +292 -0
  462. data/sample/demos-en/twind2.rb +385 -0
  463. data/sample/demos-en/unicodeout.rb +115 -0
  464. data/sample/demos-en/vscale.rb +80 -0
  465. data/sample/demos-en/widget +1087 -0
  466. data/sample/demos-jp/README +54 -0
  467. data/sample/demos-jp/README.1st +20 -0
  468. data/sample/demos-jp/anilabel.rb +178 -0
  469. data/sample/demos-jp/aniwave.rb +121 -0
  470. data/sample/demos-jp/arrow.rb +248 -0
  471. data/sample/demos-jp/bind.rb +126 -0
  472. data/sample/demos-jp/bitmap.rb +75 -0
  473. data/sample/demos-jp/browse1 +63 -0
  474. data/sample/demos-jp/browse2 +82 -0
  475. data/sample/demos-jp/button.rb +84 -0
  476. data/sample/demos-jp/check.rb +71 -0
  477. data/sample/demos-jp/check2.rb +111 -0
  478. data/sample/demos-jp/clrpick.rb +85 -0
  479. data/sample/demos-jp/colors.rb +156 -0
  480. data/sample/demos-jp/combo.rb +99 -0
  481. data/sample/demos-jp/cscroll.rb +135 -0
  482. data/sample/demos-jp/ctext.rb +205 -0
  483. data/sample/demos-jp/dialog1.rb +40 -0
  484. data/sample/demos-jp/dialog2.rb +44 -0
  485. data/sample/demos-jp/doc.org/README +7 -0
  486. data/sample/demos-jp/doc.org/README.JP +14 -0
  487. data/sample/demos-jp/doc.org/README.tk80 +46 -0
  488. data/sample/demos-jp/doc.org/license.terms +39 -0
  489. data/sample/demos-jp/doc.org/license.terms.tk80 +39 -0
  490. data/sample/demos-jp/entry1.rb +61 -0
  491. data/sample/demos-jp/entry2.rb +92 -0
  492. data/sample/demos-jp/entry3.rb +226 -0
  493. data/sample/demos-jp/filebox.rb +103 -0
  494. data/sample/demos-jp/floor.rb +1722 -0
  495. data/sample/demos-jp/floor2.rb +1720 -0
  496. data/sample/demos-jp/form.rb +67 -0
  497. data/sample/demos-jp/goldberg.rb +2012 -0
  498. data/sample/demos-jp/hello +10 -0
  499. data/sample/demos-jp/hscale.rb +79 -0
  500. data/sample/demos-jp/icon.rb +104 -0
  501. data/sample/demos-jp/image1.rb +65 -0
  502. data/sample/demos-jp/image2.rb +107 -0
  503. data/sample/demos-jp/image3.rb +128 -0
  504. data/sample/demos-jp/items.rb +380 -0
  505. data/sample/demos-jp/ixset +333 -0
  506. data/sample/demos-jp/ixset2 +369 -0
  507. data/sample/demos-jp/knightstour.rb +274 -0
  508. data/sample/demos-jp/label.rb +70 -0
  509. data/sample/demos-jp/labelframe.rb +103 -0
  510. data/sample/demos-jp/mclist.rb +122 -0
  511. data/sample/demos-jp/menu.rb +202 -0
  512. data/sample/demos-jp/menu84.rb +214 -0
  513. data/sample/demos-jp/menu8x.rb +234 -0
  514. data/sample/demos-jp/menubu.rb +239 -0
  515. data/sample/demos-jp/msgbox.rb +90 -0
  516. data/sample/demos-jp/msgbox2.rb +91 -0
  517. data/sample/demos-jp/paned1.rb +53 -0
  518. data/sample/demos-jp/paned2.rb +101 -0
  519. data/sample/demos-jp/pendulum.rb +243 -0
  520. data/sample/demos-jp/plot.rb +127 -0
  521. data/sample/demos-jp/puzzle.rb +132 -0
  522. data/sample/demos-jp/radio.rb +85 -0
  523. data/sample/demos-jp/radio2.rb +113 -0
  524. data/sample/demos-jp/radio3.rb +120 -0
  525. data/sample/demos-jp/rmt +268 -0
  526. data/sample/demos-jp/rolodex +320 -0
  527. data/sample/demos-jp/rolodex-j +300 -0
  528. data/sample/demos-jp/ruler.rb +204 -0
  529. data/sample/demos-jp/sayings.rb +104 -0
  530. data/sample/demos-jp/search.rb +185 -0
  531. data/sample/demos-jp/spin.rb +72 -0
  532. data/sample/demos-jp/square +81 -0
  533. data/sample/demos-jp/states.rb +75 -0
  534. data/sample/demos-jp/style.rb +271 -0
  535. data/sample/demos-jp/tcolor +534 -0
  536. data/sample/demos-jp/text.rb +121 -0
  537. data/sample/demos-jp/textpeer.rb +83 -0
  538. data/sample/demos-jp/timer +136 -0
  539. data/sample/demos-jp/toolbar.rb +137 -0
  540. data/sample/demos-jp/tree.rb +121 -0
  541. data/sample/demos-jp/ttkbut.rb +146 -0
  542. data/sample/demos-jp/ttkmenu.rb +92 -0
  543. data/sample/demos-jp/ttknote.rb +98 -0
  544. data/sample/demos-jp/ttkpane.rb +217 -0
  545. data/sample/demos-jp/ttkprogress.rb +72 -0
  546. data/sample/demos-jp/twind.rb +293 -0
  547. data/sample/demos-jp/twind2.rb +385 -0
  548. data/sample/demos-jp/unicodeout.rb +120 -0
  549. data/sample/demos-jp/vscale.rb +81 -0
  550. data/sample/demos-jp/widget +1122 -0
  551. data/sample/editable_listbox.rb +149 -0
  552. data/sample/encstr_usage.rb +31 -0
  553. data/sample/figmemo_sample.rb +457 -0
  554. data/sample/images/earth.gif +0 -0
  555. data/sample/images/earthris.gif +0 -0
  556. data/sample/images/face.xbm +173 -0
  557. data/sample/images/flagdown.xbm +27 -0
  558. data/sample/images/flagup.xbm +27 -0
  559. data/sample/images/gray25.xbm +6 -0
  560. data/sample/images/grey.25 +6 -0
  561. data/sample/images/grey.5 +6 -0
  562. data/sample/images/letters.xbm +27 -0
  563. data/sample/images/noletter.xbm +27 -0
  564. data/sample/images/pattern.xbm +6 -0
  565. data/sample/images/tcllogo.gif +0 -0
  566. data/sample/images/teapot.ppm +31 -0
  567. data/sample/irbtk.rb +31 -0
  568. data/sample/irbtkw.rbw +156 -0
  569. data/sample/iso2022-kr.txt +2 -0
  570. data/sample/menubar1.rb +52 -0
  571. data/sample/menubar2.rb +57 -0
  572. data/sample/menubar3.rb +73 -0
  573. data/sample/msgs_rb/README +3 -0
  574. data/sample/msgs_rb/cs.msg +84 -0
  575. data/sample/msgs_rb/de.msg +88 -0
  576. data/sample/msgs_rb/el.msg +98 -0
  577. data/sample/msgs_rb/en.msg +83 -0
  578. data/sample/msgs_rb/en_gb.msg +7 -0
  579. data/sample/msgs_rb/eo.msg +87 -0
  580. data/sample/msgs_rb/es.msg +84 -0
  581. data/sample/msgs_rb/fr.msg +84 -0
  582. data/sample/msgs_rb/it.msg +84 -0
  583. data/sample/msgs_rb/ja.msg +13 -0
  584. data/sample/msgs_rb/nl.msg +123 -0
  585. data/sample/msgs_rb/pl.msg +87 -0
  586. data/sample/msgs_rb/ru.msg +87 -0
  587. data/sample/msgs_rb2/README +5 -0
  588. data/sample/msgs_rb2/de.msg +88 -0
  589. data/sample/msgs_rb2/ja.msg +85 -0
  590. data/sample/msgs_tk/README +4 -0
  591. data/sample/msgs_tk/cs.msg +84 -0
  592. data/sample/msgs_tk/de.msg +88 -0
  593. data/sample/msgs_tk/el.msg +103 -0
  594. data/sample/msgs_tk/en.msg +83 -0
  595. data/sample/msgs_tk/en_gb.msg +7 -0
  596. data/sample/msgs_tk/eo.msg +87 -0
  597. data/sample/msgs_tk/es.msg +84 -0
  598. data/sample/msgs_tk/fr.msg +84 -0
  599. data/sample/msgs_tk/it.msg +84 -0
  600. data/sample/msgs_tk/ja.msg +13 -0
  601. data/sample/msgs_tk/license.terms +39 -0
  602. data/sample/msgs_tk/nl.msg +123 -0
  603. data/sample/msgs_tk/pl.msg +87 -0
  604. data/sample/msgs_tk/ru.msg +87 -0
  605. data/sample/multi-ip_sample.rb +104 -0
  606. data/sample/multi-ip_sample2.rb +30 -0
  607. data/sample/optobj_sample.rb +68 -0
  608. data/sample/propagate.rb +31 -0
  609. data/sample/remote-ip_sample.rb +34 -0
  610. data/sample/remote-ip_sample2.rb +57 -0
  611. data/sample/resource.en +13 -0
  612. data/sample/resource.ja +13 -0
  613. data/sample/safe-tk.rb +132 -0
  614. data/sample/scrollframe.rb +250 -0
  615. data/sample/tcltklib/batsu.gif +0 -0
  616. data/sample/tcltklib/lines0.tcl +42 -0
  617. data/sample/tcltklib/lines1.rb +51 -0
  618. data/sample/tcltklib/lines2.rb +55 -0
  619. data/sample/tcltklib/lines3.rb +55 -0
  620. data/sample/tcltklib/lines4.rb +55 -0
  621. data/sample/tcltklib/maru.gif +0 -0
  622. data/sample/tcltklib/safeTk.rb +23 -0
  623. data/sample/tcltklib/sample0.rb +40 -0
  624. data/sample/tcltklib/sample1.rb +635 -0
  625. data/sample/tcltklib/sample2.rb +452 -0
  626. data/sample/tkalignbox.rb +236 -0
  627. data/sample/tkballoonhelp.rb +221 -0
  628. data/sample/tkbiff.rb +156 -0
  629. data/sample/tkbrowse.rb +80 -0
  630. data/sample/tkcombobox.rb +498 -0
  631. data/sample/tkdialog.rb +62 -0
  632. data/sample/tkextlib/ICONS/Orig_LICENSE.txt +61 -0
  633. data/sample/tkextlib/ICONS/tkIcons +195 -0
  634. data/sample/tkextlib/ICONS/tkIcons-sample.kde +658 -0
  635. data/sample/tkextlib/ICONS/tkIcons.kde +195 -0
  636. data/sample/tkextlib/ICONS/viewIcons.rb +330 -0
  637. data/sample/tkextlib/blt/barchart5.rb +102 -0
  638. data/sample/tkextlib/blt/calendar.rb +118 -0
  639. data/sample/tkextlib/blt/graph6.rb +2223 -0
  640. data/sample/tkextlib/blt/graph7.rb +41 -0
  641. data/sample/tkextlib/blt/graph7a.rb +64 -0
  642. data/sample/tkextlib/blt/graph7b.rb +42 -0
  643. data/sample/tkextlib/blt/graph7c.rb +46 -0
  644. data/sample/tkextlib/blt/images/buckskin.gif +0 -0
  645. data/sample/tkextlib/blt/images/chalk.gif +0 -0
  646. data/sample/tkextlib/blt/images/qv100.t.gif +0 -0
  647. data/sample/tkextlib/blt/images/rain.gif +0 -0
  648. data/sample/tkextlib/blt/images/sample.gif +0 -0
  649. data/sample/tkextlib/blt/pareto.rb +91 -0
  650. data/sample/tkextlib/blt/plot1.rb +10 -0
  651. data/sample/tkextlib/blt/plot1b.rb +11 -0
  652. data/sample/tkextlib/blt/readme.txt +2 -0
  653. data/sample/tkextlib/blt/scripts/stipples.rb +157 -0
  654. data/sample/tkextlib/blt/winop1.rb +41 -0
  655. data/sample/tkextlib/blt/winop2.rb +29 -0
  656. data/sample/tkextlib/bwidget/Orig_LICENSE.txt +53 -0
  657. data/sample/tkextlib/bwidget/basic.rb +199 -0
  658. data/sample/tkextlib/bwidget/bwidget.xbm +46 -0
  659. data/sample/tkextlib/bwidget/demo.rb +244 -0
  660. data/sample/tkextlib/bwidget/dnd.rb +47 -0
  661. data/sample/tkextlib/bwidget/manager.rb +151 -0
  662. data/sample/tkextlib/bwidget/select.rb +83 -0
  663. data/sample/tkextlib/bwidget/tmpldlg.rb +222 -0
  664. data/sample/tkextlib/bwidget/tree.rb +290 -0
  665. data/sample/tkextlib/bwidget/x1.xbm +2258 -0
  666. data/sample/tkextlib/iwidgets/catalog_demo/Orig_LICENSE.txt +42 -0
  667. data/sample/tkextlib/iwidgets/catalog_demo/images/box.xbm +14 -0
  668. data/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif +0 -0
  669. data/sample/tkextlib/iwidgets/catalog_demo/images/close.gif +0 -0
  670. data/sample/tkextlib/iwidgets/catalog_demo/images/copy.gif +0 -0
  671. data/sample/tkextlib/iwidgets/catalog_demo/images/cut.gif +0 -0
  672. data/sample/tkextlib/iwidgets/catalog_demo/images/exit.gif +0 -0
  673. data/sample/tkextlib/iwidgets/catalog_demo/images/find.gif +0 -0
  674. data/sample/tkextlib/iwidgets/catalog_demo/images/help.gif +0 -0
  675. data/sample/tkextlib/iwidgets/catalog_demo/images/line.xbm +14 -0
  676. data/sample/tkextlib/iwidgets/catalog_demo/images/mag.gif +0 -0
  677. data/sample/tkextlib/iwidgets/catalog_demo/images/new.gif +0 -0
  678. data/sample/tkextlib/iwidgets/catalog_demo/images/open.gif +0 -0
  679. data/sample/tkextlib/iwidgets/catalog_demo/images/oval.xbm +14 -0
  680. data/sample/tkextlib/iwidgets/catalog_demo/images/paste.gif +0 -0
  681. data/sample/tkextlib/iwidgets/catalog_demo/images/points.xbm +14 -0
  682. data/sample/tkextlib/iwidgets/catalog_demo/images/poly.gif +0 -0
  683. data/sample/tkextlib/iwidgets/catalog_demo/images/print.gif +0 -0
  684. data/sample/tkextlib/iwidgets/catalog_demo/images/ruler.gif +0 -0
  685. data/sample/tkextlib/iwidgets/catalog_demo/images/save.gif +0 -0
  686. data/sample/tkextlib/iwidgets/catalog_demo/images/select.gif +0 -0
  687. data/sample/tkextlib/iwidgets/catalog_demo/images/text.xbm +14 -0
  688. data/sample/tkextlib/iwidgets/sample/buttonbox.rb +23 -0
  689. data/sample/tkextlib/iwidgets/sample/calendar.rb +11 -0
  690. data/sample/tkextlib/iwidgets/sample/canvasprintbox.rb +9 -0
  691. data/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb +9 -0
  692. data/sample/tkextlib/iwidgets/sample/checkbox.rb +13 -0
  693. data/sample/tkextlib/iwidgets/sample/combobox.rb +33 -0
  694. data/sample/tkextlib/iwidgets/sample/dateentry.rb +8 -0
  695. data/sample/tkextlib/iwidgets/sample/datefield.rb +9 -0
  696. data/sample/tkextlib/iwidgets/sample/dialog.rb +21 -0
  697. data/sample/tkextlib/iwidgets/sample/dialogshell.rb +15 -0
  698. data/sample/tkextlib/iwidgets/sample/disjointlistbox.rb +17 -0
  699. data/sample/tkextlib/iwidgets/sample/entryfield-1.rb +40 -0
  700. data/sample/tkextlib/iwidgets/sample/entryfield-2.rb +45 -0
  701. data/sample/tkextlib/iwidgets/sample/entryfield-3.rb +41 -0
  702. data/sample/tkextlib/iwidgets/sample/extbutton.rb +21 -0
  703. data/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb +9 -0
  704. data/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb +30 -0
  705. data/sample/tkextlib/iwidgets/sample/feedback.rb +11 -0
  706. data/sample/tkextlib/iwidgets/sample/fileselectionbox.rb +9 -0
  707. data/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb +29 -0
  708. data/sample/tkextlib/iwidgets/sample/finddialog.rb +16 -0
  709. data/sample/tkextlib/iwidgets/sample/hierarchy.rb +26 -0
  710. data/sample/tkextlib/iwidgets/sample/hyperhelp.rb +15 -0
  711. data/sample/tkextlib/iwidgets/sample/labeledframe.rb +15 -0
  712. data/sample/tkextlib/iwidgets/sample/labeledwidget.rb +14 -0
  713. data/sample/tkextlib/iwidgets/sample/mainwindow.rb +65 -0
  714. data/sample/tkextlib/iwidgets/sample/menubar.rb +125 -0
  715. data/sample/tkextlib/iwidgets/sample/menubar2.rb +45 -0
  716. data/sample/tkextlib/iwidgets/sample/messagebox1.rb +20 -0
  717. data/sample/tkextlib/iwidgets/sample/messagebox2.rb +20 -0
  718. data/sample/tkextlib/iwidgets/sample/messagedialog.rb +45 -0
  719. data/sample/tkextlib/iwidgets/sample/notebook.rb +31 -0
  720. data/sample/tkextlib/iwidgets/sample/notebook2.rb +31 -0
  721. data/sample/tkextlib/iwidgets/sample/optionmenu.rb +15 -0
  722. data/sample/tkextlib/iwidgets/sample/panedwindow.rb +23 -0
  723. data/sample/tkextlib/iwidgets/sample/panedwindow2.rb +23 -0
  724. data/sample/tkextlib/iwidgets/sample/promptdialog.rb +18 -0
  725. data/sample/tkextlib/iwidgets/sample/pushbutton.rb +10 -0
  726. data/sample/tkextlib/iwidgets/sample/radiobox.rb +14 -0
  727. data/sample/tkextlib/iwidgets/sample/scrolledcanvas.rb +14 -0
  728. data/sample/tkextlib/iwidgets/sample/scrolledframe.rb +19 -0
  729. data/sample/tkextlib/iwidgets/sample/scrolledhtml.rb +16 -0
  730. data/sample/tkextlib/iwidgets/sample/scrolledlistbox.rb +23 -0
  731. data/sample/tkextlib/iwidgets/sample/scrolledtext.rb +12 -0
  732. data/sample/tkextlib/iwidgets/sample/selectionbox.rb +20 -0
  733. data/sample/tkextlib/iwidgets/sample/selectiondialog.rb +13 -0
  734. data/sample/tkextlib/iwidgets/sample/shell.rb +18 -0
  735. data/sample/tkextlib/iwidgets/sample/spindate.rb +8 -0
  736. data/sample/tkextlib/iwidgets/sample/spinint.rb +11 -0
  737. data/sample/tkextlib/iwidgets/sample/spinner.rb +34 -0
  738. data/sample/tkextlib/iwidgets/sample/spintime.rb +8 -0
  739. data/sample/tkextlib/iwidgets/sample/tabnotebook.rb +27 -0
  740. data/sample/tkextlib/iwidgets/sample/tabnotebook2.rb +31 -0
  741. data/sample/tkextlib/iwidgets/sample/tabset.rb +35 -0
  742. data/sample/tkextlib/iwidgets/sample/timeentry.rb +8 -0
  743. data/sample/tkextlib/iwidgets/sample/timefield.rb +9 -0
  744. data/sample/tkextlib/iwidgets/sample/toolbar.rb +153 -0
  745. data/sample/tkextlib/iwidgets/sample/watch.rb +19 -0
  746. data/sample/tkextlib/tcllib/Orig_LICENSE.txt +46 -0
  747. data/sample/tkextlib/tcllib/datefield.rb +30 -0
  748. data/sample/tkextlib/tcllib/plotdemos1.rb +159 -0
  749. data/sample/tkextlib/tcllib/plotdemos2.rb +72 -0
  750. data/sample/tkextlib/tcllib/plotdemos3.rb +84 -0
  751. data/sample/tkextlib/tcllib/xyplot.rb +18 -0
  752. data/sample/tkextlib/tile/Orig_LICENSE.txt +30 -0
  753. data/sample/tkextlib/tile/demo.rb +984 -0
  754. data/sample/tkextlib/tile/iconlib.tcl +110 -0
  755. data/sample/tkextlib/tile/readme.txt +2 -0
  756. data/sample/tkextlib/tile/repeater.tcl +117 -0
  757. data/sample/tkextlib/tile/themes/blue/blue.tcl +149 -0
  758. data/sample/tkextlib/tile/themes/blue/blue/arrowdown-h.gif +0 -0
  759. data/sample/tkextlib/tile/themes/blue/blue/arrowdown-p.gif +0 -0
  760. data/sample/tkextlib/tile/themes/blue/blue/arrowdown.gif +0 -0
  761. data/sample/tkextlib/tile/themes/blue/blue/arrowleft-h.gif +0 -0
  762. data/sample/tkextlib/tile/themes/blue/blue/arrowleft-p.gif +0 -0
  763. data/sample/tkextlib/tile/themes/blue/blue/arrowleft.gif +0 -0
  764. data/sample/tkextlib/tile/themes/blue/blue/arrowright-h.gif +0 -0
  765. data/sample/tkextlib/tile/themes/blue/blue/arrowright-p.gif +0 -0
  766. data/sample/tkextlib/tile/themes/blue/blue/arrowright.gif +0 -0
  767. data/sample/tkextlib/tile/themes/blue/blue/arrowup-h.gif +0 -0
  768. data/sample/tkextlib/tile/themes/blue/blue/arrowup-p.gif +0 -0
  769. data/sample/tkextlib/tile/themes/blue/blue/arrowup.gif +0 -0
  770. data/sample/tkextlib/tile/themes/blue/blue/button-h.gif +0 -0
  771. data/sample/tkextlib/tile/themes/blue/blue/button-n.gif +0 -0
  772. data/sample/tkextlib/tile/themes/blue/blue/button-n.xcf +0 -0
  773. data/sample/tkextlib/tile/themes/blue/blue/button-p.gif +0 -0
  774. data/sample/tkextlib/tile/themes/blue/blue/check-hc.gif +0 -0
  775. data/sample/tkextlib/tile/themes/blue/blue/check-hu.gif +0 -0
  776. data/sample/tkextlib/tile/themes/blue/blue/check-nc.gif +0 -0
  777. data/sample/tkextlib/tile/themes/blue/blue/check-nu.gif +0 -0
  778. data/sample/tkextlib/tile/themes/blue/blue/radio-hc.gif +0 -0
  779. data/sample/tkextlib/tile/themes/blue/blue/radio-hu.gif +0 -0
  780. data/sample/tkextlib/tile/themes/blue/blue/radio-nc.gif +0 -0
  781. data/sample/tkextlib/tile/themes/blue/blue/radio-nu.gif +0 -0
  782. data/sample/tkextlib/tile/themes/blue/blue/sb-thumb-p.gif +0 -0
  783. data/sample/tkextlib/tile/themes/blue/blue/sb-thumb.gif +0 -0
  784. data/sample/tkextlib/tile/themes/blue/blue/sb-vthumb-p.gif +0 -0
  785. data/sample/tkextlib/tile/themes/blue/blue/sb-vthumb.gif +0 -0
  786. data/sample/tkextlib/tile/themes/blue/blue/slider-p.gif +0 -0
  787. data/sample/tkextlib/tile/themes/blue/blue/slider.gif +0 -0
  788. data/sample/tkextlib/tile/themes/blue/blue/vslider-p.gif +0 -0
  789. data/sample/tkextlib/tile/themes/blue/blue/vslider.gif +0 -0
  790. data/sample/tkextlib/tile/themes/blue/pkgIndex.tcl +6 -0
  791. data/sample/tkextlib/tile/themes/keramik/keramik.tcl +194 -0
  792. data/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-n.gif +0 -0
  793. data/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-p.gif +0 -0
  794. data/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-n.gif +0 -0
  795. data/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-p.gif +0 -0
  796. data/sample/tkextlib/tile/themes/keramik/keramik/arrowright-n.gif +0 -0
  797. data/sample/tkextlib/tile/themes/keramik/keramik/arrowright-p.gif +0 -0
  798. data/sample/tkextlib/tile/themes/keramik/keramik/arrowup-n.gif +0 -0
  799. data/sample/tkextlib/tile/themes/keramik/keramik/arrowup-p.gif +0 -0
  800. data/sample/tkextlib/tile/themes/keramik/keramik/button-d.gif +0 -0
  801. data/sample/tkextlib/tile/themes/keramik/keramik/button-h.gif +0 -0
  802. data/sample/tkextlib/tile/themes/keramik/keramik/button-n.gif +0 -0
  803. data/sample/tkextlib/tile/themes/keramik/keramik/button-p.gif +0 -0
  804. data/sample/tkextlib/tile/themes/keramik/keramik/button-s.gif +0 -0
  805. data/sample/tkextlib/tile/themes/keramik/keramik/check-c.gif +0 -0
  806. data/sample/tkextlib/tile/themes/keramik/keramik/check-u.gif +0 -0
  807. data/sample/tkextlib/tile/themes/keramik/keramik/hsb-n.gif +0 -0
  808. data/sample/tkextlib/tile/themes/keramik/keramik/hsb-p.gif +0 -0
  809. data/sample/tkextlib/tile/themes/keramik/keramik/hslider-n.gif +0 -0
  810. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-a.gif +0 -0
  811. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-arrow-n.gif +0 -0
  812. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-d.gif +0 -0
  813. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-n.gif +0 -0
  814. data/sample/tkextlib/tile/themes/keramik/keramik/radio-c.gif +0 -0
  815. data/sample/tkextlib/tile/themes/keramik/keramik/radio-u.gif +0 -0
  816. data/sample/tkextlib/tile/themes/keramik/keramik/tab-n.gif +0 -0
  817. data/sample/tkextlib/tile/themes/keramik/keramik/tab-p.gif +0 -0
  818. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-a.gif +0 -0
  819. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-n.gif +0 -0
  820. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-p.gif +0 -0
  821. data/sample/tkextlib/tile/themes/keramik/keramik/vsb-n.gif +0 -0
  822. data/sample/tkextlib/tile/themes/keramik/keramik/vsb-p.gif +0 -0
  823. data/sample/tkextlib/tile/themes/keramik/keramik/vslider-n.gif +0 -0
  824. data/sample/tkextlib/tile/themes/keramik/pkgIndex.tcl +15 -0
  825. data/sample/tkextlib/tile/themes/kroc.rb +227 -0
  826. data/sample/tkextlib/tile/themes/kroc/kroc.tcl +163 -0
  827. data/sample/tkextlib/tile/themes/kroc/kroc/button-h.gif +0 -0
  828. data/sample/tkextlib/tile/themes/kroc/kroc/button-n.gif +0 -0
  829. data/sample/tkextlib/tile/themes/kroc/kroc/button-p.gif +0 -0
  830. data/sample/tkextlib/tile/themes/kroc/kroc/check-hc.gif +0 -0
  831. data/sample/tkextlib/tile/themes/kroc/kroc/check-hu.gif +0 -0
  832. data/sample/tkextlib/tile/themes/kroc/kroc/check-nc.gif +0 -0
  833. data/sample/tkextlib/tile/themes/kroc/kroc/check-nu.gif +0 -0
  834. data/sample/tkextlib/tile/themes/kroc/kroc/radio-hc.gif +0 -0
  835. data/sample/tkextlib/tile/themes/kroc/kroc/radio-hu.gif +0 -0
  836. data/sample/tkextlib/tile/themes/kroc/kroc/radio-nc.gif +0 -0
  837. data/sample/tkextlib/tile/themes/kroc/kroc/radio-nu.gif +0 -0
  838. data/sample/tkextlib/tile/themes/kroc/pkgIndex.tcl +15 -0
  839. data/sample/tkextlib/tile/themes/plastik/pkgIndex.tcl +16 -0
  840. data/sample/tkextlib/tile/themes/plastik/plastik.tcl +125 -0
  841. data/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-n.gif +0 -0
  842. data/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-p.gif +0 -0
  843. data/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-n.gif +0 -0
  844. data/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-p.gif +0 -0
  845. data/sample/tkextlib/tile/themes/plastik/plastik/arrowright-n.gif +0 -0
  846. data/sample/tkextlib/tile/themes/plastik/plastik/arrowright-p.gif +0 -0
  847. data/sample/tkextlib/tile/themes/plastik/plastik/arrowup-n.gif +0 -0
  848. data/sample/tkextlib/tile/themes/plastik/plastik/arrowup-p.gif +0 -0
  849. data/sample/tkextlib/tile/themes/plastik/plastik/button-h.gif +0 -0
  850. data/sample/tkextlib/tile/themes/plastik/plastik/button-n.gif +0 -0
  851. data/sample/tkextlib/tile/themes/plastik/plastik/button-p.gif +0 -0
  852. data/sample/tkextlib/tile/themes/plastik/plastik/check-hc.gif +0 -0
  853. data/sample/tkextlib/tile/themes/plastik/plastik/check-hu.gif +0 -0
  854. data/sample/tkextlib/tile/themes/plastik/plastik/check-nc.gif +0 -0
  855. data/sample/tkextlib/tile/themes/plastik/plastik/check-nu.gif +0 -0
  856. data/sample/tkextlib/tile/themes/plastik/plastik/check-pc.gif +0 -0
  857. data/sample/tkextlib/tile/themes/plastik/plastik/hsb-n.gif +0 -0
  858. data/sample/tkextlib/tile/themes/plastik/plastik/hslider-n.gif +0 -0
  859. data/sample/tkextlib/tile/themes/plastik/plastik/radio-hc.gif +0 -0
  860. data/sample/tkextlib/tile/themes/plastik/plastik/radio-hu.gif +0 -0
  861. data/sample/tkextlib/tile/themes/plastik/plastik/radio-nc.gif +0 -0
  862. data/sample/tkextlib/tile/themes/plastik/plastik/radio-nu.gif +0 -0
  863. data/sample/tkextlib/tile/themes/plastik/plastik/radio-pc.gif +0 -0
  864. data/sample/tkextlib/tile/themes/plastik/plastik/vsb-n.gif +0 -0
  865. data/sample/tkextlib/tile/themes/plastik/plastik/vslider-n.gif +0 -0
  866. data/sample/tkextlib/tile/toolbutton.tcl +152 -0
  867. data/sample/tkextlib/tkHTML/Orig_COPYRIGHT.txt +12 -0
  868. data/sample/tkextlib/tkHTML/README +12 -0
  869. data/sample/tkextlib/tkHTML/hv.rb +314 -0
  870. data/sample/tkextlib/tkHTML/page1/image1 +0 -0
  871. data/sample/tkextlib/tkHTML/page1/image10 +0 -0
  872. data/sample/tkextlib/tkHTML/page1/image11 +0 -0
  873. data/sample/tkextlib/tkHTML/page1/image12 +0 -0
  874. data/sample/tkextlib/tkHTML/page1/image13 +0 -0
  875. data/sample/tkextlib/tkHTML/page1/image14 +0 -0
  876. data/sample/tkextlib/tkHTML/page1/image2 +0 -0
  877. data/sample/tkextlib/tkHTML/page1/image3 +0 -0
  878. data/sample/tkextlib/tkHTML/page1/image4 +0 -0
  879. data/sample/tkextlib/tkHTML/page1/image5 +0 -0
  880. data/sample/tkextlib/tkHTML/page1/image6 +0 -0
  881. data/sample/tkextlib/tkHTML/page1/image7 +0 -0
  882. data/sample/tkextlib/tkHTML/page1/image8 +0 -0
  883. data/sample/tkextlib/tkHTML/page1/image9 +0 -0
  884. data/sample/tkextlib/tkHTML/page1/index.html +115 -0
  885. data/sample/tkextlib/tkHTML/page2/image1 +0 -0
  886. data/sample/tkextlib/tkHTML/page2/image10 +0 -0
  887. data/sample/tkextlib/tkHTML/page2/image11 +0 -0
  888. data/sample/tkextlib/tkHTML/page2/image12 +0 -0
  889. data/sample/tkextlib/tkHTML/page2/image13 +0 -0
  890. data/sample/tkextlib/tkHTML/page2/image14 +0 -0
  891. data/sample/tkextlib/tkHTML/page2/image15 +0 -0
  892. data/sample/tkextlib/tkHTML/page2/image16 +0 -0
  893. data/sample/tkextlib/tkHTML/page2/image17 +0 -0
  894. data/sample/tkextlib/tkHTML/page2/image18 +0 -0
  895. data/sample/tkextlib/tkHTML/page2/image19 +0 -0
  896. data/sample/tkextlib/tkHTML/page2/image2 +0 -0
  897. data/sample/tkextlib/tkHTML/page2/image20 +0 -0
  898. data/sample/tkextlib/tkHTML/page2/image21 +0 -0
  899. data/sample/tkextlib/tkHTML/page2/image22 +0 -0
  900. data/sample/tkextlib/tkHTML/page2/image23 +0 -0
  901. data/sample/tkextlib/tkHTML/page2/image24 +0 -0
  902. data/sample/tkextlib/tkHTML/page2/image25 +0 -0
  903. data/sample/tkextlib/tkHTML/page2/image26 +0 -0
  904. data/sample/tkextlib/tkHTML/page2/image27 +0 -0
  905. data/sample/tkextlib/tkHTML/page2/image28 +0 -0
  906. data/sample/tkextlib/tkHTML/page2/image29 +0 -0
  907. data/sample/tkextlib/tkHTML/page2/image3 +0 -0
  908. data/sample/tkextlib/tkHTML/page2/image30 +0 -0
  909. data/sample/tkextlib/tkHTML/page2/image31 +0 -0
  910. data/sample/tkextlib/tkHTML/page2/image32 +0 -0
  911. data/sample/tkextlib/tkHTML/page2/image33 +0 -0
  912. data/sample/tkextlib/tkHTML/page2/image34 +0 -0
  913. data/sample/tkextlib/tkHTML/page2/image35 +0 -0
  914. data/sample/tkextlib/tkHTML/page2/image36 +0 -0
  915. data/sample/tkextlib/tkHTML/page2/image37 +0 -0
  916. data/sample/tkextlib/tkHTML/page2/image38 +0 -0
  917. data/sample/tkextlib/tkHTML/page2/image39 +0 -0
  918. data/sample/tkextlib/tkHTML/page2/image4 +0 -0
  919. data/sample/tkextlib/tkHTML/page2/image5 +0 -0
  920. data/sample/tkextlib/tkHTML/page2/image6 +0 -0
  921. data/sample/tkextlib/tkHTML/page2/image7 +0 -0
  922. data/sample/tkextlib/tkHTML/page2/image8 +0 -0
  923. data/sample/tkextlib/tkHTML/page2/image9 +0 -0
  924. data/sample/tkextlib/tkHTML/page2/index.html +433 -0
  925. data/sample/tkextlib/tkHTML/page3/image1 +0 -0
  926. data/sample/tkextlib/tkHTML/page3/image10 +0 -0
  927. data/sample/tkextlib/tkHTML/page3/image11 +0 -0
  928. data/sample/tkextlib/tkHTML/page3/image12 +0 -0
  929. data/sample/tkextlib/tkHTML/page3/image13 +0 -0
  930. data/sample/tkextlib/tkHTML/page3/image14 +0 -0
  931. data/sample/tkextlib/tkHTML/page3/image2 +0 -0
  932. data/sample/tkextlib/tkHTML/page3/image3 +0 -0
  933. data/sample/tkextlib/tkHTML/page3/image4 +0 -0
  934. data/sample/tkextlib/tkHTML/page3/image5 +0 -0
  935. data/sample/tkextlib/tkHTML/page3/image6 +0 -0
  936. data/sample/tkextlib/tkHTML/page3/image7 +0 -0
  937. data/sample/tkextlib/tkHTML/page3/image8 +0 -0
  938. data/sample/tkextlib/tkHTML/page3/image9 +0 -0
  939. data/sample/tkextlib/tkHTML/page3/index.html +2787 -0
  940. data/sample/tkextlib/tkHTML/page4/image1 +0 -0
  941. data/sample/tkextlib/tkHTML/page4/image2 +0 -0
  942. data/sample/tkextlib/tkHTML/page4/image3 +0 -0
  943. data/sample/tkextlib/tkHTML/page4/image4 +0 -0
  944. data/sample/tkextlib/tkHTML/page4/image5 +0 -0
  945. data/sample/tkextlib/tkHTML/page4/image6 +0 -0
  946. data/sample/tkextlib/tkHTML/page4/image7 +0 -0
  947. data/sample/tkextlib/tkHTML/page4/image8 +0 -0
  948. data/sample/tkextlib/tkHTML/page4/image9 +0 -0
  949. data/sample/tkextlib/tkHTML/page4/index.html +768 -0
  950. data/sample/tkextlib/tkHTML/ss.rb +437 -0
  951. data/sample/tkextlib/tkimg/demo.rb +1479 -0
  952. data/sample/tkextlib/tkimg/license_terms_of_Img_extension +41 -0
  953. data/sample/tkextlib/tkimg/readme.txt +3 -0
  954. data/sample/tkextlib/tktable/Orig_LICENSE.txt +52 -0
  955. data/sample/tkextlib/tktable/basic.rb +61 -0
  956. data/sample/tkextlib/tktable/buttons.rb +77 -0
  957. data/sample/tkextlib/tktable/command.rb +90 -0
  958. data/sample/tkextlib/tktable/debug.rb +102 -0
  959. data/sample/tkextlib/tktable/dynarows.rb +100 -0
  960. data/sample/tkextlib/tktable/maxsize.rb +68 -0
  961. data/sample/tkextlib/tktable/spreadsheet.rb +138 -0
  962. data/sample/tkextlib/tktable/tcllogo.gif +0 -0
  963. data/sample/tkextlib/tktable/valid.rb +89 -0
  964. data/sample/tkextlib/treectrl/bitmaps.rb +77 -0
  965. data/sample/tkextlib/treectrl/demo.rb +1306 -0
  966. data/sample/tkextlib/treectrl/explorer.rb +431 -0
  967. data/sample/tkextlib/treectrl/help.rb +405 -0
  968. data/sample/tkextlib/treectrl/imovie.rb +131 -0
  969. data/sample/tkextlib/treectrl/layout.rb +160 -0
  970. data/sample/tkextlib/treectrl/mailwasher.rb +270 -0
  971. data/sample/tkextlib/treectrl/outlook-folders.rb +125 -0
  972. data/sample/tkextlib/treectrl/outlook-newgroup.rb +449 -0
  973. data/sample/tkextlib/treectrl/pics/big-dll.gif +0 -0
  974. data/sample/tkextlib/treectrl/pics/big-exe.gif +0 -0
  975. data/sample/tkextlib/treectrl/pics/big-file.gif +0 -0
  976. data/sample/tkextlib/treectrl/pics/big-folder.gif +0 -0
  977. data/sample/tkextlib/treectrl/pics/big-txt.gif +0 -0
  978. data/sample/tkextlib/treectrl/pics/checked.gif +0 -0
  979. data/sample/tkextlib/treectrl/pics/file.gif +0 -0
  980. data/sample/tkextlib/treectrl/pics/folder-closed.gif +0 -0
  981. data/sample/tkextlib/treectrl/pics/folder-open.gif +0 -0
  982. data/sample/tkextlib/treectrl/pics/help-book-closed.gif +0 -0
  983. data/sample/tkextlib/treectrl/pics/help-book-open.gif +0 -0
  984. data/sample/tkextlib/treectrl/pics/help-page.gif +0 -0
  985. data/sample/tkextlib/treectrl/pics/imovie-01.gif +0 -0
  986. data/sample/tkextlib/treectrl/pics/imovie-02.gif +0 -0
  987. data/sample/tkextlib/treectrl/pics/imovie-03.gif +0 -0
  988. data/sample/tkextlib/treectrl/pics/imovie-04.gif +0 -0
  989. data/sample/tkextlib/treectrl/pics/imovie-05.gif +0 -0
  990. data/sample/tkextlib/treectrl/pics/imovie-06.gif +0 -0
  991. data/sample/tkextlib/treectrl/pics/imovie-07.gif +0 -0
  992. data/sample/tkextlib/treectrl/pics/internet-check-off.gif +0 -0
  993. data/sample/tkextlib/treectrl/pics/internet-check-on.gif +0 -0
  994. data/sample/tkextlib/treectrl/pics/internet-print.gif +0 -0
  995. data/sample/tkextlib/treectrl/pics/internet-radio-off.gif +0 -0
  996. data/sample/tkextlib/treectrl/pics/internet-radio-on.gif +0 -0
  997. data/sample/tkextlib/treectrl/pics/internet-search.gif +0 -0
  998. data/sample/tkextlib/treectrl/pics/internet-security.gif +0 -0
  999. data/sample/tkextlib/treectrl/pics/mac-collapse.gif +0 -0
  1000. data/sample/tkextlib/treectrl/pics/mac-expand.gif +0 -0
  1001. data/sample/tkextlib/treectrl/pics/outlook-arrow.gif +0 -0
  1002. data/sample/tkextlib/treectrl/pics/outlook-clip.gif +0 -0
  1003. data/sample/tkextlib/treectrl/pics/outlook-deleted.gif +0 -0
  1004. data/sample/tkextlib/treectrl/pics/outlook-draft.gif +0 -0
  1005. data/sample/tkextlib/treectrl/pics/outlook-folder.gif +0 -0
  1006. data/sample/tkextlib/treectrl/pics/outlook-group.gif +0 -0
  1007. data/sample/tkextlib/treectrl/pics/outlook-inbox.gif +0 -0
  1008. data/sample/tkextlib/treectrl/pics/outlook-local.gif +0 -0
  1009. data/sample/tkextlib/treectrl/pics/outlook-main.gif +0 -0
  1010. data/sample/tkextlib/treectrl/pics/outlook-outbox.gif +0 -0
  1011. data/sample/tkextlib/treectrl/pics/outlook-read-2.gif +0 -0
  1012. data/sample/tkextlib/treectrl/pics/outlook-read.gif +0 -0
  1013. data/sample/tkextlib/treectrl/pics/outlook-sent.gif +0 -0
  1014. data/sample/tkextlib/treectrl/pics/outlook-server.gif +0 -0
  1015. data/sample/tkextlib/treectrl/pics/outlook-unread.gif +0 -0
  1016. data/sample/tkextlib/treectrl/pics/outlook-watch.gif +0 -0
  1017. data/sample/tkextlib/treectrl/pics/sky.gif +0 -0
  1018. data/sample/tkextlib/treectrl/pics/small-dll.gif +0 -0
  1019. data/sample/tkextlib/treectrl/pics/small-exe.gif +0 -0
  1020. data/sample/tkextlib/treectrl/pics/small-file.gif +0 -0
  1021. data/sample/tkextlib/treectrl/pics/small-folder.gif +0 -0
  1022. data/sample/tkextlib/treectrl/pics/small-txt.gif +0 -0
  1023. data/sample/tkextlib/treectrl/pics/unchecked.gif +0 -0
  1024. data/sample/tkextlib/treectrl/random.rb +509 -0
  1025. data/sample/tkextlib/treectrl/readme.txt +2 -0
  1026. data/sample/tkextlib/treectrl/www-options.rb +304 -0
  1027. data/sample/tkextlib/vu/Orig_LICENSE.txt +51 -0
  1028. data/sample/tkextlib/vu/README.txt +50 -0
  1029. data/sample/tkextlib/vu/canvItems.rb +91 -0
  1030. data/sample/tkextlib/vu/canvSticker.rb +83 -0
  1031. data/sample/tkextlib/vu/canvSticker2.rb +102 -0
  1032. data/sample/tkextlib/vu/dial_demo.rb +114 -0
  1033. data/sample/tkextlib/vu/m128_000.xbm +174 -0
  1034. data/sample/tkextlib/vu/oscilloscope.rb +69 -0
  1035. data/sample/tkextlib/vu/pie.rb +57 -0
  1036. data/sample/tkextlib/vu/vu_demo.rb +68 -0
  1037. data/sample/tkfrom.rb +133 -0
  1038. data/sample/tkhello.rb +11 -0
  1039. data/sample/tkline.rb +48 -0
  1040. data/sample/tkmenubutton.rb +136 -0
  1041. data/sample/tkmsgcat-load_rb.rb +103 -0
  1042. data/sample/tkmsgcat-load_rb2.rb +103 -0
  1043. data/sample/tkmsgcat-load_tk.rb +119 -0
  1044. data/sample/tkmulticolumnlist.rb +744 -0
  1045. data/sample/tkmultilistbox.rb +655 -0
  1046. data/sample/tkmultilistframe.rb +941 -0
  1047. data/sample/tkoptdb-safeTk.rb +74 -0
  1048. data/sample/tkoptdb.rb +107 -0
  1049. data/sample/tkrttimer.rb +78 -0
  1050. data/sample/tksleep_sample.rb +30 -0
  1051. data/sample/tktextframe.rb +282 -0
  1052. data/sample/tktextio.rb +1061 -0
  1053. data/sample/tktimer.rb +51 -0
  1054. data/sample/tktimer2.rb +48 -0
  1055. data/sample/tktimer3.rb +60 -0
  1056. data/sample/tktree.rb +104 -0
  1057. data/sample/tktree.tcl +305 -0
  1058. data/sample/ttk_wrapper.rb +155 -0
  1059. data/tk.gemspec +24 -0
  1060. metadata +1144 -0
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: false
2
+ #
3
+ # tkextlib/tcllib/panelframe.rb
4
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
5
+ #
6
+ # * Part of tcllib extension
7
+ # * Create PanelFrame widgets.
8
+ #
9
+
10
+ require 'tk'
11
+ require 'tkextlib/tcllib.rb'
12
+
13
+ # TkPackage.require('widget::panelframe', '1.0')
14
+ TkPackage.require('widget::panelframe')
15
+
16
+ module Tk::Tcllib
17
+ module Widget
18
+ class PanelFrame < TkWindow
19
+ PACKAGE_NAME = 'widget::panelframe'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('widget::panelframe')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ Panelframe = PanelFrame
33
+ end
34
+ end
35
+
36
+ class Tk::Tcllib::Widget::PanelFrame
37
+ TkCommandNames = ['::widget::panelframe'.freeze].freeze
38
+
39
+ def create_self(keys)
40
+ if keys and keys != None
41
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
42
+ *hash_kv(keys, true))
43
+ else
44
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
45
+ end
46
+ end
47
+ private :create_self
48
+
49
+ def add(what, *args)
50
+ window(tk_send('add', *args))
51
+ end
52
+
53
+ #def get_frame
54
+ # window(tk_send('getframe'))
55
+ #end
56
+
57
+ def set_widget(widget)
58
+ tk_send('setwidget', widget)
59
+ self
60
+ end
61
+
62
+ def remove(*wins)
63
+ tk_send('remove', *wins)
64
+ self
65
+ end
66
+ def remove_destroy(*wins)
67
+ tk_send('remove', '-destroy', *wins)
68
+ self
69
+ end
70
+
71
+ def delete(*wins)
72
+ tk_send('delete', *wins)
73
+ self
74
+ end
75
+
76
+ def items
77
+ simplelist(tk_send('items')).collect!{|w| window(w)}
78
+ end
79
+ end
@@ -0,0 +1,1405 @@
1
+ # frozen_string_literal: false
2
+ #
3
+ # tkextlib/tcllib/plotchart.rb
4
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
5
+ #
6
+ # * Part of tcllib extension
7
+ # * Simple plotting and charting package
8
+ #
9
+ # (The following is the original description of the library.)
10
+ #
11
+ # Plotchart is a Tcl-only package that focuses on the easy creation of
12
+ # xy-plots, barcharts and other common types of graphical presentations.
13
+ # The emphasis is on ease of use, rather than flexibility. The procedures
14
+ # that create a plot use the entire canvas window, making the layout of the
15
+ # plot completely automatic.
16
+ #
17
+ # This results in the creation of an xy-plot in, say, ten lines of code:
18
+ # --------------------------------------------------------------------
19
+ # package require Plotchart
20
+ #
21
+ # canvas .c -background white -width 400 -height 200
22
+ # pack .c -fill both
23
+ #
24
+ # #
25
+ # # Create the plot with its x- and y-axes
26
+ # #
27
+ # set s [::Plotchart::createXYPlot .c {0.0 100.0 10.0} {0.0 100.0 20.0}]
28
+ #
29
+ # foreach {x y} {0.0 32.0 10.0 50.0 25.0 60.0 78.0 11.0 } {
30
+ # $s plot series1 $x $y
31
+ # }
32
+ #
33
+ # $s title "Data series"
34
+ # --------------------------------------------------------------------
35
+ #
36
+ # A drawback of the package might be that it does not do any data management.
37
+ # So if the canvas that holds the plot is to be resized, the whole plot must
38
+ # be redrawn. The advantage, though, is that it offers a number of plot and
39
+ # chart types:
40
+ #
41
+ # * XY-plots like the one shown above with any number of data series.
42
+ # * Stripcharts, a kind of XY-plots where the horizontal axis is adjusted
43
+ # automatically. The result is a kind of sliding window on the data
44
+ # series.
45
+ # * Polar plots, where the coordinates are polar instead of cartesian.
46
+ # * Isometric plots, where the scale of the coordinates in the two
47
+ # directions is always the same, i.e. a circle in world coordinates
48
+ # appears as a circle on the screen.
49
+ # You can zoom in and out, as well as pan with these plots (Note: this
50
+ # works best if no axes are drawn, the zooming and panning routines do
51
+ # not distinguish the axes), using the mouse buttons with the control
52
+ # key and the arrow keys with the control key.
53
+ # * Piecharts, with automatic scaling to indicate the proportions.
54
+ # * Barcharts, with either vertical or horizontal bars, stacked bars or
55
+ # bars side by side.
56
+ # * Timecharts, where bars indicate a time period and milestones or other
57
+ # important moments in time are represented by triangles.
58
+ # * 3D plots (both for displaying surfaces and 3D bars)
59
+ #
60
+
61
+ require 'tk'
62
+ require 'tkextlib/tcllib.rb'
63
+
64
+ # TkPackage.require('Plotchart', '0.9')
65
+ # TkPackage.require('Plotchart', '1.1')
66
+ # TkPackage.require('Plotchart', '1.6.3')
67
+ TkPackage.require('Plotchart')
68
+
69
+ module Tk
70
+ module Tcllib
71
+ module Plotchart
72
+ PACKAGE_NAME = 'Plotchart'.freeze
73
+ def self.package_name
74
+ PACKAGE_NAME
75
+ end
76
+
77
+ def self.package_version
78
+ begin
79
+ TkPackage.require('Plotchart')
80
+ rescue
81
+ ''
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ module Tk::Tcllib::Plotchart
89
+ extend TkCore
90
+ ############################
91
+ def self.view_port(w, *args) # args := pxmin, pymin, pxmax, pymax
92
+ tk_call_without_enc('::Plotchart::viewPort', w.path, *(args.flatten))
93
+ end
94
+
95
+ def self.world_coordinates(w, *args) # args := xmin, ymin, xmax, ymax
96
+ tk_call_without_enc('::Plotchart::worldCoordinates',
97
+ w.path, *(args.flatten))
98
+ end
99
+
100
+ def self.world_3D_coordinates(w, *args)
101
+ # args := xmin, ymin, zmin, xmax, ymax, zmax
102
+ tk_call_without_enc('::Plotchart::world3DCoordinates',
103
+ w.path, *(args.flatten))
104
+ end
105
+
106
+ def self.coords_to_pixel(w, x, y)
107
+ list(tk_call_without_enc('::Plotchart::coordsToPixel', w.path, x, y))
108
+ end
109
+
110
+ def self.coords_3D_to_pixel(w, x, y, z)
111
+ list(tk_call_without_enc('::Plotchart::coords3DToPixel', w.path, x, y, z))
112
+ end
113
+
114
+ def self.plotconfig(*args)
115
+ case args.length
116
+ when 0, 1, 2
117
+ # 0: (no args) --> list of chat types
118
+ # 1: charttype --> list of components
119
+ # 2: charttype, component --> list of properties
120
+ simplelist(tk_call('::Plotchart::plotconfig', *args))
121
+ when 3
122
+ # 3: charttype, component, property --> current value
123
+ tk_call('::Plotchart::plotconfig', *args)
124
+ else
125
+ # 4: charttype, component, property, value : set new value
126
+ # 5+: Error on Tcl/Tk
127
+ tk_call('::Plotchart::plotconfig', *args)
128
+ nil
129
+ end
130
+ end
131
+
132
+ def self.plotpack(w, dir, *plots)
133
+ tk_call_without_enc('::Plotchart::plotpack', w.path, dir, *plots)
134
+ w
135
+ end
136
+
137
+ def self.polar_coordinates(w, radmax)
138
+ tk_call_without_enc('::Plotchart::polarCoordinates', w.path, radmax)
139
+ end
140
+
141
+ def self.polar_to_pixel(w, rad, phi)
142
+ list(tk_call_without_enc('::Plotchart::polarToPixel', w.path, rad, phi))
143
+ end
144
+
145
+ def self.pixel_to_coords(w, x, y)
146
+ list(tk_call_without_enc('::Plotchart::pixelToCoords', w.path, x, y))
147
+ end
148
+
149
+ def self.determine_scale(*args) # (xmin, xmax, inverted=false)
150
+ tk_call_without_enc('::Plotchart::determineScale', *args)
151
+ end
152
+
153
+ def self.set_zoom_pan(w)
154
+ tk_call_without_enc('::Plotchart::setZoomPan', w.path)
155
+ end
156
+
157
+ ############################
158
+ module ChartMethod
159
+ include TkCore
160
+
161
+ def title(str)
162
+ tk_call_without_enc(@chart, 'title', _get_eval_enc_str(str))
163
+ self
164
+ end
165
+
166
+ def save_plot(filename)
167
+ tk_call_without_enc(@chart, 'saveplot', filename)
168
+ self
169
+ end
170
+
171
+ def xtext(str)
172
+ tk_call_without_enc(@chart, 'xtext', _get_eval_enc_str(str))
173
+ self
174
+ end
175
+
176
+ def ytext(str)
177
+ tk_call_without_enc(@chart, 'ytext', _get_eval_enc_str(str))
178
+ self
179
+ end
180
+
181
+ def xconfig(key, value=None)
182
+ if key.kind_of?(Hash)
183
+ tk_call_without_enc(@chart, 'xconfig', *hash_kv(key, true))
184
+ else
185
+ tk_call(@chart, 'xconfig', "-#{key}",value)
186
+ end
187
+ self
188
+ end
189
+
190
+ def yconfig(key, value=None)
191
+ if key.kind_of?(Hash)
192
+ tk_call_without_enc(@chart, 'yconfig', *hash_kv(key, true))
193
+ else
194
+ tk_call(@chart, 'yconfig', "-#{key}", value)
195
+ end
196
+ self
197
+ end
198
+
199
+ def background(part, color_or_image, dir)
200
+ tk_call_without_enc(@chart, 'background',
201
+ part, color_or_image, dir)
202
+ self
203
+ end
204
+
205
+ def xticklines(color=None)
206
+ tk_call(@chart, 'xticklines', color)
207
+ self
208
+ end
209
+
210
+ def yticklines(color=None)
211
+ tk_call(@chart, 'yticklines', color)
212
+ self
213
+ end
214
+
215
+ def legendconfig(key, value=None)
216
+ if key.kind_of?(Hash)
217
+ tk_call_without_enc(@chart, 'legendconfig', *hash_kv(key, true))
218
+ else
219
+ tk_call(@chart, 'legendconfig', "-#{key}", value)
220
+ end
221
+ self
222
+ end
223
+
224
+ def legend(series, text)
225
+ tk_call_without_enc(@chart, 'legend',
226
+ _get_eval_enc_str(series), _get_eval_enc_str(text))
227
+ self
228
+ end
229
+
230
+ def balloon(*args) # args => (x, y, text, dir) or ([x, y], text, dir)
231
+ if args[0].kind_of?(Array)
232
+ # args => ([x, y], text, dir)
233
+ x, y = args.shift
234
+ else
235
+ # args => (x, y, text, dir)
236
+ x = args.shift
237
+ y = args.shift
238
+ end
239
+
240
+ text, dir = args
241
+
242
+ tk_call_without_enc(@chart, 'balloon', x, y,
243
+ _get_eval_enc_str(text), dir)
244
+ self
245
+ end
246
+
247
+ def balloonconfig(key, value=None)
248
+ if key.kind_of?(Hash)
249
+ tk_call_without_enc(@chart, 'balloonconfig', *hash_kv(key, true))
250
+ else
251
+ tk_call(@chart, 'balloonconfig', "-#{key}", value)
252
+ end
253
+ end
254
+
255
+ def plaintext(*args) # args => (x, y, text, dir) or ([x, y], text, dir)
256
+ if args[0].kind_of?(Array)
257
+ # args => ([x, y], text, dir)
258
+ x, y = args.shift
259
+ else
260
+ # args => (x, y, text, dir)
261
+ x = args.shift
262
+ y = args.shift
263
+ end
264
+
265
+ text, dir = args
266
+
267
+ tk_call_without_enc(@chart, 'plaintext', x, y,
268
+ _get_eval_enc_str(text), dir)
269
+ self
270
+ end
271
+
272
+ ############################
273
+
274
+ def view_port(*args) # args := pxmin, pymin, pxmax, pymax
275
+ tk_call_without_enc('::Plotchart::viewPort', @path, *(args.flatten))
276
+ self
277
+ end
278
+
279
+ def world_coordinates(*args) # args := xmin, ymin, xmax, ymax
280
+ tk_call_without_enc('::Plotchart::worldCoordinates',
281
+ @path, *(args.flatten))
282
+ self
283
+ end
284
+
285
+ def world_3D_coordinates(*args)
286
+ # args := xmin, ymin, zmin, xmax, ymax, zmax
287
+ tk_call_without_enc('::Plotchart::world3DCoordinates',
288
+ @path, *(args.flatten))
289
+ self
290
+ end
291
+
292
+ def coords_to_pixel(x, y)
293
+ list(tk_call_without_enc('::Plotchart::coordsToPixel', @path, x, y))
294
+ end
295
+
296
+ def coords_3D_to_pixel(x, y, z)
297
+ list(tk_call_without_enc('::Plotchart::coords3DToPixel', @path, x, y, z))
298
+ end
299
+
300
+ def plotpack(dir, *plots)
301
+ tk_call_without_enc('::Plotchart::plotpack', @path, dir, *plots)
302
+ self
303
+ end
304
+
305
+ def polar_coordinates(radmax)
306
+ tk_call_without_enc('::Plotchart::polarCoordinates', @path, radmax)
307
+ self
308
+ end
309
+
310
+ def polar_to_pixel(rad, phi)
311
+ list(tk_call_without_enc('::Plotchart::polarToPixel', @path, rad, phi))
312
+ end
313
+
314
+ def pixel_to_coords(x, y)
315
+ list(tk_call_without_enc('::Plotchart::pixelToCoords', @path, x, y))
316
+ end
317
+
318
+ def determine_scale(xmax, ymax)
319
+ tk_call_without_enc('::Plotchart::determineScale', @path, xmax, ymax)
320
+ self
321
+ end
322
+
323
+ def set_zoom_pan()
324
+ tk_call_without_enc('::Plotchart::setZoomPan', @path)
325
+ self
326
+ end
327
+ end
328
+
329
+ ############################
330
+ class XYPlot < Tk::Canvas
331
+ include ChartMethod
332
+
333
+ TkCommandNames = [
334
+ 'canvas'.freeze,
335
+ '::Plotchart::createXYPlot'.freeze
336
+ ].freeze
337
+
338
+ def initialize(*args) # args := ([parent,] xaxis, yaxis [, keys])
339
+ # xaxis := Array of [minimum, maximum, stepsize]
340
+ # yaxis := Array of [minimum, maximum, stepsize]
341
+ if args[0].kind_of?(Array)
342
+ @xaxis = args.shift
343
+ @yaxis = args.shift
344
+
345
+ super(*args) # create canvas widget
346
+ else
347
+ parent = args.shift
348
+
349
+ @xaxis = args.shift
350
+ @yaxis = args.shift
351
+
352
+ if parent.kind_of?(Tk::Canvas)
353
+ @path = parent.path
354
+ else
355
+ super(parent, *args) # create canvas widget
356
+ end
357
+ end
358
+
359
+ @chart = _create_chart
360
+ end
361
+
362
+ def _create_chart
363
+ p self.class::TkCommandNames[1] if $DEBUG
364
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
365
+ array2tk_list(@xaxis), array2tk_list(@yaxis))
366
+ end
367
+ private :_create_chart
368
+
369
+ def __destroy_hook__
370
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.mutex.synchronize{
371
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.delete(@path)
372
+ }
373
+ end
374
+
375
+ def plot(series, x, y)
376
+ tk_call_without_enc(@chart, 'plot', _get_eval_enc_str(series), x, y)
377
+ self
378
+ end
379
+
380
+ def contourlines(xcrd, ycrd, vals, clss=None)
381
+ xcrd = array2tk_list(xcrd) if xcrd.kind_of?(Array)
382
+ ycrd = array2tk_list(ycrd) if ycrd.kind_of?(Array)
383
+ vals = array2tk_list(vals) if vals.kind_of?(Array)
384
+ clss = array2tk_list(clss) if clss.kind_of?(Array)
385
+
386
+ tk_call(@chart, 'contourlines', xcrd, ycrd, vals, clss)
387
+ self
388
+ end
389
+
390
+ def contourfill(xcrd, ycrd, vals, clss=None)
391
+ xcrd = array2tk_list(xcrd) if xcrd.kind_of?(Array)
392
+ ycrd = array2tk_list(ycrd) if ycrd.kind_of?(Array)
393
+ vals = array2tk_list(vals) if vals.kind_of?(Array)
394
+ clss = array2tk_list(clss) if clss.kind_of?(Array)
395
+
396
+ tk_call(@chart, 'contourfill', xcrd, ycrd, vals, clss)
397
+ self
398
+ end
399
+
400
+ def contourbox(xcrd, ycrd, vals, clss=None)
401
+ xcrd = array2tk_list(xcrd) if xcrd.kind_of?(Array)
402
+ ycrd = array2tk_list(ycrd) if ycrd.kind_of?(Array)
403
+ vals = array2tk_list(vals) if vals.kind_of?(Array)
404
+ clss = array2tk_list(clss) if clss.kind_of?(Array)
405
+
406
+ tk_call(@chart, 'contourbox', xcrd, ycrd, vals, clss)
407
+ self
408
+ end
409
+
410
+ def color_map(colors)
411
+ colors = array2tk_list(colors) if colors.kind_of?(Array)
412
+
413
+ tk_call_without_enc(@chart, 'colorMap', colors)
414
+ self
415
+ end
416
+
417
+ def grid_cells(xcrd, ycrd)
418
+ xcrd = array2tk_list(xcrd) if xcrd.kind_of?(Array)
419
+ ycrd = array2tk_list(ycrd) if ycrd.kind_of?(Array)
420
+
421
+ tk_call_without_enc(@chart, 'grid', xcrd, ycrd)
422
+ self
423
+ end
424
+
425
+ def dataconfig(series, key, value=None)
426
+ if key.kind_of?(Hash)
427
+ tk_call_without_enc(@chart, 'dataconfig', series, *hash_kv(key, true))
428
+ else
429
+ tk_call(@chart, 'dataconfig', series, "-#{key}", value)
430
+ end
431
+ end
432
+
433
+ def rescale(xscale, yscale) # xscale|yscale => [newmin, newmax, newstep]
434
+ tk_call_without_enc(@chart, 'rescale', xscale, yscale)
435
+ self
436
+ end
437
+
438
+ def trend(series, xcrd, ycrd)
439
+ tk_call_without_enc(@chart, 'trend',
440
+ _get_eval_enc_str(series), xcrd, ycrd)
441
+ self
442
+ end
443
+
444
+ def rchart(series, xcrd, ycrd)
445
+ tk_call_without_enc(@chart, 'rchart',
446
+ _get_eval_enc_str(series), xcrd, ycrd)
447
+ self
448
+ end
449
+
450
+ def interval(series, xcrd, ymin, ymax, ycenter=None)
451
+ tk_call(@chart, 'interval', series, xcrd, ymin, ymax, ycenter)
452
+ self
453
+ end
454
+
455
+ def box_and_whiskers(series, xcrd, ycrd)
456
+ tk_call_without_enc(@chart, 'box-and-whiskers',
457
+ _get_eval_enc_str(series), xcrd, ycrd)
458
+ self
459
+ end
460
+ alias box_whiskers box_and_whiskers
461
+
462
+ def vectorconfig(series, key, value=None)
463
+ if key.kind_of?(Hash)
464
+ tk_call_without_enc(@chart, 'vectorconfig',
465
+ _get_eval_enc_str(series), *hash_kv(key, true))
466
+ else
467
+ tk_call(@chart, 'vectorconfig', series, "-#{key}", value)
468
+ end
469
+ self
470
+ end
471
+
472
+ def vector(series, xcrd, ycrd, ucmp, vcmp)
473
+ tk_call_without_enc(@chart, 'vector', _get_eval_enc_str(series),
474
+ xcrd, ycrd, ucmp, vcmp)
475
+ self
476
+ end
477
+
478
+ def dotconfig(series, key, value=None)
479
+ if key.kind_of?(Hash)
480
+ tk_call_without_enc(@chart, 'dotconfig',
481
+ _get_eval_enc_str(series), *hash_kv(key, true))
482
+ else
483
+ tk_call(@chart, 'dotconfig', series, "-#{key}", value)
484
+ end
485
+ self
486
+ end
487
+
488
+ def dot(series, xcrd, ycrd, value)
489
+ tk_call_without_enc(@chart, 'dot', _get_eval_enc_str(series),
490
+ xcrd, ycrd, value)
491
+ self
492
+ end
493
+ end
494
+
495
+ ############################
496
+ class Stripchart < XYPlot
497
+ TkCommandNames = [
498
+ 'canvas'.freeze,
499
+ '::Plotchart::createStripchart'.freeze
500
+ ].freeze
501
+ end
502
+
503
+ ############################
504
+ class TXPlot < XYPlot
505
+ TkCommandNames = [
506
+ 'canvas'.freeze,
507
+ '::Plotchart::createTXPlot'.freeze
508
+ ].freeze
509
+ end
510
+
511
+ ############################
512
+ class XLogYPlot < XYPlot
513
+ TkCommandNames = [
514
+ 'canvas'.freeze,
515
+ '::Plotchart::createXLogYPlot'.freeze
516
+ ].freeze
517
+ end
518
+
519
+ ############################
520
+ class Histogram < XYPlot
521
+ TkCommandNames = [
522
+ 'canvas'.freeze,
523
+ '::Plotchart::createHistogram'.freeze
524
+ ].freeze
525
+ end
526
+
527
+ ############################
528
+ class PolarPlot < Tk::Canvas
529
+ include ChartMethod
530
+
531
+ TkCommandNames = [
532
+ 'canvas'.freeze,
533
+ '::Plotchart::createPolarplot'.freeze
534
+ ].freeze
535
+
536
+ def initialize(*args) # args := ([parent,] radius_data [, keys])
537
+ # radius_data := Array of [maximum_radius, stepsize]
538
+ if args[0].kind_of?(Array)
539
+ @radius_data = args.shift
540
+
541
+ super(*args) # create canvas widget
542
+ else
543
+ parent = args.shift
544
+
545
+ @radius_data = args.shift
546
+
547
+ if parent.kind_of?(Tk::Canvas)
548
+ @path = parent.path
549
+ else
550
+ super(parent, *args) # create canvas widget
551
+ end
552
+ end
553
+
554
+ @chart = _create_chart
555
+ end
556
+
557
+ def _create_chart
558
+ p self.class::TkCommandNames[1] if $DEBUG
559
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
560
+ array2tk_list(@radius_data))
561
+ end
562
+ private :_create_chart
563
+
564
+ def __destroy_hook__
565
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.mutex.synchronize{
566
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.delete(@path)
567
+ }
568
+ end
569
+
570
+ def plot(series, radius, angle)
571
+ tk_call_without_enc(@chart, 'plot', _get_eval_enc_str(series),
572
+ radius, angle)
573
+ self
574
+ end
575
+
576
+ def dataconfig(series, key, value=None)
577
+ if key.kind_of?(Hash)
578
+ tk_call_without_enc(@chart, 'dataconfig', _get_eval_enc_str(series),
579
+ *hash_kv(key, true))
580
+ else
581
+ tk_call(@chart, 'dataconfig', series, "-#{key}", value)
582
+ end
583
+ end
584
+ end
585
+ Polarplot = PolarPlot
586
+
587
+ ############################
588
+ class IsometricPlot < Tk::Canvas
589
+ include ChartMethod
590
+
591
+ TkCommandNames = [
592
+ 'canvas'.freeze,
593
+ '::Plotchart::createIsometricPlot'.freeze
594
+ ].freeze
595
+
596
+ def initialize(*args) # args := ([parent,] xaxis, yaxis, [, step] [, keys])
597
+ # xaxis := Array of [minimum, maximum]
598
+ # yaxis := Array of [minimum, maximum]
599
+ # step := Float of stepsize | "noaxes" | :noaxes
600
+ if args[0].kind_of?(Array)
601
+ @xaxis = args.shift
602
+ @yaxis = args.shift
603
+
604
+ if args[0].kind_of?(Hash)
605
+ @stepsize = :noaxes
606
+ else
607
+ @stepsize = args.shift
608
+ end
609
+
610
+ super(*args) # create canvas widget
611
+ else
612
+ parent = args.shift
613
+
614
+ @xaxis = args.shift
615
+ @yaxis = args.shift
616
+
617
+ if args[0].kind_of?(Hash)
618
+ @stepsize = :noaxes
619
+ else
620
+ @stepsize = args.shift
621
+ end
622
+
623
+ if parent.kind_of?(Tk::Canvas)
624
+ @path = parent.path
625
+ else
626
+ super(parent, *args) # create canvas widget
627
+ end
628
+ end
629
+
630
+ @chart = _create_chart
631
+ end
632
+
633
+ def _create_chart
634
+ p self.class::TkCommandNames[1] if $DEBUG
635
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
636
+ array2tk_list(@xaxis), array2tk_list(@yaxis),
637
+ @stepsize)
638
+ end
639
+ private :_create_chart
640
+
641
+ def plot(type, *args)
642
+ self.__send__("plot_#{type.to_s.tr('-', '_')}", *args)
643
+ end
644
+
645
+ def plot_rectangle(*args) # args := x1, y1, x2, y2, color
646
+ tk_call_without_enc(@chart, 'plot', 'rectangle', *(args.flatten))
647
+ self
648
+ end
649
+
650
+ def plot_filled_rectangle(*args) # args := x1, y1, x2, y2, color
651
+ tk_call_without_enc(@chart, 'plot', 'filled-rectangle', *(args.flatten))
652
+ self
653
+ end
654
+
655
+ def plot_circle(*args) # args := xc, yc, radius, color
656
+ tk_call_without_enc(@chart, 'plot', 'circle', *(args.flatten))
657
+ self
658
+ end
659
+
660
+ def plot_filled_circle(*args) # args := xc, yc, radius, color
661
+ tk_call_without_enc(@chart, 'plot', 'filled-circle', *(args.flatten))
662
+ self
663
+ end
664
+ end
665
+ Isometricplot = IsometricPlot
666
+
667
+ ############################
668
+ class Plot3D < Tk::Canvas
669
+ include ChartMethod
670
+
671
+ TkCommandNames = [
672
+ 'canvas'.freeze,
673
+ '::Plotchart::create3DPlot'.freeze
674
+ ].freeze
675
+
676
+ def initialize(*args) # args := ([parent,] xaxis, yaxis, zaxis [, keys])
677
+ # xaxis := Array of [minimum, maximum, stepsize]
678
+ # yaxis := Array of [minimum, maximum, stepsize]
679
+ # zaxis := Array of [minimum, maximum, stepsize]
680
+ if args[0].kind_of?(Array)
681
+ @xaxis = args.shift
682
+ @yaxis = args.shift
683
+ @zaxis = args.shift
684
+
685
+ super(*args) # create canvas widget
686
+ else
687
+ parent = args.shift
688
+
689
+ @xaxis = args.shift
690
+ @yaxis = args.shift
691
+ @zaxis = args.shift
692
+
693
+ if parent.kind_of?(Tk::Canvas)
694
+ @path = parent.path
695
+ else
696
+ super(parent, *args) # create canvas widget
697
+ end
698
+ end
699
+
700
+ @chart = _create_chart
701
+ end
702
+
703
+ def _create_chart
704
+ p self.class::TkCommandNames[1] if $DEBUG
705
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
706
+ array2tk_list(@xaxis),
707
+ array2tk_list(@yaxis),
708
+ array2tk_list(@zaxis))
709
+ end
710
+ private :_create_chart
711
+
712
+ def plot_function(cmd=Proc.new)
713
+ Tk.ip_eval("proc #{@path}_#{@chart} {x y} {#{install_cmd(cmd)} $x $y}")
714
+ tk_call_without_enc(@chart, 'plotfunc', "#{@path}_#{@chart}")
715
+ self
716
+ end
717
+
718
+ def plot_funcont(conts, cmd=Proc.new)
719
+ conts = array2tk_list(conts) if conts.kind_of?(Array)
720
+ Tk.ip_eval("proc #{@path}_#{@chart} {x y} {#{install_cmd(cmd)} $x $y}")
721
+ tk_call_without_enc(@chart, 'plotfuncont', "#{@path}_#{@chart}", conts)
722
+ self
723
+ end
724
+
725
+ def grid_size(nxcells, nycells)
726
+ tk_call_without_enc(@chart, 'gridsize', nxcells, nycells)
727
+ self
728
+ end
729
+
730
+ def plot_line(dat, color)
731
+ # dat has to be provided as a 2 level array.
732
+ # 1st level contains rows, drawn in y-direction,
733
+ # and each row is an array whose elements are drawn in x-direction,
734
+ # for the columns.
735
+ tk_call_without_enc(@chart, 'plotline', dat, color)
736
+ self
737
+ end
738
+
739
+ def plot_data(dat)
740
+ # dat has to be provided as a 2 level array.
741
+ # 1st level contains rows, drawn in y-direction,
742
+ # and each row is an array whose elements are drawn in x-direction,
743
+ # for the columns.
744
+ tk_call_without_enc(@chart, 'plotdata', dat)
745
+ self
746
+ end
747
+
748
+ def zconfig(key, value=None)
749
+ if key.kind_of?(Hash)
750
+ tk_call_without_enc(@chart, 'zconfig', *hash_kv(key, true))
751
+ else
752
+ tk_call(@chart, 'zconfig', "-#{key}", value)
753
+ end
754
+ self
755
+ end
756
+
757
+ def colour(fill, border)
758
+ # configure the colours to use for polygon borders and inner area
759
+ tk_call_without_enc(@chart, 'colour', fill, border)
760
+ self
761
+ end
762
+ alias colours colour
763
+ alias colors colour
764
+ alias color colour
765
+ end
766
+
767
+ ############################
768
+ class Barchart3D < Tk::Canvas
769
+ include ChartMethod
770
+
771
+ TkCommandNames = [
772
+ 'canvas'.freeze,
773
+ '::Plotchart::create3DBarchart'.freeze
774
+ ].freeze
775
+
776
+ def initialize(*args) # args := ([parent,] yaxis, nobars [, keys])
777
+ # yaxis := Array of [minimum, maximum, stepsize]
778
+ # nobars := number of bars
779
+ if args[0].kind_of?(Array)
780
+ @yaxis = args.shift
781
+ @nobars = args.shift
782
+
783
+ super(*args) # create canvas widget
784
+ else
785
+ parent = args.shift
786
+
787
+ @yaxis = args.shift
788
+ @nobars = args.shift
789
+
790
+ if parent.kind_of?(Tk::Canvas)
791
+ @path = parent.path
792
+ else
793
+ super(parent, *args) # create canvas widget
794
+ end
795
+ end
796
+
797
+ @chart = _create_chart
798
+ end
799
+
800
+ def _create_chart
801
+ p self.class::TkCommandNames[1] if $DEBUG
802
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
803
+ array2tk_list(@yaxis), @nobars)
804
+ end
805
+ private :_create_chart
806
+
807
+ def plot(label, yvalue, color)
808
+ tk_call_without_enc(@chart, 'plot', _get_eval_enc_str(label),
809
+ _get_eval_enc_str(yvalue), color)
810
+ self
811
+ end
812
+
813
+ def config(key, value=None)
814
+ if key.kind_of?(Hash)
815
+ tk_call_without_enc(@chart, 'config', *hash_kv(key, true))
816
+ else
817
+ tk_call(@chart, 'config', "-#{key}", value)
818
+ end
819
+ self
820
+ end
821
+ end
822
+
823
+ ############################
824
+ class RibbonChart3D < Tk::Canvas
825
+ include ChartMethod
826
+
827
+ TkCommandNames = [
828
+ 'canvas'.freeze,
829
+ '::Plotchart::create3DRibbonChart'.freeze
830
+ ].freeze
831
+
832
+ def initialize(*args) # args := ([parent,] names, yaxis, zaxis [, keys])
833
+ # names := Array of the series
834
+ # yaxis := Array of [minimum, maximum, stepsize]
835
+ # zaxis := Array of [minimum, maximum, stepsize]
836
+ if args[0].kind_of?(Array)
837
+ @names = args.shift
838
+ @yaxis = args.shift
839
+ @zaxis = args.shift
840
+
841
+ super(*args) # create canvas widget
842
+ else
843
+ parent = args.shift
844
+
845
+ @names = args.shift
846
+ @yaxis = args.shift
847
+ @zaxis = args.shift
848
+
849
+ if parent.kind_of?(Tk::Canvas)
850
+ @path = parent.path
851
+ else
852
+ super(parent, *args) # create canvas widget
853
+ end
854
+ end
855
+
856
+ @chart = _create_chart
857
+ end
858
+
859
+ def _create_chart
860
+ p self.class::TkCommandNames[1] if $DEBUG
861
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
862
+ array2tk_list(@names),
863
+ array2tk_list(@yaxis),
864
+ array2tk_list(@zaxis))
865
+ end
866
+ private :_create_chart
867
+
868
+ def line(*args) # xypairs, color
869
+ color = args.pop # last argument is a color
870
+ xypairs = TkComm.slice_ary(args.flatten, 2) # regenerate xypairs
871
+ tk_call_without_enc(@chart, 'line', xypairs, color)
872
+ self
873
+ end
874
+
875
+ def area(*args) # xypairs, color
876
+ color = args.pop # last argument is a color
877
+ xypairs = TkComm.slice_ary(args.flatten, 2) # regenerate xypairs
878
+ tk_call_without_enc(@chart, 'area', xypairs, color)
879
+ self
880
+ end
881
+
882
+ def zconfig(key, value=None)
883
+ if key.kind_of?(Hash)
884
+ tk_call_without_enc(@chart, 'zconfig', *hash_kv(key, true))
885
+ else
886
+ tk_call(@chart, 'zconfig',"-#{key}", value)
887
+ end
888
+ self
889
+ end
890
+ end
891
+
892
+
893
+ ############################
894
+ class Piechart < Tk::Canvas
895
+ include ChartMethod
896
+
897
+ TkCommandNames = [
898
+ 'canvas'.freeze,
899
+ '::Plotchart::createPiechart'.freeze
900
+ ].freeze
901
+
902
+ def initialize(*args) # args := ([parent] [, keys])
903
+ if args[0].kind_of?(Tk::Canvas)
904
+ parent = args.shift
905
+ @path = parent.path
906
+ else
907
+ super(*args) # create canvas widget
908
+ end
909
+ @chart = _create_chart
910
+ end
911
+
912
+ def _create_chart
913
+ p self.class::TkCommandNames[1] if $DEBUG
914
+ tk_call_without_enc(self.class::TkCommandNames[1], @path)
915
+ end
916
+ private :_create_chart
917
+
918
+ def plot(*dat) # argument is a list of [label, value]
919
+ tk_call(@chart, 'plot', dat.flatten)
920
+ self
921
+ end
922
+
923
+ def colours(*list)
924
+ tk_call_without_enc(@chart, 'colours', *list)
925
+ self
926
+ end
927
+ alias colors colours
928
+ end
929
+
930
+
931
+ ############################
932
+ class Radialchart < Tk::Canvas
933
+ include ChartMethod
934
+
935
+ TkCommandNames = [
936
+ 'canvas'.freeze,
937
+ '::Plotchart::createRadialchart'.freeze
938
+ ].freeze
939
+
940
+ def initialize(*args) # args := ([parent,] names, scale, style [, keys])
941
+ # radius_data := Array of [maximum_radius, stepsize]
942
+ if args[0].kind_of?(Array)
943
+ @names = args.shift
944
+ @scale = args.shift
945
+ @style = args.shift
946
+
947
+ super(*args) # create canvas widget
948
+ else
949
+ parent = args.shift
950
+
951
+ @names = args.shift
952
+ @scale = args.shift
953
+ @style = args.shift
954
+
955
+ if parent.kind_of?(Tk::Canvas)
956
+ @path = parent.path
957
+ else
958
+ super(parent, *args) # create canvas widget
959
+ end
960
+ end
961
+
962
+ @chart = _create_chart
963
+ end
964
+
965
+ def _create_chart
966
+ p self.class::TkCommandNames[1] if $DEBUG
967
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
968
+ array2tk_list(@names), @scale, @style)
969
+ end
970
+ private :_create_chart
971
+
972
+ def __destroy_hook__
973
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.mutex.synchronize{
974
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.delete(@path)
975
+ }
976
+ end
977
+
978
+ def plot(data, color, thickness)
979
+ tk_call_without_enc(@chart, 'plot', _get_eval_enc_str(data),
980
+ color, thickness)
981
+ self
982
+ end
983
+
984
+ def colours(*list)
985
+ tk_call_without_enc(@chart, 'colours', *list)
986
+ self
987
+ end
988
+ alias colors colours
989
+ end
990
+
991
+ ############################
992
+ class Barchart < Tk::Canvas
993
+ include ChartMethod
994
+
995
+ TkCommandNames = [
996
+ 'canvas'.freeze,
997
+ '::Plotchart::createBarchart'.freeze
998
+ ].freeze
999
+
1000
+ def initialize(*args)
1001
+ # args := ([parent,] xlabels, ylabels [, series] [, keys])
1002
+ # xlabels, ylabels := labels | axis ( depend on normal or horizontal )
1003
+ # labels := Array of [label, label, ...]
1004
+ # (It determines the number of bars that will be plotted per series.)
1005
+ # axis := Array of [minimum, maximum, stepsize]
1006
+ # series := Integer number of data series | 'stacked' | :stacked
1007
+ if args[0].kind_of?(Array)
1008
+ @xlabels = args.shift
1009
+ @ylabels = args.shift
1010
+
1011
+ if args[0].kind_of?(Hash)
1012
+ @series_size = :stacked
1013
+ else
1014
+ @series_size = args.shift
1015
+ end
1016
+
1017
+ super(*args) # create canvas widget
1018
+ else
1019
+ parent = args.shift
1020
+
1021
+ @xlabels = args.shift
1022
+ @ylabels = args.shift
1023
+
1024
+ if args[0].kind_of?(Hash)
1025
+ @series_size = :stacked
1026
+ else
1027
+ @series_size = args.shift
1028
+ end
1029
+
1030
+ if parent.kind_of?(Tk::Canvas)
1031
+ @path = parent.path
1032
+ else
1033
+ super(parent, *args) # create canvas widget
1034
+ end
1035
+ end
1036
+
1037
+ @chart = _create_chart
1038
+ end
1039
+
1040
+ def _create_chart
1041
+ p self.class::TkCommandNames[1] if $DEBUG
1042
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
1043
+ array2tk_list(@xlabels), array2tk_list(@ylabels),
1044
+ @series_size)
1045
+ end
1046
+ private :_create_chart
1047
+
1048
+ def __destroy_hook__
1049
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.mutex.synchronize{
1050
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.delete(@path)
1051
+ }
1052
+ end
1053
+
1054
+ def plot(series, dat, col=None)
1055
+ tk_call(@chart, 'plot', series, dat, col)
1056
+ self
1057
+ end
1058
+
1059
+ def colours(*cols)
1060
+ # set the colours to be used
1061
+ tk_call(@chart, 'colours', *cols)
1062
+ self
1063
+ end
1064
+ alias colour colours
1065
+ alias colors colours
1066
+ alias color colours
1067
+ end
1068
+
1069
+ ############################
1070
+ class HorizontalBarchart < Barchart
1071
+ TkCommandNames = [
1072
+ 'canvas'.freeze,
1073
+ '::Plotchart::createHorizontalBarchart'.freeze
1074
+ ].freeze
1075
+ end
1076
+
1077
+ ############################
1078
+ class Boxplot < Tk::Canvas
1079
+ include ChartMethod
1080
+
1081
+ TkCommandNames = [
1082
+ 'canvas'.freeze,
1083
+ '::Plotchart::createBoxplot'.freeze
1084
+ ].freeze
1085
+
1086
+ def initialize(*args) # args := ([parent,] xaxis, ylabels [, keys])
1087
+ # xaxis := Array of [minimum, maximum, stepsize]
1088
+ # yaxis := List of labels for the y-axis
1089
+ if args[0].kind_of?(Array)
1090
+ @xaxis = args.shift
1091
+ @ylabels = args.shift
1092
+
1093
+ super(*args) # create canvas widget
1094
+ else
1095
+ parent = args.shift
1096
+
1097
+ @xaxis = args.shift
1098
+ @ylabels = args.shift
1099
+
1100
+ if parent.kind_of?(Tk::Canvas)
1101
+ @path = parent.path
1102
+ else
1103
+ super(parent, *args) # create canvas widget
1104
+ end
1105
+ end
1106
+
1107
+ @chart = _create_chart
1108
+ end
1109
+
1110
+ def _create_chart
1111
+ p self.class::TkCommandNames[1] if $DEBUG
1112
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
1113
+ array2tk_list(@xaxis), array2tk_list(@ylabels))
1114
+ end
1115
+ private :_create_chart
1116
+
1117
+ def __destroy_hook__
1118
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.mutex.synchronize{
1119
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.delete(@path)
1120
+ }
1121
+ end
1122
+
1123
+ def plot(label, *values)
1124
+ tk_call(@chart, 'plot', label, values.flatten)
1125
+ self
1126
+ end
1127
+ end
1128
+
1129
+ ############################
1130
+ class RightAxis < Tk::Canvas
1131
+ include ChartMethod
1132
+
1133
+ TkCommandNames = [
1134
+ 'canvas'.freeze,
1135
+ '::Plotchart::createRightAxis'.freeze
1136
+ ].freeze
1137
+
1138
+ def initialize(*args) # args := ([parent,] yaxis [, keys])
1139
+ # yaxis := Array of [minimum, maximum, stepsize]
1140
+ if args[0].kind_of?(Array)
1141
+ @yaxis = args.shift
1142
+
1143
+ super(*args) # create canvas widget
1144
+ else
1145
+ parent = args.shift
1146
+
1147
+ @yaxis = args.shift
1148
+
1149
+ if parent.kind_of?(Tk::Canvas)
1150
+ @path = parent.path
1151
+ else
1152
+ super(parent, *args) # create canvas widget
1153
+ end
1154
+ end
1155
+
1156
+ @chart = _create_chart
1157
+ end
1158
+
1159
+ def _create_chart
1160
+ p self.class::TkCommandNames[1] if $DEBUG
1161
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
1162
+ array2tk_list(@yaxis))
1163
+ end
1164
+ private :_create_chart
1165
+
1166
+ def __destroy_hook__
1167
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.mutex.synchronize{
1168
+ Tk::Tcllib::Plotchart::PlotSeries::SeriesID_TBL.delete(@path)
1169
+ }
1170
+ end
1171
+ end
1172
+
1173
+ ############################
1174
+ class Timechart < Tk::Canvas
1175
+ include ChartMethod
1176
+
1177
+ TkCommandNames = [
1178
+ 'canvas'.freeze,
1179
+ '::Plotchart::createTimechart'.freeze
1180
+ ].freeze
1181
+
1182
+ def initialize(*args)
1183
+ # args := ([parent,] time_begin, time_end, items [, keys])
1184
+ # time_begin := String of time format (e.g. "1 january 2004")
1185
+ # time_end := String of time format (e.g. "1 january 2004")
1186
+ # items := Expected/maximum number of items
1187
+ # ( This determines the vertical spacing. )
1188
+ if args[0].kind_of?(String)
1189
+ @time_begin = args.shift
1190
+ @time_end = args.shift
1191
+ @items = args.shift
1192
+
1193
+ super(*args) # create canvas widget
1194
+ else
1195
+ parent = args.shift
1196
+
1197
+ @time_begin = args.shift
1198
+ @time_end = args.shift
1199
+ @items = args.shift
1200
+
1201
+ if parent.kind_of?(Tk::Canvas)
1202
+ @path = parent.path
1203
+ else
1204
+ super(parent, *args) # create canvas widget
1205
+ end
1206
+ end
1207
+
1208
+ @chart = _create_chart
1209
+ end
1210
+
1211
+ def _create_chart
1212
+ p self.class::TkCommandNames[1] if $DEBUG
1213
+ tk_call_without_enc(self.class::TkCommandNames[1], @path,
1214
+ @time_begin, @time_end, @items)
1215
+ end
1216
+ private :_create_chart
1217
+
1218
+ def period(txt, time_begin, time_end, col=None)
1219
+ tk_call(@chart, 'period', txt, time_begin, time_end, col)
1220
+ self
1221
+ end
1222
+
1223
+ def milestone(txt, time, col=None)
1224
+ tk_call(@chart, 'milestone', txt, time, col)
1225
+ self
1226
+ end
1227
+
1228
+ def vertline(txt, time)
1229
+ tk_call(@chart, 'vertline', txt, time)
1230
+ self
1231
+ end
1232
+
1233
+ def hscroll=(scr)
1234
+ tk_call_without_enc(@chart, 'hscroll', scr)
1235
+ scr
1236
+ end
1237
+ def hscroll(scr)
1238
+ tk_call_without_enc(@chart, 'hscroll', scr)
1239
+ self
1240
+ end
1241
+
1242
+ def vscroll=(scr)
1243
+ tk_call_without_enc(@chart, 'vscroll', scr)
1244
+ scr
1245
+ end
1246
+ def vscroll(scr)
1247
+ tk_call_without_enc(@chart, 'vscroll', scr)
1248
+ self
1249
+ end
1250
+ end
1251
+
1252
+ ############################
1253
+ class Ganttchart < Tk::Canvas
1254
+ include ChartMethod
1255
+
1256
+ TkCommandNames = [
1257
+ 'canvas'.freeze,
1258
+ '::Plotchart::createGanttchart'.freeze
1259
+ ].freeze
1260
+
1261
+ def initialize(*args)
1262
+ # args := ([parent,] time_begin, time_end, items [, text_width] [, keys])
1263
+ # time_begin := String of time format (e.g. "1 january 2004")
1264
+ # time_end := String of time format (e.g. "1 january 2004")
1265
+ # args := Expected/maximum number of items
1266
+ # ( This determines the vertical spacing. ),
1267
+ # Expected/maximum width of items,
1268
+ # Option Hash ( { key=>value, ... } )
1269
+ if args[0].kind_of?(String)
1270
+ @time_begin = args.shift
1271
+ @time_end = args.shift
1272
+ @args = args
1273
+
1274
+ super(*args) # create canvas widget
1275
+ else
1276
+ parent = args.shift
1277
+
1278
+ @time_begin = args.shift
1279
+ @time_end = args.shift
1280
+ @args = args
1281
+
1282
+ if parent.kind_of?(Tk::Canvas)
1283
+ @path = parent.path
1284
+ else
1285
+ super(parent, *args) # create canvas widget
1286
+ end
1287
+ end
1288
+
1289
+ @chart = _create_chart
1290
+ end
1291
+
1292
+ def _create_chart
1293
+ p self.class::TkCommandNames[1] if $DEBUG
1294
+ tk_call(self.class::TkCommandNames[1], @path,
1295
+ @time_begin, @time_end, *args)
1296
+ end
1297
+ private :_create_chart
1298
+
1299
+ def task(txt, time_begin, time_end, completed=0.0)
1300
+ list(tk_call(@chart, 'task', txt, time_begin, time_end,
1301
+ completed)).collect!{|id|
1302
+ TkcItem.id2obj(self, id)
1303
+ }
1304
+ end
1305
+
1306
+ def milestone(txt, time, col=None)
1307
+ tk_call(@chart, 'milestone', txt, time, col)
1308
+ self
1309
+ end
1310
+
1311
+ def vertline(txt, time)
1312
+ tk_call(@chart, 'vertline', txt, time)
1313
+ self
1314
+ end
1315
+
1316
+ def connect(from_task, to_task)
1317
+ from_task = array2tk_list(from_task) if from_task.kind_of?(Array)
1318
+ to_task = array2tk_list(to_task) if to_task.kind_of?(Array)
1319
+
1320
+ tk_call(@chart, 'connect', from_task, to_task)
1321
+ self
1322
+ end
1323
+
1324
+ def summary(txt, tasks)
1325
+ tasks = array2tk_list(tasks) if tasks.kind_of?(Array)
1326
+ tk_call(@chart, 'summary', tasks)
1327
+ self
1328
+ end
1329
+
1330
+ def color_of_part(keyword, newcolor)
1331
+ tk_call(@chart, 'color', keyword, newcolor)
1332
+ self
1333
+ end
1334
+
1335
+ def font_of_part(keyword, newfont)
1336
+ tk_call(@chart, 'font', keyword, newfont)
1337
+ self
1338
+ end
1339
+
1340
+ def hscroll=(scr)
1341
+ tk_call_without_enc(@chart, 'hscroll', scr)
1342
+ scr
1343
+ end
1344
+ def hscroll(scr)
1345
+ tk_call_without_enc(@chart, 'hscroll', scr)
1346
+ self
1347
+ end
1348
+
1349
+ def vscroll=(scr)
1350
+ tk_call_without_enc(@chart, 'vscroll', scr)
1351
+ scr
1352
+ end
1353
+ def vscroll(scr)
1354
+ tk_call_without_enc(@chart, 'vscroll', scr)
1355
+ self
1356
+ end
1357
+ end
1358
+
1359
+ ############################
1360
+ class PlotSeries < TkObject
1361
+ SeriesID_TBL = TkCore::INTERP.create_table
1362
+
1363
+ (Series_ID = ['series'.freeze, TkUtil.untrust('00000')]).instance_eval{
1364
+ @mutex = Mutex.new
1365
+ def mutex; @mutex; end
1366
+ freeze
1367
+ }
1368
+ TkCore::INTERP.init_ip_env{
1369
+ SeriesID_TBL.mutex.synchronize{ SeriesID_TBL.clear }
1370
+ }
1371
+
1372
+ def self.id2obj(chart, id)
1373
+ path = chart.path
1374
+ SeriesID_TBL.mutex.synchronize{
1375
+ if SeriesID_TBL[path]
1376
+ SeriesID_TBL[path][id]? SeriesID_TBL[path][id]: id
1377
+ else
1378
+ id
1379
+ end
1380
+ }
1381
+ end
1382
+
1383
+ def initialize(chart, keys=nil)
1384
+ @parent = @chart_obj = chart
1385
+ @ppath = @chart_obj.path
1386
+ Series_ID.mutex.synchronize{
1387
+ @path = @series = @id = Series_ID.join(TkCore::INTERP._ip_id_)
1388
+ Series_ID[1].succ!
1389
+ }
1390
+ SeriesID_TBL.mutex.synchronize{
1391
+ SeriesID_TBL[@ppath] ||= {}
1392
+ SeriesID_TBL[@ppath][@id] = self
1393
+ }
1394
+ dataconfig(keys) if keys.kind_of?(Hash)
1395
+ end
1396
+
1397
+ def plot(*args)
1398
+ @chart_obj.plot(@series, *args)
1399
+ end
1400
+
1401
+ def dataconfig(key, value=None)
1402
+ @chart_obj.dataconfig(@series, key, value)
1403
+ end
1404
+ end
1405
+ end