tk_as_gem 0.0.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 (345) hide show
  1. data/README +22 -0
  2. data/Rakefile +11 -0
  3. data/VERSION +1 -0
  4. data/ext/ChangeLog.tkextlib +935 -0
  5. data/ext/MANUAL_tcltklib.eng +469 -0
  6. data/ext/MANUAL_tcltklib.eucj +579 -0
  7. data/ext/README.1st +19 -0
  8. data/ext/README.ActiveTcl +49 -0
  9. data/ext/README.fork +34 -0
  10. data/ext/README.macosx-aqua +67 -0
  11. data/ext/README.tcltklib +85 -0
  12. data/ext/depend +2 -0
  13. data/ext/extconf.rb +451 -0
  14. data/ext/lib/README +30 -0
  15. data/ext/lib/multi-tk.rb +3491 -0
  16. data/ext/lib/remote-tk.rb +530 -0
  17. data/ext/lib/tcltk.rb +367 -0
  18. data/ext/lib/tk.rb +5584 -0
  19. data/ext/lib/tk/after.rb +6 -0
  20. data/ext/lib/tk/autoload.rb +414 -0
  21. data/ext/lib/tk/bgerror.rb +29 -0
  22. data/ext/lib/tk/bindtag.rb +138 -0
  23. data/ext/lib/tk/button.rb +30 -0
  24. data/ext/lib/tk/canvas.rb +789 -0
  25. data/ext/lib/tk/canvastag.rb +434 -0
  26. data/ext/lib/tk/checkbutton.rb +30 -0
  27. data/ext/lib/tk/clipboard.rb +75 -0
  28. data/ext/lib/tk/clock.rb +71 -0
  29. data/ext/lib/tk/composite.rb +458 -0
  30. data/ext/lib/tk/console.rb +52 -0
  31. data/ext/lib/tk/dialog.rb +326 -0
  32. data/ext/lib/tk/encodedstr.rb +187 -0
  33. data/ext/lib/tk/entry.rb +119 -0
  34. data/ext/lib/tk/event.rb +542 -0
  35. data/ext/lib/tk/font.rb +2344 -0
  36. data/ext/lib/tk/frame.rb +131 -0
  37. data/ext/lib/tk/grid.rb +279 -0
  38. data/ext/lib/tk/image.rb +275 -0
  39. data/ext/lib/tk/itemconfig.rb +1215 -0
  40. data/ext/lib/tk/itemfont.rb +327 -0
  41. data/ext/lib/tk/kinput.rb +71 -0
  42. data/ext/lib/tk/label.rb +21 -0
  43. data/ext/lib/tk/labelframe.rb +29 -0
  44. data/ext/lib/tk/listbox.rb +282 -0
  45. data/ext/lib/tk/macpkg.rb +78 -0
  46. data/ext/lib/tk/menu.rb +681 -0
  47. data/ext/lib/tk/menubar.rb +131 -0
  48. data/ext/lib/tk/menuspec.rb +275 -0
  49. data/ext/lib/tk/message.rb +22 -0
  50. data/ext/lib/tk/mngfocus.rb +33 -0
  51. data/ext/lib/tk/msgcat.rb +296 -0
  52. data/ext/lib/tk/namespace.rb +551 -0
  53. data/ext/lib/tk/optiondb.rb +377 -0
  54. data/ext/lib/tk/optionobj.rb +212 -0
  55. data/ext/lib/tk/pack.rb +107 -0
  56. data/ext/lib/tk/package.rb +143 -0
  57. data/ext/lib/tk/palette.rb +55 -0
  58. data/ext/lib/tk/panedwindow.rb +258 -0
  59. data/ext/lib/tk/place.rb +128 -0
  60. data/ext/lib/tk/radiobutton.rb +71 -0
  61. data/ext/lib/tk/root.rb +95 -0
  62. data/ext/lib/tk/scale.rb +111 -0
  63. data/ext/lib/tk/scrollable.rb +82 -0
  64. data/ext/lib/tk/scrollbar.rb +177 -0
  65. data/ext/lib/tk/scrollbox.rb +39 -0
  66. data/ext/lib/tk/selection.rb +86 -0
  67. data/ext/lib/tk/spinbox.rb +119 -0
  68. data/ext/lib/tk/tagfont.rb +43 -0
  69. data/ext/lib/tk/text.rb +1596 -0
  70. data/ext/lib/tk/textimage.rb +88 -0
  71. data/ext/lib/tk/textmark.rb +204 -0
  72. data/ext/lib/tk/texttag.rb +318 -0
  73. data/ext/lib/tk/textwindow.rb +154 -0
  74. data/ext/lib/tk/timer.rb +669 -0
  75. data/ext/lib/tk/toplevel.rb +262 -0
  76. data/ext/lib/tk/ttk_selector.rb +76 -0
  77. data/ext/lib/tk/txtwin_abst.rb +39 -0
  78. data/ext/lib/tk/validation.rb +397 -0
  79. data/ext/lib/tk/variable.rb +1765 -0
  80. data/ext/lib/tk/virtevent.rb +139 -0
  81. data/ext/lib/tk/winfo.rb +392 -0
  82. data/ext/lib/tk/winpkg.rb +153 -0
  83. data/ext/lib/tk/wm.rb +552 -0
  84. data/ext/lib/tk/xim.rb +122 -0
  85. data/ext/lib/tkafter.rb +4 -0
  86. data/ext/lib/tkbgerror.rb +4 -0
  87. data/ext/lib/tkcanvas.rb +4 -0
  88. data/ext/lib/tkclass.rb +47 -0
  89. data/ext/lib/tkconsole.rb +4 -0
  90. data/ext/lib/tkdialog.rb +4 -0
  91. data/ext/lib/tkentry.rb +4 -0
  92. data/ext/lib/tkextlib/ICONS.rb +13 -0
  93. data/ext/lib/tkextlib/ICONS/icons.rb +129 -0
  94. data/ext/lib/tkextlib/ICONS/setup.rb +8 -0
  95. data/ext/lib/tkextlib/SUPPORT_STATUS +196 -0
  96. data/ext/lib/tkextlib/blt.rb +187 -0
  97. data/ext/lib/tkextlib/blt/barchart.rb +79 -0
  98. data/ext/lib/tkextlib/blt/bitmap.rb +112 -0
  99. data/ext/lib/tkextlib/blt/busy.rb +82 -0
  100. data/ext/lib/tkextlib/blt/component.rb +2145 -0
  101. data/ext/lib/tkextlib/blt/container.rb +28 -0
  102. data/ext/lib/tkextlib/blt/cutbuffer.rb +23 -0
  103. data/ext/lib/tkextlib/blt/dragdrop.rb +268 -0
  104. data/ext/lib/tkextlib/blt/eps.rb +32 -0
  105. data/ext/lib/tkextlib/blt/graph.rb +67 -0
  106. data/ext/lib/tkextlib/blt/htext.rb +111 -0
  107. data/ext/lib/tkextlib/blt/setup.rb +8 -0
  108. data/ext/lib/tkextlib/blt/spline.rb +23 -0
  109. data/ext/lib/tkextlib/blt/stripchart.rb +74 -0
  110. data/ext/lib/tkextlib/blt/table.rb +399 -0
  111. data/ext/lib/tkextlib/blt/tabnotebook.rb +110 -0
  112. data/ext/lib/tkextlib/blt/tabset.rb +500 -0
  113. data/ext/lib/tkextlib/blt/ted.rb +65 -0
  114. data/ext/lib/tkextlib/blt/tile.rb +21 -0
  115. data/ext/lib/tkextlib/blt/tile/button.rb +16 -0
  116. data/ext/lib/tkextlib/blt/tile/checkbutton.rb +17 -0
  117. data/ext/lib/tkextlib/blt/tile/frame.rb +16 -0
  118. data/ext/lib/tkextlib/blt/tile/label.rb +16 -0
  119. data/ext/lib/tkextlib/blt/tile/radiobutton.rb +17 -0
  120. data/ext/lib/tkextlib/blt/tile/scrollbar.rb +16 -0
  121. data/ext/lib/tkextlib/blt/tile/toplevel.rb +16 -0
  122. data/ext/lib/tkextlib/blt/tree.rb +1058 -0
  123. data/ext/lib/tkextlib/blt/treeview.rb +1272 -0
  124. data/ext/lib/tkextlib/blt/unix_dnd.rb +135 -0
  125. data/ext/lib/tkextlib/blt/vector.rb +256 -0
  126. data/ext/lib/tkextlib/blt/watch.rb +175 -0
  127. data/ext/lib/tkextlib/blt/win_printer.rb +61 -0
  128. data/ext/lib/tkextlib/blt/winop.rb +107 -0
  129. data/ext/lib/tkextlib/bwidget.rb +151 -0
  130. data/ext/lib/tkextlib/bwidget/arrowbutton.rb +21 -0
  131. data/ext/lib/tkextlib/bwidget/bitmap.rb +21 -0
  132. data/ext/lib/tkextlib/bwidget/button.rb +31 -0
  133. data/ext/lib/tkextlib/bwidget/buttonbox.rb +90 -0
  134. data/ext/lib/tkextlib/bwidget/combobox.rb +51 -0
  135. data/ext/lib/tkextlib/bwidget/dialog.rb +182 -0
  136. data/ext/lib/tkextlib/bwidget/dragsite.rb +31 -0
  137. data/ext/lib/tkextlib/bwidget/dropsite.rb +39 -0
  138. data/ext/lib/tkextlib/bwidget/dynamichelp.rb +63 -0
  139. data/ext/lib/tkextlib/bwidget/entry.rb +43 -0
  140. data/ext/lib/tkextlib/bwidget/label.rb +41 -0
  141. data/ext/lib/tkextlib/bwidget/labelentry.rb +80 -0
  142. data/ext/lib/tkextlib/bwidget/labelframe.rb +52 -0
  143. data/ext/lib/tkextlib/bwidget/listbox.rb +358 -0
  144. data/ext/lib/tkextlib/bwidget/mainframe.rb +128 -0
  145. data/ext/lib/tkextlib/bwidget/messagedlg.rb +192 -0
  146. data/ext/lib/tkextlib/bwidget/notebook.rb +166 -0
  147. data/ext/lib/tkextlib/bwidget/pagesmanager.rb +73 -0
  148. data/ext/lib/tkextlib/bwidget/panedwindow.rb +37 -0
  149. data/ext/lib/tkextlib/bwidget/panelframe.rb +57 -0
  150. data/ext/lib/tkextlib/bwidget/passwddlg.rb +44 -0
  151. data/ext/lib/tkextlib/bwidget/progressbar.rb +20 -0
  152. data/ext/lib/tkextlib/bwidget/progressdlg.rb +58 -0
  153. data/ext/lib/tkextlib/bwidget/scrollableframe.rb +40 -0
  154. data/ext/lib/tkextlib/bwidget/scrolledwindow.rb +38 -0
  155. data/ext/lib/tkextlib/bwidget/scrollview.rb +25 -0
  156. data/ext/lib/tkextlib/bwidget/selectcolor.rb +73 -0
  157. data/ext/lib/tkextlib/bwidget/selectfont.rb +86 -0
  158. data/ext/lib/tkextlib/bwidget/separator.rb +20 -0
  159. data/ext/lib/tkextlib/bwidget/setup.rb +8 -0
  160. data/ext/lib/tkextlib/bwidget/spinbox.rb +98 -0
  161. data/ext/lib/tkextlib/bwidget/statusbar.rb +52 -0
  162. data/ext/lib/tkextlib/bwidget/titleframe.rb +33 -0
  163. data/ext/lib/tkextlib/bwidget/tree.rb +453 -0
  164. data/ext/lib/tkextlib/bwidget/widget.rb +129 -0
  165. data/ext/lib/tkextlib/itcl.rb +13 -0
  166. data/ext/lib/tkextlib/itcl/incr_tcl.rb +178 -0
  167. data/ext/lib/tkextlib/itcl/setup.rb +13 -0
  168. data/ext/lib/tkextlib/itk.rb +13 -0
  169. data/ext/lib/tkextlib/itk/incr_tk.rb +446 -0
  170. data/ext/lib/tkextlib/itk/setup.rb +13 -0
  171. data/ext/lib/tkextlib/iwidgets.rb +94 -0
  172. data/ext/lib/tkextlib/iwidgets/buttonbox.rb +120 -0
  173. data/ext/lib/tkextlib/iwidgets/calendar.rb +125 -0
  174. data/ext/lib/tkextlib/iwidgets/canvasprintbox.rb +53 -0
  175. data/ext/lib/tkextlib/iwidgets/canvasprintdialog.rb +38 -0
  176. data/ext/lib/tkextlib/iwidgets/checkbox.rb +129 -0
  177. data/ext/lib/tkextlib/iwidgets/combobox.rb +104 -0
  178. data/ext/lib/tkextlib/iwidgets/dateentry.rb +20 -0
  179. data/ext/lib/tkextlib/iwidgets/datefield.rb +58 -0
  180. data/ext/lib/tkextlib/iwidgets/dialog.rb +20 -0
  181. data/ext/lib/tkextlib/iwidgets/dialogshell.rb +120 -0
  182. data/ext/lib/tkextlib/iwidgets/disjointlistbox.rb +50 -0
  183. data/ext/lib/tkextlib/iwidgets/entryfield.rb +185 -0
  184. data/ext/lib/tkextlib/iwidgets/extbutton.rb +40 -0
  185. data/ext/lib/tkextlib/iwidgets/extfileselectionbox.rb +46 -0
  186. data/ext/lib/tkextlib/iwidgets/extfileselectiondialog.rb +33 -0
  187. data/ext/lib/tkextlib/iwidgets/feedback.rb +35 -0
  188. data/ext/lib/tkextlib/iwidgets/fileselectionbox.rb +46 -0
  189. data/ext/lib/tkextlib/iwidgets/fileselectiondialog.rb +33 -0
  190. data/ext/lib/tkextlib/iwidgets/finddialog.rb +42 -0
  191. data/ext/lib/tkextlib/iwidgets/hierarchy.rb +365 -0
  192. data/ext/lib/tkextlib/iwidgets/hyperhelp.rb +50 -0
  193. data/ext/lib/tkextlib/iwidgets/labeledframe.rb +39 -0
  194. data/ext/lib/tkextlib/iwidgets/labeledwidget.rb +45 -0
  195. data/ext/lib/tkextlib/iwidgets/mainwindow.rb +67 -0
  196. data/ext/lib/tkextlib/iwidgets/menubar.rb +211 -0
  197. data/ext/lib/tkextlib/iwidgets/messagebox.rb +92 -0
  198. data/ext/lib/tkextlib/iwidgets/messagedialog.rb +20 -0
  199. data/ext/lib/tkextlib/iwidgets/notebook.rb +174 -0
  200. data/ext/lib/tkextlib/iwidgets/optionmenu.rb +92 -0
  201. data/ext/lib/tkextlib/iwidgets/panedwindow.rb +133 -0
  202. data/ext/lib/tkextlib/iwidgets/promptdialog.rb +131 -0
  203. data/ext/lib/tkextlib/iwidgets/pushbutton.rb +35 -0
  204. data/ext/lib/tkextlib/iwidgets/radiobox.rb +120 -0
  205. data/ext/lib/tkextlib/iwidgets/scopedobject.rb +24 -0
  206. data/ext/lib/tkextlib/iwidgets/scrolledcanvas.rb +353 -0
  207. data/ext/lib/tkextlib/iwidgets/scrolledframe.rb +59 -0
  208. data/ext/lib/tkextlib/iwidgets/scrolledhtml.rb +58 -0
  209. data/ext/lib/tkextlib/iwidgets/scrolledlistbox.rb +207 -0
  210. data/ext/lib/tkextlib/iwidgets/scrolledtext.rb +564 -0
  211. data/ext/lib/tkextlib/iwidgets/scrolledwidget.rb +20 -0
  212. data/ext/lib/tkextlib/iwidgets/selectionbox.rb +102 -0
  213. data/ext/lib/tkextlib/iwidgets/selectiondialog.rb +92 -0
  214. data/ext/lib/tkextlib/iwidgets/setup.rb +8 -0
  215. data/ext/lib/tkextlib/iwidgets/shell.rb +38 -0
  216. data/ext/lib/tkextlib/iwidgets/spindate.rb +48 -0
  217. data/ext/lib/tkextlib/iwidgets/spinint.rb +30 -0
  218. data/ext/lib/tkextlib/iwidgets/spinner.rb +169 -0
  219. data/ext/lib/tkextlib/iwidgets/spintime.rb +48 -0
  220. data/ext/lib/tkextlib/iwidgets/tabnotebook.rb +180 -0
  221. data/ext/lib/tkextlib/iwidgets/tabset.rb +144 -0
  222. data/ext/lib/tkextlib/iwidgets/timeentry.rb +25 -0
  223. data/ext/lib/tkextlib/iwidgets/timefield.rb +58 -0
  224. data/ext/lib/tkextlib/iwidgets/toolbar.rb +112 -0
  225. data/ext/lib/tkextlib/iwidgets/watch.rb +56 -0
  226. data/ext/lib/tkextlib/pkg_checker.rb +184 -0
  227. data/ext/lib/tkextlib/setup.rb +8 -0
  228. data/ext/lib/tkextlib/tcllib.rb +90 -0
  229. data/ext/lib/tkextlib/tcllib/README +135 -0
  230. data/ext/lib/tkextlib/tcllib/autoscroll.rb +158 -0
  231. data/ext/lib/tkextlib/tcllib/ctext.rb +160 -0
  232. data/ext/lib/tkextlib/tcllib/cursor.rb +97 -0
  233. data/ext/lib/tkextlib/tcllib/datefield.rb +57 -0
  234. data/ext/lib/tkextlib/tcllib/dialog.rb +84 -0
  235. data/ext/lib/tkextlib/tcllib/getstring.rb +134 -0
  236. data/ext/lib/tkextlib/tcllib/history.rb +73 -0
  237. data/ext/lib/tkextlib/tcllib/ico.rb +116 -0
  238. data/ext/lib/tkextlib/tcllib/ip_entry.rb +66 -0
  239. data/ext/lib/tkextlib/tcllib/panelframe.rb +72 -0
  240. data/ext/lib/tkextlib/tcllib/plotchart.rb +886 -0
  241. data/ext/lib/tkextlib/tcllib/ruler.rb +65 -0
  242. data/ext/lib/tkextlib/tcllib/screenruler.rb +68 -0
  243. data/ext/lib/tkextlib/tcllib/scrollwin.rb +61 -0
  244. data/ext/lib/tkextlib/tcllib/setup.rb +8 -0
  245. data/ext/lib/tkextlib/tcllib/style.rb +61 -0
  246. data/ext/lib/tkextlib/tcllib/superframe.rb +51 -0
  247. data/ext/lib/tkextlib/tcllib/swaplist.rb +150 -0
  248. data/ext/lib/tkextlib/tcllib/tablelist.rb +27 -0
  249. data/ext/lib/tkextlib/tcllib/tablelist_core.rb +782 -0
  250. data/ext/lib/tkextlib/tcllib/tablelist_tile.rb +25 -0
  251. data/ext/lib/tkextlib/tcllib/tkpiechart.rb +314 -0
  252. data/ext/lib/tkextlib/tcllib/tooltip.rb +95 -0
  253. data/ext/lib/tkextlib/tcllib/widget.rb +48 -0
  254. data/ext/lib/tkextlib/tclx.rb +13 -0
  255. data/ext/lib/tkextlib/tclx/setup.rb +8 -0
  256. data/ext/lib/tkextlib/tclx/tclx.rb +74 -0
  257. data/ext/lib/tkextlib/tile.rb +419 -0
  258. data/ext/lib/tkextlib/tile/dialog.rb +96 -0
  259. data/ext/lib/tkextlib/tile/setup.rb +8 -0
  260. data/ext/lib/tkextlib/tile/sizegrip.rb +29 -0
  261. data/ext/lib/tkextlib/tile/style.rb +316 -0
  262. data/ext/lib/tkextlib/tile/tbutton.rb +33 -0
  263. data/ext/lib/tkextlib/tile/tcheckbutton.rb +36 -0
  264. data/ext/lib/tkextlib/tile/tcombobox.rb +54 -0
  265. data/ext/lib/tkextlib/tile/tentry.rb +48 -0
  266. data/ext/lib/tkextlib/tile/tframe.rb +33 -0
  267. data/ext/lib/tkextlib/tile/tlabel.rb +33 -0
  268. data/ext/lib/tkextlib/tile/tlabelframe.rb +36 -0
  269. data/ext/lib/tkextlib/tile/tmenubutton.rb +36 -0
  270. data/ext/lib/tkextlib/tile/tnotebook.rb +139 -0
  271. data/ext/lib/tkextlib/tile/tpaned.rb +231 -0
  272. data/ext/lib/tkextlib/tile/tprogressbar.rb +56 -0
  273. data/ext/lib/tkextlib/tile/tradiobutton.rb +36 -0
  274. data/ext/lib/tkextlib/tile/treeview.rb +1239 -0
  275. data/ext/lib/tkextlib/tile/tscale.rb +53 -0
  276. data/ext/lib/tkextlib/tile/tscrollbar.rb +54 -0
  277. data/ext/lib/tkextlib/tile/tseparator.rb +33 -0
  278. data/ext/lib/tkextlib/tile/tsquare.rb +30 -0
  279. data/ext/lib/tkextlib/tkDND.rb +18 -0
  280. data/ext/lib/tkextlib/tkDND/setup.rb +8 -0
  281. data/ext/lib/tkextlib/tkDND/shape.rb +125 -0
  282. data/ext/lib/tkextlib/tkDND/tkdnd.rb +182 -0
  283. data/ext/lib/tkextlib/tkHTML.rb +13 -0
  284. data/ext/lib/tkextlib/tkHTML/htmlwidget.rb +453 -0
  285. data/ext/lib/tkextlib/tkHTML/setup.rb +8 -0
  286. data/ext/lib/tkextlib/tkimg.rb +36 -0
  287. data/ext/lib/tkextlib/tkimg/README +26 -0
  288. data/ext/lib/tkextlib/tkimg/bmp.rb +33 -0
  289. data/ext/lib/tkextlib/tkimg/gif.rb +33 -0
  290. data/ext/lib/tkextlib/tkimg/ico.rb +33 -0
  291. data/ext/lib/tkextlib/tkimg/jpeg.rb +33 -0
  292. data/ext/lib/tkextlib/tkimg/pcx.rb +33 -0
  293. data/ext/lib/tkextlib/tkimg/pixmap.rb +44 -0
  294. data/ext/lib/tkextlib/tkimg/png.rb +33 -0
  295. data/ext/lib/tkextlib/tkimg/ppm.rb +33 -0
  296. data/ext/lib/tkextlib/tkimg/ps.rb +33 -0
  297. data/ext/lib/tkextlib/tkimg/setup.rb +8 -0
  298. data/ext/lib/tkextlib/tkimg/sgi.rb +33 -0
  299. data/ext/lib/tkextlib/tkimg/sun.rb +33 -0
  300. data/ext/lib/tkextlib/tkimg/tga.rb +33 -0
  301. data/ext/lib/tkextlib/tkimg/tiff.rb +33 -0
  302. data/ext/lib/tkextlib/tkimg/window.rb +33 -0
  303. data/ext/lib/tkextlib/tkimg/xbm.rb +33 -0
  304. data/ext/lib/tkextlib/tkimg/xpm.rb +33 -0
  305. data/ext/lib/tkextlib/tktable.rb +14 -0
  306. data/ext/lib/tkextlib/tktable/setup.rb +8 -0
  307. data/ext/lib/tkextlib/tktable/tktable.rb +957 -0
  308. data/ext/lib/tkextlib/tktrans.rb +14 -0
  309. data/ext/lib/tkextlib/tktrans/setup.rb +8 -0
  310. data/ext/lib/tkextlib/tktrans/tktrans.rb +64 -0
  311. data/ext/lib/tkextlib/treectrl.rb +13 -0
  312. data/ext/lib/tkextlib/treectrl/setup.rb +8 -0
  313. data/ext/lib/tkextlib/treectrl/tktreectrl.rb +2461 -0
  314. data/ext/lib/tkextlib/trofs.rb +13 -0
  315. data/ext/lib/tkextlib/trofs/setup.rb +8 -0
  316. data/ext/lib/tkextlib/trofs/trofs.rb +51 -0
  317. data/ext/lib/tkextlib/version.rb +6 -0
  318. data/ext/lib/tkextlib/vu.rb +48 -0
  319. data/ext/lib/tkextlib/vu/bargraph.rb +61 -0
  320. data/ext/lib/tkextlib/vu/charts.rb +53 -0
  321. data/ext/lib/tkextlib/vu/dial.rb +102 -0
  322. data/ext/lib/tkextlib/vu/pie.rb +282 -0
  323. data/ext/lib/tkextlib/vu/setup.rb +8 -0
  324. data/ext/lib/tkextlib/vu/spinbox.rb +22 -0
  325. data/ext/lib/tkextlib/winico.rb +14 -0
  326. data/ext/lib/tkextlib/winico/setup.rb +8 -0
  327. data/ext/lib/tkextlib/winico/winico.rb +224 -0
  328. data/ext/lib/tkfont.rb +4 -0
  329. data/ext/lib/tkmacpkg.rb +4 -0
  330. data/ext/lib/tkmenubar.rb +4 -0
  331. data/ext/lib/tkmngfocus.rb +4 -0
  332. data/ext/lib/tkpalette.rb +4 -0
  333. data/ext/lib/tkscrollbox.rb +4 -0
  334. data/ext/lib/tktext.rb +4 -0
  335. data/ext/lib/tkvirtevent.rb +4 -0
  336. data/ext/lib/tkwinpkg.rb +4 -0
  337. data/ext/old-README.tcltklib.eucj +159 -0
  338. data/ext/stubs.c +531 -0
  339. data/ext/stubs.h +33 -0
  340. data/ext/tcltklib.c +10155 -0
  341. data/ext/tkutil/.cvsignore +3 -0
  342. data/ext/tkutil/depend +1 -0
  343. data/ext/tkutil/extconf.rb +14 -0
  344. data/ext/tkutil/tkutil.c +1789 -0
  345. metadata +418 -0
@@ -0,0 +1,27 @@
1
+ #
2
+ # tkextlib/tcllib/tablelist.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * A multi-column listbox
7
+
8
+ require 'tk'
9
+ require 'tkextlib/tcllib.rb'
10
+
11
+ # check Tile extension :: If already loaded, use tablelist_tile.
12
+ unless defined? Tk::Tcllib::Tablelist_usingTile
13
+ Tk::Tcllib::Tablelist_usingTile = TkPackage.provide('tile')
14
+ end
15
+
16
+ if Tk::Tcllib::Tablelist_usingTile
17
+ # with Tile
18
+ require 'tkextlib/tcllib/tablelist_tile'
19
+
20
+ else
21
+ # without Tile
22
+
23
+ # TkPackage.require('Tablelist', '4.2')
24
+ TkPackage.require('Tablelist')
25
+
26
+ require 'tkextlib/tcllib/tablelist_core'
27
+ end
@@ -0,0 +1,782 @@
1
+ #
2
+ # tkextlib/tcllib/tablelist_core.rb
3
+ #
4
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
5
+ #
6
+ # * Part of tcllib extension
7
+ # * This file is required by 'tkextlib/tcllib/tablelist.rb' or
8
+ # 'tkextlib/tcllib/tablelist_tile.rb'.
9
+ #
10
+
11
+ module Tk
12
+ module Tcllib
13
+ class Tablelist < TkWindow
14
+ if Tk::Tcllib::Tablelist_usingTile
15
+ PACKAGE_NAME = 'Tablelist_tile'.freeze
16
+ else
17
+ PACKAGE_NAME = 'Tablelist'.freeze
18
+ end
19
+ def self.package_name
20
+ PACKAGE_NAME
21
+ end
22
+
23
+ def self.package_version
24
+ begin
25
+ TkPackage.require(self.package_name)
26
+ rescue
27
+ ''
28
+ end
29
+ end
30
+
31
+ def self.use_Tile?
32
+ (Tk::Tcllib::Tablelist_usingTile)? true: false
33
+ end
34
+ end
35
+ TableList = Tablelist
36
+ end
37
+ end
38
+
39
+ module Tk::Tcllib::TablelistItemConfig
40
+ include TkItemConfigMethod
41
+
42
+ def _to_idx(idx)
43
+ if idx.kind_of?(Array)
44
+ idx.collect{|elem| _get_eval_string(elem)}.join(',')
45
+ else
46
+ idx
47
+ end
48
+ end
49
+ def _from_idx(idx)
50
+ return idx unless idx.kind_of?(String)
51
+
52
+ if idx[0] == ?@ # '@x,y'
53
+ idx
54
+ elsif idx =~ /([^,]+),([^,]+)/
55
+ row = $1, column = $2
56
+ [num_or_str(row), num_or_str(column)]
57
+ else
58
+ num_or_str(idx)
59
+ end
60
+ end
61
+ private :_to_idx, :_from_idx
62
+
63
+ def __item_cget_cmd(mixed_id)
64
+ [self.path, mixed_id[0] + 'cget', _to_idx(mixed_id[1])]
65
+ end
66
+ def __item_config_cmd(mixed_id)
67
+ [self.path, mixed_id[0] + 'configure', _to_idx(mixed_id[1])]
68
+ end
69
+
70
+ def cell_cget(tagOrId, option)
71
+ itemcget(['cell', tagOrId], option)
72
+ end
73
+ def cell_cget_strict(tagOrId, option)
74
+ itemcget_strict(['cell', tagOrId], option)
75
+ end
76
+ def cell_configure(tagOrId, slot, value=None)
77
+ itemconfigure(['cell', tagOrId], slot, value)
78
+ end
79
+ def cell_configinfo(tagOrId, slot=nil)
80
+ itemconfiginfo(['cell', tagOrId], slot)
81
+ end
82
+ def current_cell_configinfo(tagOrId, slot=nil)
83
+ current_itemconfiginfo(['cell', tagOrId], slot)
84
+ end
85
+ alias cellcget cell_cget
86
+ alias cellcget_strict cell_cget_strict
87
+ alias cellconfigure cell_configure
88
+ alias cellconfiginfo cell_configinfo
89
+ alias current_cellconfiginfo current_cell_configinfo
90
+
91
+ def column_cget(tagOrId, option)
92
+ itemcget(['column', tagOrId], option)
93
+ end
94
+ def column_cget_strict(tagOrId, option)
95
+ itemcget_strict(['column', tagOrId], option)
96
+ end
97
+ def column_configure(tagOrId, slot, value=None)
98
+ itemconfigure(['column', tagOrId], slot, value)
99
+ end
100
+ def column_configinfo(tagOrId, slot=nil)
101
+ itemconfiginfo(['column', tagOrId], slot)
102
+ end
103
+ def current_column_configinfo(tagOrId, slot=nil)
104
+ current_itemconfiginfo(['column', tagOrId], slot)
105
+ end
106
+ alias columncget column_cget
107
+ alias columncget_strict column_cget_strict
108
+ alias columnconfigure column_configure
109
+ alias columnconfiginfo column_configinfo
110
+ alias current_columnconfiginfo current_column_configinfo
111
+
112
+ def row_cget(tagOrId, option)
113
+ itemcget(['row', tagOrId], option)
114
+ end
115
+ def row_cget_strict(tagOrId, option)
116
+ itemcget_strict(['row', tagOrId], option)
117
+ end
118
+ def row_configure(tagOrId, slot, value=None)
119
+ itemconfigure(['row', tagOrId], slot, value)
120
+ end
121
+ def row_configinfo(tagOrId, slot=nil)
122
+ itemconfiginfo(['row', tagOrId], slot)
123
+ end
124
+ def current_row_configinfo(tagOrId, slot=nil)
125
+ current_itemconfiginfo(['row', tagOrId], slot)
126
+ end
127
+ alias rowcget row_cget
128
+ alias rowcget_strict row_cget_strict
129
+ alias rowconfigure row_configure
130
+ alias rowconfiginfo row_configinfo
131
+ alias current_rowconfiginfo current_row_configinfo
132
+
133
+ private :itemcget, :itemcget_strict
134
+ private :itemconfigure, :itemconfiginfo, :current_itemconfiginfo
135
+ end
136
+
137
+ class Tk::Tcllib::Tablelist
138
+ include Tk::Tcllib::TablelistItemConfig
139
+ include Scrollable
140
+
141
+ TkCommandNames = ['::tablelist::tablelist'.freeze].freeze
142
+ WidgetClassName = 'Tablelist'.freeze
143
+ WidgetClassNames[WidgetClassName] = self
144
+
145
+ def create_self(keys)
146
+ if keys and keys != None
147
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
148
+ *hash_kv(keys, true))
149
+ else
150
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
151
+ end
152
+ end
153
+ private :create_self
154
+
155
+ ##########################
156
+
157
+ def __numval_optkeys
158
+ super() + ['titlecolumns']
159
+ end
160
+ private :__numval_optkeys
161
+
162
+ def __strval_optkeys
163
+ super() + ['snipstring']
164
+ end
165
+ private :__strval_optkeys
166
+
167
+ def __boolval_optkeys
168
+ super() + [
169
+ 'forceeditendcommand', 'movablecolumns', 'movablerows',
170
+ 'protecttitlecolumns', 'resizablecolumns',
171
+ 'showarrow', 'showlabels', 'showseparators'
172
+ ]
173
+ end
174
+ private :__boolval_optkeys
175
+
176
+ def __listval_optkeys
177
+ super() + ['columns']
178
+ end
179
+ private :__listval_optkeys
180
+
181
+ def __tkvariable_optkeys
182
+ super() + ['listvariable']
183
+ end
184
+ private :__tkvariable_optkeys
185
+
186
+ def __val2ruby_optkeys # { key=>proc, ... }
187
+ # The method is used to convert a opt-value to a ruby's object.
188
+ # When get the value of the option "key", "proc.call(value)" is called.
189
+ super().update('stretch'=>proc{|v| (v == 'all')? v: simplelist(v)})
190
+ end
191
+ private :__val2ruby_optkeys
192
+
193
+ def __ruby2val_optkeys # { key=>proc, ... }
194
+ # The method is used to convert a ruby's object to a opt-value.
195
+ # When set the value of the option "key", "proc.call(value)" is called.
196
+ # That is, "-#{key} #{proc.call(value)}".
197
+ super().update('stretch'=>proc{|v|
198
+ (v.kind_of?(Array))? v.collect{|e| _to_idx(e)}: v
199
+ })
200
+ end
201
+ private :__ruby2val_optkeys
202
+
203
+ def __font_optkeys
204
+ super() + ['labelfont']
205
+ end
206
+ private :__font_optkeys
207
+
208
+ ##########################
209
+
210
+ def __item_strval_optkeys(id)
211
+ if id[0] == 'cell'
212
+ super(id) + ['title']
213
+ else
214
+ super(id) - ['text'] + ['title']
215
+ end
216
+ end
217
+ private :__item_strval_optkeys
218
+
219
+ def __item_boolval_optkeys(id)
220
+ super(id) + [
221
+ 'editable', 'hide', 'resizable', 'showarrow', 'stretchable',
222
+ ]
223
+ end
224
+ private :__item_boolval_optkeys
225
+
226
+ def __item_listval_optkeys(id)
227
+ if id[0] == 'cell'
228
+ super(id)
229
+ else
230
+ super(id) + ['text']
231
+ end
232
+ end
233
+ private :__item_listval_optkeys
234
+
235
+ def __item_font_optkeys(id)
236
+ # maybe need to override
237
+ super(id) + ['labelfont']
238
+ end
239
+ private :__item_font_optkeys
240
+
241
+ ##########################
242
+
243
+ def activate(index)
244
+ tk_send('activate', _to_idx(index))
245
+ self
246
+ end
247
+
248
+ def activate_cell(index)
249
+ tk_send('activatecell', _to_idx(index))
250
+ self
251
+ end
252
+ alias activatecell activate_cell
253
+
254
+ def get_attrib(name=nil)
255
+ if name && name != None
256
+ tk_send('attrib', name)
257
+ else
258
+ ret = []
259
+ lst = simplelist(tk_send('attrib'))
260
+ until lst.empty?
261
+ ret << ( [lst.shift] << lst.shift )
262
+ end
263
+ ret
264
+ end
265
+ end
266
+ def set_attrib(*args)
267
+ tk_send('attrib', *(args.flatten))
268
+ self
269
+ end
270
+
271
+ def bbox(index)
272
+ list(tk_send('bbox', _to_idx(index)))
273
+ end
274
+
275
+ def bodypath
276
+ window(tk_send('bodypath'))
277
+ end
278
+
279
+ def bodytag
280
+ TkBindTag.new_by_name(tk_send('bodytag'))
281
+ end
282
+
283
+ def cancel_editing
284
+ tk_send('cancelediting')
285
+ self
286
+ end
287
+ alias cancelediting cancel_editing
288
+
289
+ def cellindex(idx)
290
+ _from_idx(tk_send('cellindex', _to_idx(idx)))
291
+ end
292
+
293
+ def cellselection_anchor(idx)
294
+ tk_send('cellselection', 'anchor', _to_idx(idx))
295
+ self
296
+ end
297
+
298
+ def cellselection_clear(first, last=nil)
299
+ if first.kind_of?(Array)
300
+ tk_send('cellselection', 'clear', first.collect{|idx| _to_idx(idx)})
301
+ else
302
+ first = _to_idx(first)
303
+ last = (last)? _to_idx(last): first
304
+ tk_send('cellselection', 'clear', first, last)
305
+ end
306
+ self
307
+ end
308
+
309
+ def cellselection_includes(idx)
310
+ bool(tk_send('cellselection', 'includes', _to_idx(idx)))
311
+ end
312
+
313
+ def cellselection_set(first, last=nil)
314
+ if first.kind_of?(Array)
315
+ tk_send('cellselection', 'set', first.collect{|idx| _to_idx(idx)})
316
+ else
317
+ first = _to_idx(first)
318
+ last = (last)? _to_idx(last): first
319
+ tk_send('cellselection', 'set', first, last)
320
+ end
321
+ self
322
+ end
323
+
324
+ def columncount
325
+ number(tk_send('columncount'))
326
+ end
327
+
328
+ def columnindex(idx)
329
+ number(tk_send('columnindex', _to_idx(idx)))
330
+ end
331
+
332
+ def containing(y)
333
+ idx = num_or_str(tk_send('containing', y))
334
+ (idx.kind_of?(Fixnum) && idx < 0)? nil: idx
335
+ end
336
+
337
+ def containing_cell(x, y)
338
+ idx = _from_idx(tk_send('containingcell', x, y))
339
+ if idx.kind_of?(Array)
340
+ [
341
+ ((idx[0].kind_of?(Fixnum) && idx[0] < 0)? nil: idx[0]),
342
+ ((idx[1].kind_of?(Fixnum) && idx[1] < 0)? nil: idx[1])
343
+ ]
344
+ else
345
+ idx
346
+ end
347
+ end
348
+ alias containingcell containing_cell
349
+
350
+ def containing_column(x)
351
+ idx = num_or_str(tk_send('containingcolumn', x))
352
+ (idx.kind_of?(Fixnum) && idx < 0)? nil: idx
353
+ end
354
+ alias containingcolumn containing_column
355
+
356
+ def curcellselection
357
+ simplelist(tk_send('curcellselection')).collect!{|idx| _from_idx(idx)}
358
+ end
359
+
360
+ def curselection
361
+ list(tk_send('curselection'))
362
+ end
363
+
364
+ def delete_items(first, last=nil)
365
+ if first.kind_of?(Array)
366
+ tk_send('delete', first.collect{|idx| _to_idx(idx)})
367
+ else
368
+ first = _to_idx(first)
369
+ last = (last)? _to_idx(last): first
370
+ tk_send('delete', first, last)
371
+ end
372
+ self
373
+ end
374
+ alias delete delete_items
375
+ alias deleteitems delete_items
376
+
377
+ def delete_columns(first, last=nil)
378
+ if first.kind_of?(Array)
379
+ tk_send('deletecolumns', first.collect{|idx| _to_idx(idx)})
380
+ else
381
+ first = _to_idx(first)
382
+ last = (last)? _to_idx(last): first
383
+ tk_send('deletecolumns', first, last)
384
+ end
385
+ self
386
+ end
387
+ alias deletecolumns delete_columns
388
+
389
+ def edit_cell(idx)
390
+ tk_send('editcell', _to_idx(idx))
391
+ self
392
+ end
393
+ alias editcell edit_cell
394
+
395
+ def editwinpath
396
+ window(tk_send('editwinpath'))
397
+ end
398
+
399
+ def entrypath
400
+ window(tk_send('entrypath'))
401
+ end
402
+
403
+ def fill_column(idx, txt)
404
+ tk_send('fillcolumn', _to_idx(idx), txt)
405
+ self
406
+ end
407
+ alias fillcolumn fill_column
408
+
409
+ def finish_editing
410
+ tk_send('finishediting')
411
+ self
412
+ end
413
+ alias finishediting finish_editing
414
+
415
+ def get(first, last=nil)
416
+ if first.kind_of?(Array)
417
+ simplelist(tk_send('get', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
418
+ else
419
+ first = _to_idx(first)
420
+ last = (last)? _to_idx(last): first
421
+ simplelist(tk_send('get', first, last))
422
+ end
423
+ end
424
+
425
+ def get_cells(first, last=nil)
426
+ if first.kind_of?(Array)
427
+ simplelist(tk_send('getcells', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
428
+ else
429
+ first = _to_idx(first)
430
+ last = (last)? _to_idx(last): first
431
+ simplelist(tk_send('getcells', first, last))
432
+ end
433
+ end
434
+ alias getcells get_cells
435
+
436
+ def get_columns(first, last=nil)
437
+ if first.kind_of?(Array)
438
+ simplelist(tk_send('getcolumns', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
439
+ else
440
+ first = _to_idx(first)
441
+ last = (last)? _to_idx(last): first
442
+ simplelist(tk_send('getcolumns', first, last))
443
+ end
444
+ end
445
+ alias getcolumns get_columns
446
+
447
+ def get_keys(first, last=nil)
448
+ if first.kind_of?(Array)
449
+ simplelist(tk_send('getkeys', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
450
+ else
451
+ first = _to_idx(first)
452
+ last = (last)? _to_idx(last): first
453
+ simplelist(tk_send('getkeys', first, last))
454
+ end
455
+ end
456
+ alias getkeys get_keys
457
+
458
+ def imagelabelpath(idx)
459
+ window(tk_send('imagelabelpath', _to_idx(idx)))
460
+ end
461
+
462
+ def index(idx)
463
+ number(tk_send('index', _to_idx(idx)))
464
+ end
465
+
466
+ def insert(idx, *items)
467
+ tk_send('insert', _to_idx(idx), *items)
468
+ self
469
+ end
470
+
471
+ def insert_columnlist(idx, columnlist)
472
+ tk_send('insertcolumnlist', _to_idx(idx), columnlist)
473
+ self
474
+ end
475
+ alias insertcolumnlist insert_columnlist
476
+
477
+ def insert_columns(idx, *args)
478
+ tk_send('insertcolums', _to_idx(idx), *args)
479
+ self
480
+ end
481
+ alias insertcolumns insert_columns
482
+
483
+ def insert_list(idx, list)
484
+ tk_send('insertlist', _to_idx(idx), list)
485
+ self
486
+ end
487
+ alias insertlist insert_list
488
+
489
+ def itemlistvar
490
+ TkVarAccess.new(tk_send('itemlistvar'))
491
+ end
492
+
493
+ def labelpath(idx)
494
+ window(tk_send('labelpath', _to_idx(idx)))
495
+ end
496
+
497
+ def labels
498
+ simplelist(tk_send('labels'))
499
+ end
500
+
501
+ def move(src, target)
502
+ tk_send('move', _to_idx(src), _to_idx(target))
503
+ self
504
+ end
505
+
506
+ def move_column(src, target)
507
+ tk_send('movecolumn', _to_idx(src), _to_idx(target))
508
+ self
509
+ end
510
+ alias movecolumn move_column
511
+
512
+ def nearest(y)
513
+ _from_idx(tk_send('nearest', y))
514
+ end
515
+
516
+ def nearest_cell(x, y)
517
+ _from_idx(tk_send('nearestcell', x, y))
518
+ end
519
+ alias nearestcell nearest_cell
520
+
521
+ def nearest_column(x)
522
+ _from_idx(tk_send('nearestcolumn', x))
523
+ end
524
+ alias nearestcolumn nearest_column
525
+
526
+ def reject_input
527
+ tk_send('rejectinput')
528
+ self
529
+ end
530
+ alias rejectinput reject_input
531
+
532
+ def reset_sortinfo
533
+ tk_send('resetsortinfo')
534
+ self
535
+ end
536
+ alias resetsortinfo reset_sortinfo
537
+
538
+ def scan_mark(x, y)
539
+ tk_send('scan', 'mark', x, y)
540
+ self
541
+ end
542
+
543
+ def scan_dragto(x, y)
544
+ tk_send('scan', 'dragto', x, y)
545
+ self
546
+ end
547
+
548
+ def see(idx)
549
+ tk_send('see', _to_idx(idx))
550
+ self
551
+ end
552
+
553
+ def see_cell(idx)
554
+ tk_send('seecell', _to_idx(idx))
555
+ self
556
+ end
557
+ alias seecell see_cell
558
+
559
+ def see_column(idx)
560
+ tk_send('seecolumn', _to_idx(idx))
561
+ self
562
+ end
563
+ alias seecolumn see_column
564
+
565
+ def selection_anchor(idx)
566
+ tk_send('selection', 'anchor', _to_idx(idx))
567
+ self
568
+ end
569
+
570
+ def selection_clear(first, last=nil)
571
+ if first.kind_of?(Array)
572
+ tk_send('selection', 'clear', first.collect{|idx| _to_idx(idx)})
573
+ else
574
+ first = _to_idx(first)
575
+ last = (last)? _to_idx(last): first
576
+ tk_send('selection', 'clear', first, last)
577
+ end
578
+ self
579
+ end
580
+
581
+ def selection_includes(idx)
582
+ bool(tk_send('selection', 'includes', _to_idx(idx)))
583
+ end
584
+
585
+ def selection_set(first, last=nil)
586
+ if first.kind_of?(Array)
587
+ tk_send('selection', 'set', first.collect{|idx| _to_idx(idx)})
588
+ else
589
+ first = _to_idx(first)
590
+ last = (last)? _to_idx(last): first
591
+ tk_send('selection', 'set', first, last)
592
+ end
593
+ self
594
+ end
595
+
596
+ def separatorpath(idx=nil)
597
+ if idx
598
+ window(tk_send('separatorpath', _to_idx(idx)))
599
+ else
600
+ window(tk_send('separatorpath'))
601
+ end
602
+ end
603
+
604
+ def separators
605
+ simplelist(tk_send('separators')).collect!{|w| window(w)}
606
+ end
607
+
608
+ def size
609
+ number(tk_send('size'))
610
+ end
611
+
612
+ def sort(order=nil)
613
+ if order
614
+ order = order.to_s
615
+ order = '-' << order if order[0] != ?-
616
+ if order.length < 2
617
+ order = nil
618
+ end
619
+ end
620
+ if order
621
+ tk_send('sort', order)
622
+ else
623
+ tk_send('sort')
624
+ end
625
+ self
626
+ end
627
+ def sort_increasing
628
+ tk_send('sort', '-increasing')
629
+ self
630
+ end
631
+ def sort_decreasing
632
+ tk_send('sort', '-decreasing')
633
+ self
634
+ end
635
+
636
+ DEFAULT_sortByColumn_cmd = '::tablelist::sortByColumn'
637
+
638
+ def sort_by_column(idx, order=nil)
639
+ if order
640
+ order = order.to_s
641
+ order = '-' << order if order[0] != ?-
642
+ if order.length < 2
643
+ order = nil
644
+ end
645
+ end
646
+ if order
647
+ tk_send('sortbycolumn', _to_idx(idx), order)
648
+ else
649
+ tk_send('sortbycolumn', _to_idx(idx))
650
+ end
651
+ self
652
+ end
653
+ def sort_by_column_increasing(idx)
654
+ tk_send('sortbycolumn', _to_idx(idx), '-increasing')
655
+ self
656
+ end
657
+ def sort_by_column_decreasing(idx)
658
+ tk_send('sortbycolumn', _to_idx(idx), '-decreasing')
659
+ self
660
+ end
661
+
662
+ def sortcolumn
663
+ idx = num_or_str(tk_send('sortcolum'))
664
+ (idx.kind_of?(Fixnum) && idx < 0)? nil: idx
665
+ end
666
+
667
+ def sortorder
668
+ tk_send('sortorder')
669
+ end
670
+
671
+ def toggle_visibility(first, last=nil)
672
+ if first.kind_of?(Array)
673
+ tk_send('togglevisibility', first.collect{|idx| _to_idx(idx)})
674
+ else
675
+ first = _to_idx(first)
676
+ last = (last)? _to_idx(last): first
677
+ tk_send('togglevisibility', first, last)
678
+ end
679
+ self
680
+ end
681
+ alias togglevisibility toggle_visibility
682
+
683
+ def windowpath(idx)
684
+ window(tk_send('windowpath', _to_idx(idx)))
685
+ end
686
+ end
687
+
688
+ class << Tk::Tcllib::Tablelist
689
+ ############################################################
690
+ # helper commands
691
+ def getTablelistPath(descendant)
692
+ window(Tk.tk_call('::tablelist::getTablelistPath', descendant))
693
+ end
694
+
695
+ def convEventFields(descendant, x, y)
696
+ window(Tk.tk_call('::tablelist::convEventFields', descendant, x, y))
697
+ end
698
+
699
+
700
+ ############################################################
701
+ # with the BWidget package
702
+ def addBWidgetEntry(name=None)
703
+ Tk.tk_call('::tablelist::addBWidgetEntry', name)
704
+ end
705
+
706
+ def addBWidgetSpinBox(name=None)
707
+ Tk.tk_call('::tablelist::addBWidgetSpinBox', name)
708
+ end
709
+
710
+ def addBWidgetComboBox(name=None)
711
+ Tk.tk_call('::tablelist::addBWidgetComboBox', name)
712
+ end
713
+
714
+
715
+ ############################################################
716
+ # with the Iwidgets ([incr Widgets]) package
717
+ def addIncrEntryfield(name=None)
718
+ Tk.tk_call('::tablelist::addIncrEntry', name)
719
+ end
720
+
721
+ def addIncrDateTimeWidget(type, seconds=false, name=None)
722
+ # type := 'datefield'|'dateentry'|timefield'|'timeentry'
723
+ if seconds && seconds != None
724
+ seconds = '-seconds'
725
+ else
726
+ seconds = None
727
+ end
728
+ Tk.tk_call('::tablelist::addDateTimeWidget', type, seconds, name)
729
+ end
730
+
731
+ def addIncrSpinner(name=None)
732
+ Tk.tk_call('::tablelist::addIncrSpinner', name)
733
+ end
734
+
735
+ def addIncrSpinint(name=None)
736
+ Tk.tk_call('::tablelist::addIncrSpinint', name)
737
+ end
738
+
739
+ def addIncrCombobox(name=None)
740
+ Tk.tk_call('::tablelist::addIncrCombobox', name)
741
+ end
742
+
743
+
744
+ ############################################################
745
+ # with Bryan Oakley's combobox package
746
+ def addOakleyCombobox(name=None)
747
+ Tk.tk_call('::tablelist::addOakleyCombobox', name)
748
+ end
749
+
750
+ ############################################################
751
+ # with the multi-entry package Mentry is a library extension
752
+ def addDateMentry(format, separator, gmt=false, name=None)
753
+ if gmt && gmt != None
754
+ gmt = '-gmt'
755
+ else
756
+ gmt = None
757
+ end
758
+ Tk.tk_call('::tablelist::addDateMentry', format, separator, gmt, name)
759
+ end
760
+
761
+ def addTimeMentry(format, separator, gmt=false, name=None)
762
+ if gmt && gmt != None
763
+ gmt = '-gmt'
764
+ else
765
+ gmt = None
766
+ end
767
+ Tk.tk_call('::tablelist::addTimeMentry', format, separator, gmt, name)
768
+ end
769
+
770
+ def addFixedPointMentry(count1, count2, comma=false, name=None)
771
+ if comma && comma != None
772
+ comma = '-comma'
773
+ else
774
+ comma = None
775
+ end
776
+ Tk.tk_call('::tablelist::addFixedPoingMentry', count1, count2, comma, name)
777
+ end
778
+
779
+ def addIPAddrMentry(name=None)
780
+ Tk.tk_call('::tablelist::addIPAddrMentry', name)
781
+ end
782
+ end