tk_as_gem 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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