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,1288 @@
1
+ # frozen_string_literal: false
2
+ #
3
+ # tkextlib/blt/treeview.rb
4
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
5
+ #
6
+
7
+ require 'tk'
8
+ require 'tkextlib/blt.rb'
9
+ require 'tk/validation.rb'
10
+
11
+ module Tk::BLT
12
+ class Treeview < TkWindow
13
+ module ConfigMethod
14
+ end
15
+
16
+ module TagOrID_Methods
17
+ end
18
+
19
+ class Node < TkObject
20
+ end
21
+
22
+ class Tag < TkObject
23
+ end
24
+ end
25
+
26
+ class Hiertable < Treeview
27
+ end
28
+ end
29
+
30
+ ######################################
31
+
32
+ module Tk::BLT::Treeview::ConfigMethod
33
+ include TkItemConfigMethod
34
+
35
+ def __item_boolval_optkeys(id)
36
+ case id
37
+ when Array
38
+ # id := [ 'column', name ]
39
+ ['edit', 'hide']
40
+ when 'sort'
41
+ ['decreasing']
42
+ else
43
+ []
44
+ end
45
+ end
46
+ private :__item_boolval_optkeys
47
+
48
+ def __item_strval_optkeys(id)
49
+ case id
50
+ when Array
51
+ # id := [ 'column', name ]
52
+ super() << 'titleforeground' << 'titleshadow'
53
+ when 'sort'
54
+ ['decreasing']
55
+ else
56
+ []
57
+ end
58
+ end
59
+ private :__item_strval_optkeys
60
+
61
+ def __item_listval_optkeys(id)
62
+ case id
63
+ when 'entry'
64
+ ['bindtags']
65
+ else
66
+ []
67
+ end
68
+ end
69
+ private :__item_listval_optkeys
70
+
71
+ def __item_cget_cmd(id)
72
+ if id.kind_of?(Array)
73
+ # id := [ type, name ]
74
+ [self.path, id[0], 'cget', id[1]]
75
+ else
76
+ [self.path, id, 'cget']
77
+ end
78
+ end
79
+ private :__item_cget_cmd
80
+
81
+ def __item_config_cmd(id)
82
+ if id.kind_of?(Array)
83
+ # id := [ type, name ]
84
+ [self.path, id[0], 'configure', id[1]]
85
+ else
86
+ [self.path, id, 'configure']
87
+ end
88
+ end
89
+ private :__item_config_cmd
90
+
91
+ def __item_pathname(id)
92
+ if id.kind_of?(Array)
93
+ id = tagid(id[1])
94
+ end
95
+ [self.path, id].join(';')
96
+ end
97
+ private :__item_pathname
98
+
99
+ def column_cget_tkstring(name, option)
100
+ itemcget_tkstring(['column', name], option)
101
+ end
102
+ def column_cget(name, option)
103
+ itemcget(['column', name], option)
104
+ end
105
+ def column_cget_strict(name, option)
106
+ itemcget_strict(['column', name], option)
107
+ end
108
+ def column_configure(name, slot, value=None)
109
+ itemconfigure(['column', name], slot, value)
110
+ end
111
+ def column_configinfo(name, slot=nil)
112
+ itemconfiginfo(['column', name], slot)
113
+ end
114
+ def current_column_configinfo(name, slot=nil)
115
+ current_itemconfiginfo(['column', name], slot)
116
+ end
117
+
118
+ def button_cget_tkstring(option)
119
+ itemcget_tkstring('button', option)
120
+ end
121
+ def button_cget(option)
122
+ itemcget('button', option)
123
+ end
124
+ def button_cget_strict(option)
125
+ itemcget_strict('button', option)
126
+ end
127
+ def button_configure(slot, value=None)
128
+ itemconfigure('button', slot, value)
129
+ end
130
+ def button_configinfo(slot=nil)
131
+ itemconfiginfo('button', slot)
132
+ end
133
+ def current_button_configinfo(slot=nil)
134
+ current_itemconfiginfo('button', slot)
135
+ end
136
+
137
+ def entry_cget_tkstring(option)
138
+ itemcget_tkstring('entry', option)
139
+ end
140
+ def entry_cget(option)
141
+ ret = itemcget('entry', option)
142
+ if option == 'bindtags' || option == :bindtags
143
+ ret.collect{|tag| TkBindTag.id2obj(tag)}
144
+ else
145
+ ret
146
+ end
147
+ end
148
+ def entry_cget_strict(option)
149
+ ret = itemcget_strict('entry', option)
150
+ if option == 'bindtags' || option == :bindtags
151
+ ret.collect{|tag| TkBindTag.id2obj(tag)}
152
+ else
153
+ ret
154
+ end
155
+ end
156
+ def entry_configure(slot, value=None)
157
+ itemconfigure('entry', slot, value)
158
+ end
159
+ def entry_configinfo(slot=nil)
160
+ ret = itemconfiginfo('entry', slot)
161
+
162
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
163
+ if slot
164
+ if slot == 'bindtags' || slot == :bindtags
165
+ ret[-2] = ret[-2].collect{|tag| TkBindTag.id2obj(tag)}
166
+ ret[-1] = ret[-1].collect{|tag| TkBindTag.id2obj(tag)}
167
+ end
168
+ else
169
+ inf = ret.assoc('bindtags')
170
+ inf[-2] = inf[-2].collect{|tag| TkBindTag.id2obj(tag)}
171
+ inf[-1] = inf[-1].collect{|tag| TkBindTag.id2obj(tag)}
172
+ end
173
+
174
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
175
+ if (inf = ret['bindtags'])
176
+ inf[-2] = inf[-2].collect{|tag| TkBindTag.id2obj(tag)}
177
+ inf[-1] = inf[-1].collect{|tag| TkBindTag.id2obj(tag)}
178
+ ret['bindtags'] = inf
179
+ end
180
+ end
181
+
182
+ ret
183
+ end
184
+ def current_entry_configinfo(slot=nil)
185
+ ret = current_itemconfiginfo('entry', slot)
186
+
187
+ if (val = ret['bindtags'])
188
+ ret['bindtags'] = val.collect{|tag| TkBindTag.id2obj(tag)}
189
+ end
190
+
191
+ ret
192
+ end
193
+
194
+ def sort_cget_tkstring(option)
195
+ itemcget_tkstring('sort', option)
196
+ end
197
+ def sort_cget(option)
198
+ itemcget('sort', option)
199
+ end
200
+ def sort_cget_strict(option)
201
+ itemcget_strict('sort', option)
202
+ end
203
+ def sort_configure(slot, value=None)
204
+ itemconfigure('sort', slot, value)
205
+ end
206
+ def sort_configinfo(slot=nil)
207
+ itemconfiginfo('sort', slot)
208
+ end
209
+ def current_sort_configinfo(slot=nil)
210
+ current_itemconfiginfo('sort', slot)
211
+ end
212
+
213
+ def text_cget_tkstring(option)
214
+ itemcget_tkstring('text', option)
215
+ end
216
+ def text_cget(option)
217
+ itemcget('text', option)
218
+ end
219
+ def text_cget_strict(option)
220
+ itemcget_strict('text', option)
221
+ end
222
+ def text_configure(slot, value=None)
223
+ itemconfigure('text', slot, value)
224
+ end
225
+ def text_configinfo(slot=nil)
226
+ itemconfiginfo('text', slot)
227
+ end
228
+ def current_text_configinfo(slot=nil)
229
+ current_itemconfiginfo('text', slot)
230
+ end
231
+
232
+ private :itemcget_tkstring, :itemcget, :itemcget_strict
233
+ private :itemconfigure, :itemconfiginfo, :current_itemconfiginfo
234
+ end
235
+
236
+ class Tk::BLT::Treeview
237
+ TkCommandNames = ['::blt::treeview'.freeze].freeze
238
+ WidgetClassName = 'TreeView'.freeze
239
+ WidgetClassNames[WidgetClassName] ||= self
240
+
241
+ include Scrollable
242
+ include ValidateConfigure
243
+ include ItemValidateConfigure
244
+ include Tk::BLT::Treeview::ConfigMethod
245
+
246
+ ########################
247
+
248
+ def __boolval_optkeys
249
+ ['autocreate', 'allowduplicates', 'exportselection', 'flat', 'hideroot',
250
+ 'newtags', 'showtitles', 'sortselection']
251
+ end
252
+ private :__boolval_optkeys
253
+
254
+ def __strval_optkeys
255
+ super() + ['focusforeground', 'linecolor', 'separator', 'trim']
256
+ end
257
+ private :__strval_optkeys
258
+
259
+ ########################
260
+
261
+ class OpenCloseCommand < TkValidateCommand
262
+ class ValidateArgs < TkUtil::CallbackSubst
263
+ KEY_TBL = [
264
+ [ ?W, ?w, :widget ],
265
+ [ ?p, ?s, :name ],
266
+ [ ?P, ?s, :fullpath ],
267
+ [ ?#, ?x, :node_id ],
268
+ nil
269
+ ]
270
+
271
+ PROC_TBL = [
272
+ [ ?x, TkComm.method(:num_or_str) ],
273
+ [ ?s, TkComm.method(:string) ],
274
+ [ ?w, TkComm.method(:window) ],
275
+ nil
276
+ ]
277
+
278
+ =begin
279
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
280
+ KEY_TBL.map!{|inf|
281
+ if inf.kind_of?(Array)
282
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
283
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
284
+ end
285
+ inf
286
+ }
287
+
288
+ PROC_TBL.map!{|inf|
289
+ if inf.kind_of?(Array)
290
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
291
+ end
292
+ inf
293
+ }
294
+ =end
295
+
296
+ _setup_subst_table(KEY_TBL, PROC_TBL);
297
+
298
+ def self.ret_val(val)
299
+ val
300
+ end
301
+ end
302
+
303
+ def self._config_keys
304
+ ['opencommand', 'closecomand']
305
+ end
306
+ end
307
+
308
+ def __validation_class_list
309
+ super() << OpenCloseCommand
310
+ end
311
+
312
+ Tk::ValidateConfigure.__def_validcmd(binding, OpenCloseCommand)
313
+
314
+ ########################
315
+
316
+ def __item_validation_class_list(id)
317
+ case id
318
+ when 'entry'
319
+ super(id) << OpenCloseCommand
320
+ else
321
+ super(id)
322
+ end
323
+ end
324
+
325
+ Tk::ItemValidateConfigure.__def_validcmd(binding, OpenCloseCommand)
326
+
327
+ ########################
328
+
329
+ def __destroy_hook__
330
+ Tk::BLT::Treeview::Node::TreeNodeID_TBL.mutex.synchronize{
331
+ Tk::BLT::Treeview::Node::TreeNodeID_TBL.delete(@path)
332
+ }
333
+ Tk::BLT::Treeview::Tag::TreeTagID_TBL.mutex.synchronize{
334
+ Tk::BLT::Treeview::Tag::TreeTagID_TBL.delete(@path)
335
+ }
336
+ end
337
+
338
+ def tagid(tag)
339
+ if tag.kind_of?(Tk::BLT::Treeview::Node) \
340
+ || tag.kind_of?(Tk::BLT::Treeview::Tag)
341
+ tag.id
342
+ else
343
+ tag # maybe an Array of configure parameters
344
+ end
345
+ end
346
+ private :tagid
347
+
348
+ def tagid2obj(tagid)
349
+ if tagid.kind_of?(Integer)
350
+ Tk::BLT::Treeview::Node.id2obj(self, tagid.to_s)
351
+ elsif tagid.kind_of?(String)
352
+ if tagid =~ /^\d+$/
353
+ Tk::BLT::Treeview::Node.id2obj(self, tagid)
354
+ else
355
+ Tk::BLT::Treeview::Tag.id2obj(self, tagid)
356
+ end
357
+ else
358
+ tagid
359
+ end
360
+ end
361
+
362
+ def bbox(*tags)
363
+ list(tk_send('bbox', *(tags.collect{|tag| tagid(tag)})))
364
+ end
365
+
366
+ def screen_bbox(*tags)
367
+ list(tk_send('bbox', '-screen', *(tags.collect{|tag| tagid(tag)})))
368
+ end
369
+
370
+ def tag_bind(tag, seq, *args)
371
+ if TkComm._callback_entry?(args[0]) || !block_given?
372
+ cmd = args.shift
373
+ else
374
+ cmd = Proc.new
375
+ end
376
+ _bind([@path, 'bind', tagid(tag)], seq, cmd, *args)
377
+ self
378
+ end
379
+ def tag_bind_append(tag, seq, *args)
380
+ if TkComm._callback_entry?(args[0]) || !block_given?
381
+ cmd = args.shift
382
+ else
383
+ cmd = Proc.new
384
+ end
385
+ _bind_append([@path, 'bind', tagid(tag)], seq, cmd, *args)
386
+ self
387
+ end
388
+ def tag_bind_remove(tag, seq)
389
+ _bind_remove([@path, 'bind', tagid(tag)], seq)
390
+ self
391
+ end
392
+ def tag_bindinfo(tag, seq=nil)
393
+ _bindinfo([@path, 'bind', tagid(tag)], seq)
394
+ end
395
+
396
+ def button_activate(tag)
397
+ tk_send('button', 'activate', tagid(tag))
398
+ self
399
+ end
400
+
401
+ def button_bind(tag, seq, *args)
402
+ if TkComm._callback_entry?(args[0]) || !block_given?
403
+ cmd = args.shift
404
+ else
405
+ cmd = Proc.new
406
+ end
407
+ _bind([@path, 'button', 'bind', tagid(tag)], seq, cmd, *args)
408
+ self
409
+ end
410
+ def button_bind_append(tag, seq, *args)
411
+ if TkComm._callback_entry?(args[0]) || !block_given?
412
+ cmd = args.shift
413
+ else
414
+ cmd = Proc.new
415
+ end
416
+ _bind_append([@path, 'button', 'bind', tagid(tag)], seq, cmd, *args)
417
+ self
418
+ end
419
+ def button_bind_remove(tag, seq)
420
+ _bind_remove([@path, 'button', 'bind', tagid(tag)], seq)
421
+ self
422
+ end
423
+ def button_bindinfo(tag, seq=nil)
424
+ _bindinfo([@path, 'button', 'bind', tagid(tag)], seq)
425
+ end
426
+
427
+ def close(*tags)
428
+ tk_send('close', *(tags.collect{|tag| tagid(tag)}))
429
+ self
430
+ end
431
+ def close_recurse(*tags)
432
+ tk_send('close', '-recurse', *(tags.collect{|tag| tagid(tag)}))
433
+ self
434
+ end
435
+
436
+ def column_activate(column=None)
437
+ if column == None
438
+ tk_send('column', 'activate')
439
+ else
440
+ tk_send('column', 'activate', column)
441
+ self
442
+ end
443
+ end
444
+
445
+ def column_delete(*fields)
446
+ tk_send('column', 'delete', *fields)
447
+ self
448
+ end
449
+ def column_insert(pos, field, *opts)
450
+ tk_send('column', 'insert', pos, field, *opts)
451
+ self
452
+ end
453
+ def column_invoke(field)
454
+ tk_send('column', 'invoke', field)
455
+ self
456
+ end
457
+ def column_move(name, dest)
458
+ tk_send('column', 'move', name, dest)
459
+ self
460
+ end
461
+ def column_names()
462
+ simplelist(tk_send('column', 'names'))
463
+ end
464
+ def column_nearest(x, y=None)
465
+ tk_send('column', 'nearest', x, y)
466
+ end
467
+
468
+ def curselection
469
+ simplelist(tk_send('curselection')).collect{|id| tagid2obj(id)}
470
+ end
471
+
472
+ def delete(*tags)
473
+ tk_send('delete', *(tags.collect{|tag| tagid(tag)}))
474
+ self
475
+ end
476
+
477
+ def entry_activate(tag)
478
+ tk_send('entry', 'activate', tagid(tag))
479
+ self
480
+ end
481
+ def entry_children(tag, first=None, last=None)
482
+ simplelist(tk_send('entry', 'children', tagid(tag),
483
+ first, last)).collect{|id| tagid2obj(id)}
484
+ end
485
+ def entry_delete(tag, first=None, last=None)
486
+ tk_send('entry', 'delete', tagid(tag), first, last)
487
+ end
488
+ def entry_before?(tag1, tag2)
489
+ bool(tk_send('entry', 'isbefore', tagid(tag1), tagid(tag2)))
490
+ end
491
+ def entry_hidden?(tag)
492
+ bool(tk_send('entry', 'ishidden', tagid(tag)))
493
+ end
494
+ def entry_open?(tag)
495
+ bool(tk_send('entry', 'isopen', tagid(tag)))
496
+ end
497
+
498
+ def entry_size(tag)
499
+ number(tk_send('entry', 'size', tagid(tag)))
500
+ end
501
+ def entry_size_recurse(tag)
502
+ number(tk_send('entry', 'size', '-recurse', tagid(tag)))
503
+ end
504
+
505
+ def _search_flags(keys)
506
+ keys = _symbolkey2str(keys)
507
+ keys['exact'] = None if keys.delete('exact')
508
+ keys['glob'] = None if keys.delete('glob')
509
+ keys['regexp'] = None if keys.delete('regexp')
510
+ keys['nonmatching'] = None if keys.delete('nonmatching')
511
+ end
512
+ private :_search_flags
513
+
514
+ ################################
515
+
516
+ class FindExecFlagValue < TkValidateCommand
517
+ class ValidateArgs < TkUtil::CallbackSubst
518
+ KEY_TBL = [
519
+ [ ?W, ?w, :widget ],
520
+ [ ?p, ?s, :name ],
521
+ [ ?P, ?s, :fullpath ],
522
+ [ ?#, ?x, :node_id ],
523
+ nil
524
+ ]
525
+
526
+ PROC_TBL = [
527
+ [ ?x, TkComm.method(:num_or_str) ],
528
+ [ ?s, TkComm.method(:string) ],
529
+ [ ?w, TkComm.method(:window) ],
530
+ nil
531
+ ]
532
+
533
+ =begin
534
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
535
+ KEY_TBL.map!{|inf|
536
+ if inf.kind_of?(Array)
537
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
538
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
539
+ end
540
+ inf
541
+ }
542
+
543
+ PROC_TBL.map!{|inf|
544
+ if inf.kind_of?(Array)
545
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
546
+ end
547
+ inf
548
+ }
549
+ =end
550
+
551
+ _setup_subst_table(KEY_TBL, PROC_TBL);
552
+
553
+ def self.ret_val(val)
554
+ val
555
+ end
556
+ end
557
+
558
+ def self._config_keys
559
+ []
560
+ end
561
+ end
562
+
563
+ def _find_exec_flag_value(val)
564
+ if val.kind_of?(Array)
565
+ cmd, *args = val
566
+ #FindExecFlagValue.new(cmd, args.join(' '))
567
+ FindExecFlagValue.new(cmd, *args)
568
+ elsif TkComm._callback_entry?(val)
569
+ FindExecFlagValue.new(val)
570
+ else
571
+ val
572
+ end
573
+ end
574
+
575
+ ################################
576
+
577
+ def find(first, last, keys={})
578
+ keys = _search_flags(keys)
579
+ keys['exec'] = _find_exec_flag_value(keys['exec']) if keys.key?('exec')
580
+ args = hash_kv(keys) << '--' << tagid(first) << tagid(last)
581
+ simplelist(tk_send('find', *args)).collect{|id| tagid2obj(id)}
582
+ end
583
+
584
+ def tag_focus(tag)
585
+ tk_send('focus', tagid(tag))
586
+ self
587
+ end
588
+ def get(*tags)
589
+ simplelist(tk_send('get', *(tags.collect{|tag| tagid(tag)})))
590
+ end
591
+ def get_full(*tags)
592
+ simplelist(tk_send('get', '-full', *(tags.collect{|tag| tagid(tag)})))
593
+ end
594
+
595
+ def hide(*tags)
596
+ if tags[-1].kind_of?(Hash)
597
+ keys = tags.pop
598
+ else
599
+ keys = {}
600
+ end
601
+ keys = _search_flags(keys)
602
+ args = hash_kv(keys) << '--'
603
+ args.concat(tags.collect{|t| tagid(t)})
604
+ tk_send('hide', *args)
605
+ self
606
+ end
607
+
608
+ def index(str)
609
+ tagid2obj(tk_send('index', str))
610
+ end
611
+ def index_at(tag, str)
612
+ tagid2obj(tk_send('index', '-at', tagid(tag), str))
613
+ end
614
+ def index_at_path(tag, str)
615
+ tagid2obj(tk_send('index', '-at', tagid(tag), '-path', str))
616
+ end
617
+
618
+ def insert(pos, parent=nil, keys={})
619
+ Tk::BLT::Treeview::Node.new(pos, parent, keys)
620
+ end
621
+ def insert_at(tag, pos, parent=nil, keys={})
622
+ if parent.kind_of?(Hash)
623
+ keys = parent
624
+ parent = nil
625
+ end
626
+
627
+ keys = _symbolkey2str(keys)
628
+ keys['at'] = tagid(tag)
629
+
630
+ Tk::BLT::Treeview::Node.new(pos, parent, keys)
631
+ end
632
+
633
+ def move_before(tag, dest)
634
+ tk_send('move', tagid(tag), 'before', tagid(dest))
635
+ self
636
+ end
637
+ def move_after(tag, dest)
638
+ tk_send('move', tagid(tag), 'after', tagid(dest))
639
+ self
640
+ end
641
+ def move_into(tag, dest)
642
+ tk_send('move', tagid(tag), 'into', tagid(dest))
643
+ self
644
+ end
645
+
646
+ def nearest(x, y, var=None)
647
+ tagid2obj(tk_send('nearest', x, y, var))
648
+ end
649
+
650
+ def open(*tags)
651
+ tk_send('open', *(tags.collect{|tag| tagid(tag)}))
652
+ self
653
+ end
654
+ def open_recurse(*tags)
655
+ tk_send('open', '-recurse', *(tags.collect{|tag| tagid(tag)}))
656
+ self
657
+ end
658
+
659
+ def range(first, last)
660
+ simplelist(tk_send('range', tagid(first), tagid(last))).collect{|id|
661
+ tagid2obj(id)
662
+ }
663
+ end
664
+ def range_open(first, last)
665
+ simplelist(tk_send('range', '-open',
666
+ tagid(first), tagid(last))).collect{|id|
667
+ tagid2obj(id)
668
+ }
669
+ end
670
+
671
+ def scan_mark(x, y)
672
+ tk_send_without_enc('scan', 'mark', x, y)
673
+ self
674
+ end
675
+ def scan_dragto(x, y)
676
+ tk_send_without_enc('scan', 'dragto', x, y)
677
+ self
678
+ end
679
+
680
+ def see(tag)
681
+ tk_send_without_enc('see', tagid(tag))
682
+ self
683
+ end
684
+ def see_anchor(anchor, tag)
685
+ tk_send_without_enc('see', '-anchor', anchor, tagid(tag))
686
+ self
687
+ end
688
+
689
+ def selection_anchor(tag)
690
+ tk_send_without_enc('selection', 'anchor', tagid(tag))
691
+ self
692
+ end
693
+ def selection_cancel()
694
+ tk_send_without_enc('selection', 'cancel')
695
+ self
696
+ end
697
+ def selection_clear(first, last=None)
698
+ tk_send_without_enc('selection', 'clear', tagid(first), tagid(last))
699
+ self
700
+ end
701
+ def selection_clear_all()
702
+ tk_send_without_enc('selection', 'clearall')
703
+ self
704
+ end
705
+ def selection_mark(tag)
706
+ tk_send_without_enc('selection', 'mark', tagid(tag))
707
+ self
708
+ end
709
+ def selection_include?(tag)
710
+ bool(tk_send('selection', 'include', tagid(tag)))
711
+ end
712
+ def selection_present?()
713
+ bool(tk_send('selection', 'present'))
714
+ end
715
+ def selection_set(first, last=None)
716
+ tk_send_without_enc('selection', 'set', tagid(first), tagid(last))
717
+ self
718
+ end
719
+ def selection_toggle(first, last=None)
720
+ tk_send_without_enc('selection', 'toggle', tagid(first), tagid(last))
721
+ self
722
+ end
723
+
724
+ def show(*tags)
725
+ if tags[-1].kind_of?(Hash)
726
+ keys = tags.pop
727
+ else
728
+ keys = {}
729
+ end
730
+ keys = _search_flags(keys)
731
+ args = hash_kv(keys) << '--'
732
+ args.concat(tags.collect{|t| tagid(t)})
733
+ tk_send('show', *args)
734
+ self
735
+ end
736
+
737
+ def sort_auto(mode)
738
+ tk_send('sort', 'auto', mode)
739
+ self
740
+ end
741
+ def sort_auto=(mode)
742
+ tk_send('sort', 'auto', mode)
743
+ mode
744
+ end
745
+ def sort_auto?
746
+ bool(tk_send('sort', 'auto'))
747
+ end
748
+ def sort_once(*tags)
749
+ tk_send('sort', 'once', *(tags.collect{|tag| tagid(tag)}))
750
+ self
751
+ end
752
+ def sort_once_recurse(*tags)
753
+ tk_send('sort', 'once', '-recurse', *(tags.collect{|tag| tagid(tag)}))
754
+ self
755
+ end
756
+
757
+ def tag_add(tag, *ids)
758
+ tk_send('tag', 'add', tagid(tag), *ids)
759
+ self
760
+ end
761
+ def tag_delete(tag, *ids)
762
+ tk_send('tag', 'delete', tagid(tag), *ids)
763
+ self
764
+ end
765
+ def tag_forget(tag)
766
+ tk_send('tag', 'forget', tagid(tag))
767
+ self
768
+ end
769
+ def tag_names(id=nil)
770
+ id = (id)? tagid(id): None
771
+
772
+ simplelist(tk_send('tag', 'nodes', id)).collect{|tag|
773
+ Tk::BLT::Treeview::Tag.id2obj(self, tag)
774
+ }
775
+ end
776
+ def tag_nodes(tag)
777
+ simplelist(tk_send('tag', 'nodes', tagid(tag))).collect{|id|
778
+ Tk::BLT::Treeview::Node.id2obj(self, id)
779
+ }
780
+ end
781
+
782
+ def text_apply
783
+ tk_send('text', 'apply')
784
+ self
785
+ end
786
+ def text_cancel
787
+ tk_send('text', 'cancel')
788
+ self
789
+ end
790
+
791
+ def text_delete(first, last)
792
+ tk_send('text', 'delete', first, last)
793
+ self
794
+ end
795
+ def text_get(x, y)
796
+ tk_send('text', 'get', x, y)
797
+ end
798
+ def text_get_root(x, y)
799
+ tk_send('text', 'get', '-root', x, y)
800
+ end
801
+ def text_icursor(idx)
802
+ tk_send('text', 'icursor', idx)
803
+ self
804
+ end
805
+ def text_index(idx)
806
+ num_or_str(tk_send('text', 'index', idx))
807
+ end
808
+ def text_insert(idx, str)
809
+ tk_send('text', 'insert', idx, str)
810
+ self
811
+ end
812
+
813
+ def text_selection_adjust(idx)
814
+ tk_send('text', 'selection', 'adjust', idx)
815
+ self
816
+ end
817
+ def text_selection_clear
818
+ tk_send('text', 'selection', 'clear')
819
+ self
820
+ end
821
+ def text_selection_from(idx)
822
+ tk_send('text', 'selection', 'from', idx)
823
+ self
824
+ end
825
+ def text_selection_present
826
+ num_or_str(tk_send('text', 'selection', 'present'))
827
+ end
828
+ def text_selection_range(start, last)
829
+ tk_send('text', 'selection', 'range', start, last)
830
+ self
831
+ end
832
+ def text_selection_to(idx)
833
+ tk_send('text', 'selection', 'to', idx)
834
+ self
835
+ end
836
+
837
+ def toggle(tag)
838
+ tk_send('toggle', tagid(tag))
839
+ self
840
+ end
841
+ end
842
+
843
+ ######################################
844
+
845
+ module Tk::BLT::Treeview::TagOrID_Methods
846
+ def bbox
847
+ @tree.bbox(self)
848
+ end
849
+ def screen_bbox
850
+ @tree.screen_bbox(self)
851
+ end
852
+
853
+ def bind(seq, *args)
854
+ @tree.tag_bind(self, seq, *args)
855
+ self
856
+ end
857
+ def bind_append(seq, *args)
858
+ @tree.tag_bind_append(self, seq, *args)
859
+ self
860
+ end
861
+ def bind_remove(seq)
862
+ @tree.tag_bind_remove(self, seq)
863
+ self
864
+ end
865
+ def bindinfo(seq=nil)
866
+ @tree.tag_bindinfo(self, seq)
867
+ end
868
+
869
+ def button_activate
870
+ @tree.button_activate(self)
871
+ self
872
+ end
873
+
874
+ def button_bind(seq, *args)
875
+ @tree.button_bind(self, seq, *args)
876
+ self
877
+ end
878
+ def button_bind_append(seq, *args)
879
+ @tree.button_bind_append(self, seq, *args)
880
+ self
881
+ end
882
+ def button_bind_remove(seq)
883
+ @tree.button_bind_remove(self, seq)
884
+ self
885
+ end
886
+ def button_bindinfo(seq=nil)
887
+ @tree.button_bindinfo(self, seq)
888
+ end
889
+
890
+ def close
891
+ @tree.close(self)
892
+ self
893
+ end
894
+ def close_recurse
895
+ @tree.close_recurse(self)
896
+ self
897
+ end
898
+
899
+ def delete
900
+ @tree.delete(self)
901
+ self
902
+ end
903
+
904
+ def entry_activate
905
+ @tree.entry_activate(self)
906
+ self
907
+ end
908
+ def entry_children(first=None, last=None)
909
+ @tree.entry_children(self, first, last)
910
+ end
911
+ def entry_delete(first=None, last=None)
912
+ @tree.entry_delete(self, first, last)
913
+ end
914
+ def entry_before?(tag)
915
+ @tree.entry_before?(self, tag)
916
+ end
917
+ def entry_hidden?
918
+ @tree.entry_before?(self)
919
+ end
920
+ def entry_open?
921
+ @tree.entry_open?(self)
922
+ end
923
+
924
+ def entry_size
925
+ @tree.entry_size(self)
926
+ end
927
+ def entry_size_recurse
928
+ @tree.entry_size_recurse(self)
929
+ end
930
+
931
+ def focus
932
+ @tree.tag_focus(self)
933
+ self
934
+ end
935
+
936
+ def get
937
+ @tree.get(self)
938
+ end
939
+ def get_full
940
+ @tree.get_full(self)
941
+ end
942
+
943
+ def hide
944
+ @tree.hide(self)
945
+ self
946
+ end
947
+
948
+ def index(str)
949
+ @tree.index_at(self, str)
950
+ end
951
+ def index_path(str)
952
+ @tree.index_at_path(self, str)
953
+ end
954
+
955
+ def insert(pos, parent=nil, keys={})
956
+ @tree.insert_at(self, pos, parent, keys)
957
+ end
958
+
959
+ def move_before(dest)
960
+ @tree.move_before(self, dest)
961
+ self
962
+ end
963
+ def move_after(dest)
964
+ @tree.move_after(self, dest)
965
+ self
966
+ end
967
+ def move_into(dest)
968
+ @tree.move_into(self, dest)
969
+ self
970
+ end
971
+
972
+ def open
973
+ @tree.open(self)
974
+ self
975
+ end
976
+ def open_recurse
977
+ @tree.open_recurse(self)
978
+ self
979
+ end
980
+
981
+ def range_to(tag)
982
+ @tree.range(self, tag)
983
+ end
984
+ def range_open_to(tag)
985
+ @tree.range(self, tag)
986
+ end
987
+
988
+ def see
989
+ @tree.see(self)
990
+ self
991
+ end
992
+ def see_anchor(anchor)
993
+ @tree.see_anchor(anchor, self)
994
+ self
995
+ end
996
+
997
+ def selection_anchor
998
+ @tree.selection_anchor(self)
999
+ self
1000
+ end
1001
+ def selection_clear
1002
+ @tree.selection_clear(self)
1003
+ self
1004
+ end
1005
+ def selection_mark
1006
+ @tree.selection_mark(self)
1007
+ self
1008
+ end
1009
+ def selection_include?
1010
+ @tree.selection_include?(self)
1011
+ end
1012
+ def selection_set
1013
+ @tree.selection_set(self)
1014
+ self
1015
+ end
1016
+ def selection_toggle
1017
+ @tree.selection_toggle(self)
1018
+ self
1019
+ end
1020
+
1021
+ def show
1022
+ @tree.show(self)
1023
+ self
1024
+ end
1025
+
1026
+ def sort_once
1027
+ @tree.sort_once(self)
1028
+ self
1029
+ end
1030
+ def sort_once_recurse
1031
+ @tree.sort_once_recurse(self)
1032
+ self
1033
+ end
1034
+
1035
+ def toggle
1036
+ @tree.toggle(self)
1037
+ self
1038
+ end
1039
+ end
1040
+
1041
+ ######################################
1042
+
1043
+ class Tk::BLT::Treeview::Node < TkObject
1044
+ include Tk::BLT::Treeview::TagOrID_Methods
1045
+
1046
+ TreeNodeID_TBL = TkCore::INTERP.create_table
1047
+
1048
+ (TreeNode_ID = ['blt_treeview_node'.freeze, TkUtil.untrust('00000')]).instance_eval{
1049
+ @mutex = Mutex.new
1050
+ def mutex; @mutex; end
1051
+ freeze
1052
+ }
1053
+
1054
+ TkCore::INTERP.init_ip_env{
1055
+ TreeNodeID_TBL.mutex.synchronize{ TreeNodeID_TBL.clear }
1056
+ }
1057
+
1058
+ def self.id2obj(tree, id)
1059
+ tpath = tree.path
1060
+ TreeNodeID_TBL.mutex.synchronize{
1061
+ if TreeNodeID_TBL[tpath]
1062
+ if TreeNodeID_TBL[tpath][id]
1063
+ TreeNodeID_TBL[tpath][id]
1064
+ else
1065
+ begin
1066
+ # self.new(tree, nil, nil, 'node'=>Integer(id))
1067
+ unless (tk_call(@tpath, 'get', id)).empty?
1068
+ id = Integer(id)
1069
+ (obj = self.allocate).instance_eval{
1070
+ @parent = @tree = tree
1071
+ @tpath = @parent.path
1072
+ @path = @id = id
1073
+ TreeNodeID_TBL[@tpath] ||= {}
1074
+ TreeNodeID_TBL[@tpath][@id] = self
1075
+ }
1076
+ obj
1077
+ else
1078
+ id
1079
+ end
1080
+ rescue
1081
+ id
1082
+ end
1083
+ end
1084
+ else
1085
+ id
1086
+ end
1087
+ }
1088
+ end
1089
+
1090
+ def self.new(tree, pos, parent=nil, keys={})
1091
+ if parent.kind_of?(Hash)
1092
+ keys = parent
1093
+ parent = nil
1094
+ end
1095
+
1096
+ keys = _symbolkey2str(keys)
1097
+ tpath = tree.path
1098
+
1099
+ TreeNodeID_TBL.mutex.synchronize{
1100
+ TreeNodeID_TBL[tpath] ||= {}
1101
+ if (id = keys['node']) && (obj = TreeNodeID_TBL[tpath][id])
1102
+ keys.delete('node')
1103
+ tk_call(tree.path, 'move', id, pos, parent) if parent
1104
+ return obj
1105
+ end
1106
+
1107
+ #super(tree, pos, parent, keys)
1108
+ (obj = self.allocate).instance_eval{
1109
+ initialize(tree, pos, parent, keys)
1110
+ TreeNodeID_TBL[tpath][@id] = self
1111
+ }
1112
+ obj
1113
+ }
1114
+ end
1115
+
1116
+ def initialize(tree, pos, parent, keys)
1117
+ @parent = @tree = tree
1118
+ @tpath = @parent.path
1119
+
1120
+ if (id = keys['node'])
1121
+ # if tk_call(@tpath, 'get', id).empty?
1122
+ # fail RuntimeError, "not exist the node '#{id}'"
1123
+ # end
1124
+ @path = @id = id
1125
+ tk_call(@tpath, 'move', @id, pos, tagid(parent)) if parent
1126
+ configure(keys) if keys && ! keys.empty?
1127
+ else
1128
+ name = nil
1129
+ TreeNode_ID.mutex.synchronize{
1130
+ name = TreeNode_ID.join(TkCore::INTERP._ip_id_).freeze
1131
+ TreeNode_ID[1].succ!
1132
+ }
1133
+
1134
+ at = keys.delete['at']
1135
+
1136
+ if parent
1137
+ if parent.kind_of?(Tk::BLT::Treeview::Node) ||
1138
+ parent.kind_of?(Tk::BLT::Treeview::Tag)
1139
+ path = [get_full(parent.id)[0], name]
1140
+ at = nil # ignore 'at' option
1141
+ else
1142
+ path = [parent.to_s, name]
1143
+ end
1144
+ else
1145
+ path = name
1146
+ end
1147
+
1148
+ if at
1149
+ @id = tk_call(@tpath, 'insert', '-at', tagid(at), pos, path, keys)
1150
+ else
1151
+ @id = tk_call(@tpath, 'insert', pos, path, keys)
1152
+ end
1153
+ @path = @id
1154
+ end
1155
+ end
1156
+
1157
+ def id
1158
+ @id
1159
+ end
1160
+ end
1161
+
1162
+ ######################################
1163
+
1164
+ class Tk::BLT::Treeview::Tag < TkObject
1165
+ include Tk::BLT::Treeview::TagOrID_Methods
1166
+
1167
+ TreeTagID_TBL = TkCore::INTERP.create_table
1168
+
1169
+ (TreeTag_ID = ['blt_treeview_tag'.freeze, TkUtil.untrust('00000')]).instance_eval{
1170
+ @mutex = Mutex.new
1171
+ def mutex; @mutex; end
1172
+ freeze
1173
+ }
1174
+
1175
+ TkCore::INTERP.init_ip_env{
1176
+ TreeTagID_TBL.mutex.synchronize{ TreeTagID_TBL.clear }
1177
+ }
1178
+
1179
+ def self.id2obj(tree, name)
1180
+ tpath = tree.path
1181
+ TreeTagID_TBL.mutex.synchronize{
1182
+ if TreeTagID_TBL[tpath]
1183
+ if TreeTagID_TBL[tpath][name]
1184
+ TreeTagID_TBL[tpath][name]
1185
+ else
1186
+ #self.new(tree, name)
1187
+ (obj = self.allocate).instance_eval{
1188
+ @parent = @tree = tree
1189
+ @tpath = @parent.path
1190
+ @path = @id = name
1191
+ TreeTagID_TBL[@tpath] = {} unless TreeTagID_TBL[@tpath]
1192
+ TreeTagID_TBL[@tpath][@id] = self
1193
+ }
1194
+ obj
1195
+ end
1196
+ else
1197
+ id
1198
+ end
1199
+ }
1200
+ end
1201
+
1202
+ def self.new_by_name(tree, name, *ids)
1203
+ TreeTagID_TBL.mutex.synchronize{
1204
+ unless (obj = TreeTagID_TBL[tree.path][name])
1205
+ (obj = self.allocate).instance_eval{
1206
+ initialize(tree, name, ids)
1207
+ TreeTagID_TBL[@tpath] = {} unless TreeTagID_TBL[@tpath]
1208
+ TreeTagID_TBL[@tpath][@id] = self
1209
+ }
1210
+ end
1211
+ obj
1212
+ }
1213
+ end
1214
+
1215
+ def self.new(tree, *ids)
1216
+ TreeTagID_TBL.mutex.synchronize{
1217
+ (obj = self.allocate).instance_eval{
1218
+ if tree.kind_of?(Array)
1219
+ initialize(tree[0], tree[1], ids)
1220
+ else
1221
+ initialize(tree, nil, ids)
1222
+ end
1223
+ TreeTagID_TBL[@tpath] = {} unless TreeTagID_TBL[@tpath]
1224
+ TreeTagID_TBL[@tpath][@id] = self
1225
+ }
1226
+ obj
1227
+ }
1228
+ end
1229
+
1230
+ def initialize(tree, name, ids)
1231
+ @parent = @tree = tree
1232
+ @tpath = @parent.path
1233
+
1234
+ if name
1235
+ @path = @id = name
1236
+ else
1237
+ TreeTag_ID.mutex.synchronize{
1238
+ @path = @id = TreeTag_ID.join(TkCore::INTERP._ip_id_).freeze
1239
+ TreeTag_ID[1].succ!
1240
+ }
1241
+ end
1242
+
1243
+ unless ids.empty?
1244
+ tk_call(@tpath, 'tag', 'add', @id, *(ids.collect{|id| tagid(id)}))
1245
+ end
1246
+ end
1247
+
1248
+ def tagid(tag)
1249
+ if tag.kind_of?(Tk::BLT::Treeview::Node) \
1250
+ || tag.kind_of?(Tk::BLT::Treeview::Tag)
1251
+ tag.id
1252
+ else
1253
+ tag
1254
+ end
1255
+ end
1256
+ private :tagid
1257
+
1258
+ def id
1259
+ @id
1260
+ end
1261
+
1262
+ def add(*ids)
1263
+ tk_call(@tpath, 'tag', 'add', @id, *(ids{|id| tagid(id)}))
1264
+ self
1265
+ end
1266
+
1267
+ def remove(*ids)
1268
+ tk_call(@tpath, 'tag', 'delete', @id, *(ids{|id| tagid(id)}))
1269
+ self
1270
+ end
1271
+
1272
+ def forget
1273
+ tk_call(@tpath, 'tag', 'forget', @id)
1274
+ self
1275
+ end
1276
+
1277
+ def nodes
1278
+ simplelist(tk_call(@tpath, 'tag', 'nodes', @id)).collect{|id|
1279
+ Tk::BLT::Treeview::Node.id2obj(@tree, id)
1280
+ }
1281
+ end
1282
+ end
1283
+
1284
+ class Tk::BLT::Hiertable
1285
+ TkCommandNames = ['::blt::hiertable'.freeze].freeze
1286
+ WidgetClassName = 'Hiertable'.freeze
1287
+ WidgetClassNames[WidgetClassName] ||= self
1288
+ end