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,33 @@
1
+ #
2
+ # TkImg - format 'tga'
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tkimg/setup.rb'
12
+
13
+ # TkPackage.require('img::tga', '1.3')
14
+ TkPackage.require('img::tga')
15
+
16
+ module Tk
17
+ module Img
18
+ module TGA
19
+ PACKAGE_NAME = 'img::tga'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('img::tga')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ #
2
+ # TkImg - format 'tiff'
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tkimg/setup.rb'
12
+
13
+ # TkPackage.require('img::tiff', '1.3')
14
+ TkPackage.require('img::tiff')
15
+
16
+ module Tk
17
+ module Img
18
+ module TIFF
19
+ PACKAGE_NAME = 'img::tiff'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('img::tiff')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ #
2
+ # TkImg - format 'window'
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tkimg/setup.rb'
12
+
13
+ # TkPackage.require('img::window', '1.3')
14
+ TkPackage.require('img::window')
15
+
16
+ module Tk
17
+ module Img
18
+ module WINDOW
19
+ PACKAGE_NAME = 'img::window'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('img::window')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ #
2
+ # TkImg - format 'xbm'
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tkimg/setup.rb'
12
+
13
+ # TkPackage.require('img::xbm', '1.3')
14
+ TkPackage.require('img::xbm')
15
+
16
+ module Tk
17
+ module Img
18
+ module XBM
19
+ PACKAGE_NAME = 'img::xbm'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('img::xbm')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ #
2
+ # TkImg - format 'xpm'
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tkimg/setup.rb'
12
+
13
+ # TkPackage.require('img::xpm', '1.3')
14
+ TkPackage.require('img::xpm')
15
+
16
+ module Tk
17
+ module Img
18
+ module XPM
19
+ PACKAGE_NAME = 'img::xpm'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('img::xpm')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,14 @@
1
+ #
2
+ # TkTable support
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tktable/setup.rb'
12
+
13
+ # load library
14
+ require 'tkextlib/tktable/tktable'
@@ -0,0 +1,8 @@
1
+ #
2
+ # setup.rb -- setup script before calling TkPackage.require()
3
+ #
4
+ # If you need some setup operations (for example, add a library path
5
+ # to the library search path) before using Tcl/Tk library packages
6
+ # wrapped by Ruby scripts in this directory, please write the setup
7
+ # operations in this file.
8
+ #
@@ -0,0 +1,957 @@
1
+ #
2
+ # tkextlib/tktable/tktable.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/validation'
8
+
9
+ # call setup script for general 'tkextlib' libraries
10
+ require 'tkextlib/setup.rb'
11
+
12
+ # call setup script
13
+ require 'tkextlib/tktable/setup.rb'
14
+
15
+ # TkPackage.require('Tktable', '2.8')
16
+ TkPackage.require('Tktable')
17
+
18
+ module Tk
19
+ class TkTable < TkWindow
20
+ PACKAGE_NAME = 'Tktable'.freeze
21
+ def self.package_name
22
+ PACKAGE_NAME
23
+ end
24
+
25
+ def self.package_version
26
+ begin
27
+ TkPackage.require('Tktable')
28
+ rescue
29
+ ''
30
+ end
31
+ end
32
+
33
+ class CellTag < TkObject
34
+ end
35
+
36
+ module ConfigMethod
37
+ end
38
+ end
39
+ end
40
+
41
+ module Tk::TkTable::ConfigMethod
42
+ include TkItemConfigMethod
43
+
44
+ def __item_cget_cmd(id) # id := [ type, tagOrId ]
45
+ [self.path, id[0], 'cget', id[1]]
46
+ end
47
+ private :__item_cget_cmd
48
+
49
+ def __item_config_cmd(id) # id := [ type, tagOrId ]
50
+ [self.path, id[0], 'configure', id[1]]
51
+ end
52
+ private :__item_config_cmd
53
+
54
+ def __item_pathname(id)
55
+ if id.kind_of?(Array)
56
+ id = tagid(id[1])
57
+ end
58
+ [self.path, id].join(';')
59
+ end
60
+ private :__item_pathname
61
+
62
+ def __item_boolval_optkeys(id)
63
+ super(id) << 'multiline' << 'showtext' << 'wrap'
64
+ end
65
+ private :__item_boolval_optkeys
66
+
67
+ def __item_strval_optkeys(id)
68
+ super(id) << 'ellipsis'
69
+ end
70
+ private :__item_strval_optkeys
71
+
72
+ def __item_val2ruby_optkeys(id) # { key=>method, ... }
73
+ super(id).update('window'=>proc{|v| window(v)})
74
+ end
75
+ private :__item_val2ruby_optkeys
76
+
77
+ def tag_cget(tagOrId, option)
78
+ itemcget(['tag', tagid(tagOrId)], option)
79
+ end
80
+ def tag_cget_strict(tagOrId, option)
81
+ itemcget_strict(['tag', tagid(tagOrId)], option)
82
+ end
83
+ def tag_configure(tagOrId, slot, value=None)
84
+ itemconfigure(['tag', tagid(tagOrId)], slot, value)
85
+ end
86
+ def tag_configinfo(tagOrId, slot=nil)
87
+ itemconfiginfo(['tag', tagid(tagOrId)], slot)
88
+ end
89
+ def current_tag_configinfo(tagOrId, slot=nil)
90
+ current_itemconfiginfo(['tag', tagid(tagOrId)], slot)
91
+ end
92
+
93
+ def window_cget(tagOrId, option)
94
+ itemcget(['window', tagid(tagOrId)], option)
95
+ end
96
+ def window_cget_strict(tagOrId, option)
97
+ itemcget_strict(['window', tagid(tagOrId)], option)
98
+ end
99
+ def window_configure(tagOrId, slot, value=None)
100
+ if slot == :window || slot == 'window'
101
+ value = _epath(value)
102
+ elsif slot.kind_of?(Hash)
103
+ if slot.key?(:window) || slot.key?('window')
104
+ slot = _symbolkey2str(slot)
105
+ slot['window'] = _epath(slot['window'])
106
+ end
107
+ end
108
+ itemconfigure(['window', tagid(tagOrId)], slot, value)
109
+ end
110
+ def window_configinfo(tagOrId, slot=nil)
111
+ itemconfiginfo(['window', tagid(tagOrId)], slot)
112
+ end
113
+ def current_window_configinfo(tagOrId, slot=nil)
114
+ current_itemconfiginfo(['window', tagid(tagOrId)], slot)
115
+ end
116
+
117
+ private :itemcget, :itemcget_strict
118
+ private :itemconfigure, :itemconfiginfo, :current_itemconfiginfo
119
+ end
120
+
121
+ #####################################################
122
+
123
+ class Tk::TkTable::CellTag
124
+ include TkTreatTagFont
125
+
126
+ CellTagID_TBL = TkCore::INTERP.create_table
127
+
128
+ (CellTag_ID = ['tktbl:celltag'.freeze, '00000'.taint]).instance_eval{
129
+ @mutex = Mutex.new
130
+ def mutex; @mutex; end
131
+ freeze
132
+ }
133
+
134
+ TkCore::INTERP.init_ip_env{
135
+ CellTagID_TBL.mutex.synchronize{ CellTagID_TBL.clear }
136
+ }
137
+
138
+ def self.id2obj(table, id)
139
+ tpath = table.path
140
+ CellTagID_TBL.mutex.synchronize{
141
+ if CellTagID_TBL[tpath]
142
+ CellTagID_TBL[tpath][id]? CellTagID_TBL[tpath][id] : id
143
+ else
144
+ id
145
+ end
146
+ }
147
+ end
148
+
149
+ def initialize(parent, keys=nil)
150
+ @parent = @t = parent
151
+ @tpath - parent.path
152
+ CellTag_ID.mutex.synchronize{
153
+ @path = @id = CellTag_ID.join(TkCore::INTERP._ip_id_)
154
+ CellTag_ID[1].succ!
155
+ }
156
+ CellTagID_TBL.mutex.synchronize{
157
+ CellTagID_TBL[@tpath] = {} unless CellTagID_TBL[@tpath]
158
+ CellTagID_TBL[@tpath][@id] = self
159
+ }
160
+ configure(keys) if keys
161
+ end
162
+
163
+ def id
164
+ @id
165
+ end
166
+
167
+ def destroy
168
+ tk_call(@tpath, 'tag', 'delete', @id)
169
+ CellTagID_TBL.mutex.synchronize{
170
+ CellTagID_TBL[@tpath].delete(@id) if CellTagID_TBL[@tpath]
171
+ }
172
+ self
173
+ end
174
+ alias delete destroy
175
+
176
+ def exist?
177
+ @t.tag_exist?(@id)
178
+ end
179
+ def include?(idx)
180
+ @t.tag_include?(@id, idx)
181
+ end
182
+
183
+ def add_cell(*args)
184
+ @t.tag_cell(@id, *args)
185
+ end
186
+ def add_col(*args)
187
+ @t.tag_col(@id, *args)
188
+ end
189
+ def add_row(*args)
190
+ @t.tag_row(@id, *args)
191
+ end
192
+
193
+ def raise(target=None)
194
+ @t.tag_raise(@id, target)
195
+ end
196
+ def lower(target=None)
197
+ @t.tag_lower(@id, target)
198
+ end
199
+
200
+ def cget(key)
201
+ @t.tag_cget(@id, key)
202
+ end
203
+ def cget_strict(key)
204
+ @t.tag_cget_strict(@id, key)
205
+ end
206
+ def configure(key, val=None)
207
+ @t.tag_configure(@id, key, val)
208
+ end
209
+ def configinfo(key=nil)
210
+ @t.tag_configinfo(@id, key)
211
+ end
212
+ def current_configinfo(key=nil)
213
+ @t.current_tag_configinfo(@id, key)
214
+ end
215
+ end
216
+
217
+ class Tk::TkTable::NamedCellTag < Tk::TkTable::CellTag
218
+ def self.new(parent, name, keys=nil)
219
+ obj = nil
220
+ CellTagID_TBL.mutex.synchronize{
221
+ if CellTagID_TBL[parent.path] && CellTagID_TBL[parent.path][name]
222
+ obj = CellTagID_TBL[parent.path][name]
223
+ else
224
+ #super(parent, name, keys)
225
+ (obj = self.allocate).instance_eval{
226
+ @parent = @t = parent
227
+ @tpath = parent.path
228
+ @path = @id = name
229
+ CellTagID_TBL[@tpath] = {} unless CellTagID_TBL[@tpath]
230
+ CellTagID_TBL[@tpath][@id] = self
231
+ }
232
+ end
233
+ }
234
+ obj.configure(keys) if keys && ! keys.empty?
235
+ obj
236
+ end
237
+
238
+ def initialize(parent, name, keys=nil)
239
+ # dummy:: not called by 'new' method
240
+ @parent = @t = parent
241
+ @tpath = parent.path
242
+ @path = @id = name
243
+ CellTagID_TBL.mutex.synchronize{
244
+ CellTagID_TBL[@tpath] = {} unless CellTagID_TBL[@tpath]
245
+ CellTagID_TBL[@tpath][@id] = self
246
+ }
247
+ configure(keys) if keys && ! keys.empty?
248
+ end
249
+ end
250
+
251
+ #####################################################
252
+
253
+ class Tk::TkTable
254
+ TkCommandNames = ['table'.freeze].freeze
255
+ WidgetClassName = 'Table'.freeze
256
+ WidgetClassNames[WidgetClassName] = self
257
+
258
+ include Scrollable
259
+ include Tk::TkTable::ConfigMethod
260
+ include Tk::ValidateConfigure
261
+
262
+ def __destroy_hook__
263
+ Tk::TkTable::CelTag::CellTagID_TBL.mutex.synchronize{
264
+ Tk::TkTable::CelTag::CellTagID_TBL.delete(@path)
265
+ }
266
+ end
267
+
268
+ def __boolval_optkeys
269
+ super() << 'autoclear' << 'flashmode' << 'invertselected' <<
270
+ 'multiline' << 'selecttitle' << 'wrap'
271
+ end
272
+ private :__boolval_optkeys
273
+
274
+ def __strval_optkeys
275
+ super() << 'colseparator' << 'ellipsis' << 'rowseparator' << 'sparsearray'
276
+ end
277
+ private :__strval_optkeys
278
+
279
+
280
+ #################################
281
+
282
+ class BrowseCommand < TkValidateCommand
283
+ class ValidateArgs < TkUtil::CallbackSubst
284
+ KEY_TBL = [
285
+ [ ?c, ?n, :column ],
286
+ [ ?C, ?s, :index ],
287
+ [ ?i, ?x, :cursor ],
288
+ [ ?r, ?n, :row ],
289
+ [ ?s, ?s, :last_index ],
290
+ [ ?S, ?s, :new_index ],
291
+ [ ?W, ?w, :widget ],
292
+ nil
293
+ ]
294
+
295
+ PROC_TBL = [
296
+ [ ?n, TkComm.method(:number) ],
297
+ [ ?x, TkComm.method(:num_or_str) ],
298
+ [ ?s, TkComm.method(:string) ],
299
+ [ ?w, TkComm.method(:window) ],
300
+ nil
301
+ ]
302
+
303
+ =begin
304
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
305
+ KEY_TBL.map!{|inf|
306
+ if inf.kind_of?(Array)
307
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
308
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
309
+ end
310
+ inf
311
+ }
312
+
313
+ PROC_TBL.map!{|inf|
314
+ if inf.kind_of?(Array)
315
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
316
+ end
317
+ inf
318
+ }
319
+ =end
320
+
321
+ _setup_subst_table(KEY_TBL, PROC_TBL);
322
+
323
+ def self.ret_val(val)
324
+ val
325
+ end
326
+ end
327
+
328
+ def self._config_keys
329
+ ['browsecommand', 'browsecmd']
330
+ end
331
+ end
332
+ #--------------------------------
333
+ class CellCommand < TkValidateCommand
334
+ class ValidateArgs < TkUtil::CallbackSubst
335
+ KEY_TBL = [
336
+ [ ?c, ?n, :column ],
337
+ [ ?C, ?s, :index ],
338
+ [ ?i, ?m, :rw_mode ],
339
+ [ ?r, ?n, :row ],
340
+ [ ?s, ?v, :value ],
341
+ [ ?W, ?w, :widget ],
342
+ nil
343
+ ]
344
+
345
+ PROC_TBL = [
346
+ [ ?n, TkComm.method(:number) ],
347
+ [ ?s, TkComm.method(:string) ],
348
+ [ ?w, TkComm.method(:window) ],
349
+ [ ?m, proc{|val| (val == '0')? (:r) : (:w)} ],
350
+ [ ?v, proc{|val| TkComm.tk_tcl2ruby(val, true, false)} ],
351
+ nil
352
+ ]
353
+
354
+ =begin
355
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
356
+ KEY_TBL.map!{|inf|
357
+ if inf.kind_of?(Array)
358
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
359
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
360
+ end
361
+ inf
362
+ }
363
+
364
+ PROC_TBL.map!{|inf|
365
+ if inf.kind_of?(Array)
366
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
367
+ end
368
+ inf
369
+ }
370
+ =end
371
+
372
+ _setup_subst_table(KEY_TBL, PROC_TBL);
373
+
374
+ def self.ret_val(val)
375
+ TkComm._get_eval_string(val)
376
+ end
377
+ end
378
+
379
+ def self._config_keys
380
+ ['command']
381
+ end
382
+ end
383
+ #--------------------------------
384
+ class SelectionCommand < TkValidateCommand
385
+ class ValidateArgs < TkUtil::CallbackSubst
386
+ KEY_TBL = [
387
+ [ ?c, ?n, :sel_columns ],
388
+ [ ?C, ?s, :sel_area ],
389
+ [ ?i, ?n, :total ],
390
+ [ ?r, ?n, :sel_rows ],
391
+ [ ?s, ?s, :value ],
392
+ [ ?W, ?w, :widget ],
393
+ nil
394
+ ]
395
+
396
+ PROC_TBL = [
397
+ [ ?n, TkComm.method(:number) ],
398
+ [ ?s, TkComm.method(:string) ],
399
+ [ ?w, TkComm.method(:window) ],
400
+ nil
401
+ ]
402
+
403
+ =begin
404
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
405
+ KEY_TBL.map!{|inf|
406
+ if inf.kind_of?(Array)
407
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
408
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
409
+ end
410
+ inf
411
+ }
412
+
413
+ PROC_TBL.map!{|inf|
414
+ if inf.kind_of?(Array)
415
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
416
+ end
417
+ inf
418
+ }
419
+ =end
420
+
421
+ _setup_subst_table(KEY_TBL, PROC_TBL);
422
+
423
+ def self.ret_val(val)
424
+ val.to_s
425
+ end
426
+ end
427
+
428
+ def self._config_keys
429
+ ['selectioncommand', 'selcmd']
430
+ end
431
+ end
432
+ #--------------------------------
433
+ class ValidateCommand < TkValidateCommand
434
+ class ValidateArgs < TkUtil::CallbackSubst
435
+ KEY_TBL = [
436
+ [ ?c, ?n, :column ],
437
+ [ ?C, ?s, :index ],
438
+ [ ?i, ?x, :cursor ],
439
+ [ ?r, ?n, :row ],
440
+ [ ?s, ?v, :current_value ],
441
+ [ ?S, ?v, :new_value ],
442
+ [ ?W, ?w, :widget ],
443
+ nil
444
+ ]
445
+
446
+ PROC_TBL = [
447
+ [ ?n, TkComm.method(:number) ],
448
+ [ ?x, TkComm.method(:num_or_str) ],
449
+ [ ?s, TkComm.method(:string) ],
450
+ [ ?w, TkComm.method(:window) ],
451
+ [ ?v, proc{|val| TkComm.tk_tcl2ruby(val, true, false)} ],
452
+ nil
453
+ ]
454
+
455
+ =begin
456
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
457
+ KEY_TBL.map!{|inf|
458
+ if inf.kind_of?(Array)
459
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
460
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
461
+ end
462
+ inf
463
+ }
464
+
465
+ PROC_TBL.map!{|inf|
466
+ if inf.kind_of?(Array)
467
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
468
+ end
469
+ inf
470
+ }
471
+ =end
472
+
473
+ _setup_subst_table(KEY_TBL, PROC_TBL);
474
+ end
475
+
476
+ def self._config_keys
477
+ ['vcmd', 'validatecommand']
478
+ end
479
+ end
480
+
481
+ #################################
482
+
483
+ def __validation_class_list
484
+ super() <<
485
+ BrowseCommand << CellCommand << SelectionCommand << ValidateCommand
486
+ end
487
+
488
+ Tk::ValidateConfigure.__def_validcmd(binding, BrowseCommand)
489
+ Tk::ValidateConfigure.__def_validcmd(binding, CellCommand)
490
+ Tk::ValidateConfigure.__def_validcmd(binding, SelectionCommand)
491
+ Tk::ValidateConfigure.__def_validcmd(binding, ValidateCommand)
492
+
493
+ #################################
494
+
495
+ def activate(idx)
496
+ tk_send('activate', tagid(idx))
497
+ end
498
+
499
+ def bbox(idx)
500
+ list(tk_send('bbox', tagid(idx)))
501
+ end
502
+
503
+ def border_mark(x, y)
504
+ simplelist(tk_send('border', 'mark', x, y))
505
+ end
506
+ def border_mark_row(x, y)
507
+ tk_send('border', 'mark', x, y, 'row')
508
+ end
509
+ def border_mark_col(x, y)
510
+ tk_send('border', 'mark', x, y, 'col')
511
+ end
512
+ def border_dragto(x, y)
513
+ tk_send('border', 'dragto', x, y)
514
+ end
515
+
516
+ def clear_cache(first=None, last=None)
517
+ tk_send('clear', 'cache', tagid(first), tagid(last))
518
+ self
519
+ end
520
+ def clear_sizes(first=None, last=None)
521
+ tk_send('clear', 'sizes', tagid(first), tagid(last))
522
+ self
523
+ end
524
+ def clear_tags(first=None, last=None)
525
+ tk_send('clear', 'tags', tagid(first), tagid(last))
526
+ self
527
+ end
528
+ def clear_all(first=None, last=None)
529
+ tk_send('clear', 'all', tagid(first), tagid(last))
530
+ self
531
+ end
532
+
533
+ def curselection
534
+ simplelist(tk_send('curselection'))
535
+ end
536
+ def curselection=(val)
537
+ tk_send('curselection', val)
538
+ val
539
+ end
540
+
541
+ def curvalue
542
+ tk_tcl2ruby(tk_send('curvalue'), true, false)
543
+ end
544
+ def curvalue=(val)
545
+ tk_send('curvalue', val)
546
+ val
547
+ end
548
+
549
+ def delete_active(idx1, idx2=None)
550
+ tk_send('delete', 'active', tagid(idx1), tagid(idx2))
551
+ self
552
+ end
553
+ def delete_cols(*args) # ?switches_array?, index, ?count?
554
+ params = []
555
+ if args[0].kind_of?(Array)
556
+ switches = args.shift
557
+ switches.each{|k| params << "-#{k}"}
558
+ end
559
+ params << '--'
560
+ params << tagid(args.shift)
561
+ params.concat(args)
562
+ tk_send('delete', 'cols', *params)
563
+ self
564
+ end
565
+ def delete_rows(*args) # ?switches_array?, index, ?count?
566
+ params = []
567
+ if args[0].kind_of?(Array)
568
+ switches = args.shift
569
+ switches.each{|k| params << "-#{k}"}
570
+ end
571
+ params << '--'
572
+ params << tagid(args.shift)
573
+ params.concat(args)
574
+ tk_send('delete', 'rows', *params)
575
+ self
576
+ end
577
+
578
+ def get(idx)
579
+ tk_tcl2ruby(tk_send('get', tagid(idx)), true, false)
580
+ end
581
+ def get_area(idx1, idx2)
582
+ simplelist(tk_send('get', tagid(idx1), tagid(idx2))).collect{|v|
583
+ tk_tcl2ruby(v, true, false)
584
+ }
585
+ end
586
+
587
+ def height_list
588
+ list(tk_send('height'))
589
+ end
590
+ def height(row)
591
+ number(tk_send('height', row))
592
+ end
593
+ def set_height(*pairs)
594
+ tk_send('height', *(pairs.flatten))
595
+ self
596
+ end
597
+
598
+ def hidden_list
599
+ simplelist(tk_send('hidden'))
600
+ end
601
+ def hidden?(idx, *args)
602
+ if args.empty?
603
+ if (ret = tk_send('hidden', tagid(idx))) == ''
604
+ false
605
+ else
606
+ ret
607
+ end
608
+ else
609
+ bool(tk_send('hidden', tagid(idx), *(args.collect{|i| tagid(i)})))
610
+ end
611
+ end
612
+
613
+ def icursor
614
+ number(tk_send('icursor'))
615
+ end
616
+ def icursor_set(idx)
617
+ number(tk_send('icursor', tagid(idx)))
618
+ end
619
+
620
+ def index(idx)
621
+ tk_send('index', tagid(idx))
622
+ end
623
+ def row_index(idx)
624
+ number(tk_send('index', tagid(idx), 'row'))
625
+ end
626
+ def col_index(idx)
627
+ number(tk_send('index', tagid(idx), 'col'))
628
+ end
629
+
630
+ def insert_active(idx, val)
631
+ tk_send('insert', 'active', tagid(idx), val)
632
+ self
633
+ end
634
+ def insert_cols(*args) # ?switches_array?, index, ?count?
635
+ params = []
636
+ if args[0].kind_of?(Array)
637
+ switches = args.shift
638
+ switches.each{|k| params << "-#{k}"}
639
+ end
640
+ params << '--'
641
+ params.concat(args)
642
+ params << tagid(args.shift)
643
+ tk_send('insert', 'cols', *params)
644
+ self
645
+ end
646
+ def insert_rows(*args) # ?switches_array?, index, ?count?
647
+ params = []
648
+ if args[0].kind_of?(Array)
649
+ switches = args.shift
650
+ switches.each{|k| params << "-#{k}"}
651
+ end
652
+ params << '--'
653
+ params << tagid(args.shift)
654
+ params.concat(args)
655
+ tk_send('insert', 'rows', *params)
656
+ self
657
+ end
658
+
659
+ # def postscript(*args)
660
+ # tk_send('postscript', *args)
661
+ # end
662
+
663
+ def reread
664
+ tk_send('reread')
665
+ self
666
+ end
667
+
668
+ def scan_mark(x, y)
669
+ tk_send('scan', 'mark', x, y)
670
+ self
671
+ end
672
+ def scan_dragto(x, y)
673
+ tk_send('scan', 'dragto', x, y)
674
+ self
675
+ end
676
+
677
+ def see(idx)
678
+ tk_send('see', tagid(idx))
679
+ self
680
+ end
681
+
682
+ def selection_anchor(idx)
683
+ tk_send('selection', 'anchor', tagid(idx))
684
+ self
685
+ end
686
+ def selection_clear(first, last=None)
687
+ tk_send('selection', 'clear', tagid(first), tagid(last))
688
+ self
689
+ end
690
+ def selection_clear_all
691
+ selection_clear('all')
692
+ end
693
+ def selection_include?(idx)
694
+ bool(tk_send('selection', 'includes', tagid(idx)))
695
+ end
696
+ def selection_present
697
+ bool(tk_send('selection', 'present'))
698
+ end
699
+ def selection_set(first, last=None)
700
+ tk_send('selection', 'set', tagid(first), tagid(last))
701
+ self
702
+ end
703
+
704
+ def set(*pairs) # idx, val, idx, val, ...
705
+ args = []
706
+ 0.step(pairs.size-1, 2){|i|
707
+ args << tagid(pairs[i])
708
+ args << pairs[i+1]
709
+ }
710
+ tk_send('set', *args)
711
+ self
712
+ end
713
+ def set_row(*pairs) # idx, val, idx, val, ...
714
+ args = []
715
+ 0.step(pairs.size-1, 2){|i|
716
+ args << tagid(pairs[i])
717
+ args << pairs[i+1]
718
+ }
719
+ tk_send('set', 'row', *args)
720
+ self
721
+ end
722
+ def set_col(*pairs) # idx, val, idx, val, ...
723
+ args = []
724
+ 0.step(pairs.size-1, 2){|i|
725
+ args << tagid(pairs[i])
726
+ args << pairs[i+1]
727
+ }
728
+ tk_send('set', 'col', *args)
729
+ self
730
+ end
731
+ =begin
732
+ def set(*pairs) # idx, val, idx, val, ... OR [idx, val], [idx, val], ...
733
+ if pairs[0].kind_of?(Array)
734
+ # [idx, val], [idx, val], ...
735
+ args = []
736
+ pairs.each{|idx, val| args << tagid(idx) << val }
737
+ tk_send('set', *args)
738
+ else
739
+ # idx, val, idx, val, ...
740
+ args = []
741
+ 0.step(pairs.size-1, 2){|i|
742
+ args << tagid(pairs[i])
743
+ args << pairs[i+1]
744
+ }
745
+ tk_send('set', *args)
746
+ end
747
+ self
748
+ end
749
+ def set_row(*pairs)
750
+ if pairs[0].kind_of?(Array)
751
+ # [idx, val], [idx, val], ...
752
+ args = []
753
+ pairs.each{|idx, val| args << tagid(idx) << val }
754
+ tk_send('set', 'row', *args)
755
+ else
756
+ # idx, val, idx, val, ...
757
+ args = []
758
+ 0.step(pairs.size-1, 2){|i|
759
+ args << tagid(pairs[i])
760
+ args << pairs[i+1]
761
+ }
762
+ tk_send('set', 'row', *args)
763
+ end
764
+ self
765
+ end
766
+ def set_col(*pairs)
767
+ if pairs[0].kind_of?(Array)
768
+ # [idx, val], [idx, val], ...
769
+ args = []
770
+ pairs.each{|idx, val| args << idx << val }
771
+ tk_send('set', 'col', *args)
772
+ else
773
+ # idx, val, idx, val, ...
774
+ args = []
775
+ 0.step(pairs.size-1, 2){|i|
776
+ args << tagid(pairs[i])
777
+ args << pairs[i+1]
778
+ }
779
+ tk_send('set', 'col', *args)
780
+ end
781
+ self
782
+ end
783
+ =end
784
+
785
+ def spans
786
+ simplelist(tk_send('spans')).collect{|inf|
787
+ lst = simplelist(inf)
788
+ idx = lst[0]
789
+ rows, cols = lst[1].split(',').map!{|n| Integer(n)}
790
+ [idx [rows, cols]]
791
+ }
792
+ end
793
+ alias span_list spans
794
+ def span(idx)
795
+ lst = simplelist(tk_send('spans', tagid(idx)))
796
+ idx = lst[0]
797
+ rows, cols = lst[1].split(',').map!{|n| Integer(n)}
798
+ [idx [rows, cols]]
799
+ end
800
+ def set_spans(*pairs)
801
+ # idx, val, idx, val, ...
802
+ args = []
803
+ 0.step(pairs.size-1, 2){|i|
804
+ args << tagid(pairs[i])
805
+ val = pairs[i+1]
806
+ if val.kind_of?(Array)
807
+ args << val.join(',')
808
+ else
809
+ args << val
810
+ end
811
+ }
812
+ tk_send('spans', *args)
813
+ self
814
+ end
815
+ =begin
816
+ def set_spans(*pairs)
817
+ if pairs[0].kind_of?(Array)
818
+ # [idx, val], [idx, val], ...
819
+ args = []
820
+ pairs.each{|idx, val|
821
+ args << tagid(idx)
822
+ if val.kind_of?(Array)
823
+ args << val.join(',')
824
+ else
825
+ args << val
826
+ end
827
+ }
828
+ tk_send('spans', *args)
829
+ else
830
+ # idx, val, idx, val, ...
831
+ args = []
832
+ 0.step(pairs.size-1, 2){|i|
833
+ args << tagid(pairs[i])
834
+ val = pairs[i+1]
835
+ if val.kind_of?(Array)
836
+ args << val.join(',')
837
+ else
838
+ args << val
839
+ end
840
+ }
841
+ tk_send('spans', *args)
842
+ end
843
+ self
844
+ end
845
+ =end
846
+
847
+ def tagid(tag)
848
+ if tag.kind_of?(Tk::TkTable::CellTag)
849
+ tag.id
850
+ elsif tag.kind_of?(Array)
851
+ if tag[0].kind_of?(Integer) && tag[1].kind_of?(Integer)
852
+ # [row, col]
853
+ tag.join(',')
854
+ else
855
+ tag
856
+ end
857
+ else
858
+ tag
859
+ end
860
+ end
861
+
862
+ def tagid2obj(tagid)
863
+ Tk::TkTable::CellTag::CellTagID_TBL.mutex.synchronize{
864
+ if Tk::TkTable::CellTag::CellTagID_TBL.key?(@path)
865
+ if Tk::TkTable::CellTag::CellTagID_TBL[@path].key?(tagid)
866
+ Tk::TkTable::CellTag::CellTagID_TBL[@path][tagid]
867
+ else
868
+ tagid
869
+ end
870
+ else
871
+ tagid
872
+ end
873
+ }
874
+ end
875
+
876
+ def tag_cell(tag, *cells)
877
+ tk_send('tag', 'cell', tagid(tag), *(cells.collect{|idx| tagid(idx)}))
878
+ self
879
+ end
880
+ def tag_reset(*cells)
881
+ tk_send('tag', 'cell', '', *(cells.collect{|idx| tagid(idx)}))
882
+ self
883
+ end
884
+ def tag_col(tag, *cols)
885
+ tk_send('tag', 'col', tagid(tag), *cols)
886
+ self
887
+ end
888
+ def tag_col_reset(*cols)
889
+ tk_send('tag', 'col', '', *cols)
890
+ self
891
+ end
892
+ def tag_delete(tag)
893
+ tk_send('tag', 'delete', tagid(tag))
894
+ Tk::TkTable::CellTag::CellTagID_TBL.mutex.synchronize{
895
+ if Tk::TkTable::CellTag::CellTagID_TBL[@path]
896
+ if tag.kind_of? Tk::TkTable::CellTag
897
+ Tk::TkTable::CellTag::CellTagID_TBL[@path].delete(tag.id)
898
+ else
899
+ Tk::TkTable::CellTag::CellTagID_TBL[@path].delete(tag)
900
+ end
901
+ end
902
+ }
903
+ self
904
+ end
905
+ def tag_exist?(tag)
906
+ bool(tk_send('tag', 'exists', tagid(tag)))
907
+ end
908
+ def tag_include?(tag, idx)
909
+ bool(tk_send('tag', 'includes', tagid(tag), tagid(idx)))
910
+ end
911
+ def tag_lower(tag, target=None)
912
+ tk_send('tag', 'lower', tagid(tag), tagid(target))
913
+ self
914
+ end
915
+ def tag_names(pat=None)
916
+ simplelist(tk_send('tag', 'names', pat)).collect{|tag| tagid2obj(tag)}
917
+ end
918
+ def tag_raise(tag, target=None)
919
+ tk_send('tag', 'raise', tagid(tag), tagid(target))
920
+ self
921
+ end
922
+ def tag_row(tag, *rows)
923
+ tk_send('tag', 'row', tagid(tag), *rows)
924
+ self
925
+ end
926
+ def tag_row_reset(*rows)
927
+ tk_send('tag', 'row', '', *rows)
928
+ self
929
+ end
930
+
931
+ def validate(idx)
932
+ bool(tk_send('validate', tagid(idx)))
933
+ end
934
+
935
+ def width_list
936
+ list(tk_send('width'))
937
+ end
938
+ def width(row)
939
+ number(tk_send('width', row))
940
+ end
941
+ def set_width(*pairs)
942
+ tk_send('width', *(pairs.flatten))
943
+ self
944
+ end
945
+
946
+ def window_delete(*args)
947
+ tk_send('window', 'delete', *(args.collect{|idx| tagid(idx)}))
948
+ self
949
+ end
950
+ def window_move(from_idx, to_idx)
951
+ tk_send('window', 'move', tagid(from_idx), tagid(to_idx))
952
+ self
953
+ end
954
+ def window_names(pat=None)
955
+ simplelist(tk_send('window', 'names', pat))
956
+ end
957
+ end