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,88 @@
1
+ #
2
+ # tk/textimage.rb - treat Tk text image object
3
+ #
4
+ require 'tk'
5
+ require 'tk/text'
6
+
7
+ class TkTextImage<TkObject
8
+ include Tk::Text::IndexModMethods
9
+
10
+ def initialize(parent, index, keys)
11
+ #unless parent.kind_of?(Tk::Text)
12
+ # fail ArgumentError, "expect Tk::Text for 1st argument"
13
+ #end
14
+ @t = parent
15
+ if index == 'end' || index == :end
16
+ @path = TkTextMark.new(@t, tk_call(@t.path, 'index', 'end - 1 chars'))
17
+ elsif index.kind_of? TkTextMark
18
+ if tk_call_without_enc(@t.path,'index',index.path) == tk_call_without_enc(@t.path,'index','end')
19
+ @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index',
20
+ 'end - 1 chars'))
21
+ else
22
+ @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index',
23
+ index.path))
24
+ end
25
+ else
26
+ @path = TkTextMark.new(@t, tk_call_without_enc(@t.path, 'index',
27
+ _get_eval_enc_str(index)))
28
+ end
29
+ @path.gravity = 'left'
30
+ @index = @path.path
31
+ @id = tk_call_without_enc(@t.path, 'image', 'create', @index,
32
+ *hash_kv(keys, true)).freeze
33
+ @path.gravity = 'right'
34
+ end
35
+
36
+ def id
37
+ Tk::Text::IndexString.new(@id)
38
+ end
39
+ def mark
40
+ @path
41
+ end
42
+
43
+ def [](slot)
44
+ cget(slot)
45
+ end
46
+ def []=(slot, value)
47
+ configure(slot, value)
48
+ value
49
+ end
50
+
51
+ def cget(slot)
52
+ @t.image_cget(@index, slot)
53
+ end
54
+
55
+ def cget_strict(slot)
56
+ @t.image_cget_strict(@index, slot)
57
+ end
58
+
59
+ def configure(slot, value=None)
60
+ @t.image_configure(@index, slot, value)
61
+ self
62
+ end
63
+ # def configure(slot, value)
64
+ # tk_call @t.path, 'image', 'configure', @index, "-#{slot}", value
65
+ # end
66
+
67
+ def configinfo(slot = nil)
68
+ @t.image_configinfo(@index, slot)
69
+ end
70
+
71
+ def current_configinfo(slot = nil)
72
+ @t.current_image_configinfo(@index, slot)
73
+ end
74
+
75
+ def image
76
+ img = tk_call_without_enc(@t.path, 'image', 'cget', @index, '-image')
77
+ TkImage::Tk_IMGTBL[img]? TkImage::Tk_IMGTBL[img] : img
78
+ end
79
+
80
+ def image=(value)
81
+ tk_call_without_enc(@t.path, 'image', 'configure', @index, '-image',
82
+ _get_eval_enc_str(value))
83
+ #self
84
+ value
85
+ end
86
+ end
87
+
88
+ TktImage = TkTextImage
@@ -0,0 +1,204 @@
1
+ #
2
+ # tk/textmark.rb - methods for treating text marks
3
+ #
4
+ require 'tk'
5
+ require 'tk/text'
6
+
7
+ class TkTextMark<TkObject
8
+ include Tk::Text::IndexModMethods
9
+
10
+ TMarkID_TBL = TkCore::INTERP.create_table
11
+
12
+ (Tk_TextMark_ID = ['mark'.freeze, '00000'.taint]).instance_eval{
13
+ @mutex = Mutex.new
14
+ def mutex; @mutex; end
15
+ freeze
16
+ }
17
+
18
+ TkCore::INTERP.init_ip_env{
19
+ TMarkID_TBL.mutex.synchronize{ TMarkID_TBL.clear }
20
+ }
21
+
22
+ def TkTextMark.id2obj(text, id)
23
+ tpath = text.path
24
+ TMarkID_TBL.mutex.synchronize{
25
+ if TMarkID_TBL[tpath]
26
+ TMarkID_TBL[tpath][id]? TMarkID_TBL[tpath][id]: id
27
+ else
28
+ id
29
+ end
30
+ }
31
+ end
32
+
33
+ def initialize(parent, index)
34
+ #unless parent.kind_of?(Tk::Text)
35
+ # fail ArgumentError, "expect Tk::Text for 1st argument"
36
+ #end
37
+ @parent = @t = parent
38
+ @tpath = parent.path
39
+ Tk_TextMark_ID.mutex.synchronize{
40
+ # @path = @id = Tk_TextMark_ID.join('')
41
+ @path = @id = Tk_TextMark_ID.join(TkCore::INTERP._ip_id_).freeze
42
+ Tk_TextMark_ID[1].succ!
43
+ }
44
+ TMarkID_TBL.mutex.synchronize{
45
+ TMarkID_TBL[@id] = self
46
+ TMarkID_TBL[@tpath] = {} unless TMarkID_TBL[@tpath]
47
+ TMarkID_TBL[@tpath][@id] = self
48
+ }
49
+ tk_call_without_enc(@t.path, 'mark', 'set', @id,
50
+ _get_eval_enc_str(index))
51
+ @t._addtag id, self
52
+ end
53
+
54
+ def id
55
+ Tk::Text::IndexString.new(@id)
56
+ end
57
+
58
+ def exist?
59
+ #if ( tk_split_simplelist(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'names'))).find{|id| id == @id } )
60
+ if ( tk_split_simplelist(tk_call_without_enc(@t.path, 'mark', 'names'), false, true).find{|id| id == @id } )
61
+ true
62
+ else
63
+ false
64
+ end
65
+ end
66
+
67
+ =begin
68
+ # move to Tk::Text::IndexModMethods module
69
+ def +(mod)
70
+ return chars(mod) if mod.kind_of?(Numeric)
71
+
72
+ mod = mod.to_s
73
+ if mod =~ /^\s*[+-]?\d/
74
+ Tk::Text::IndexString.new(@id + ' + ' + mod)
75
+ else
76
+ Tk::Text::IndexString.new(@id + ' ' + mod)
77
+ end
78
+ end
79
+
80
+ def -(mod)
81
+ return chars(-mod) if mod.kind_of?(Numeric)
82
+
83
+ mod = mod.to_s
84
+ if mod =~ /^\s*[+-]?\d/
85
+ Tk::Text::IndexString.new(@id + ' - ' + mod)
86
+ elsif mod =~ /^\s*[-]\s+(\d.*)$/
87
+ Tk::Text::IndexString.new(@id + ' - -' + $1)
88
+ else
89
+ Tk::Text::IndexString.new(@id + ' ' + mod)
90
+ end
91
+ end
92
+ =end
93
+
94
+ def pos
95
+ @t.index(@id)
96
+ end
97
+
98
+ def pos=(where)
99
+ set(where)
100
+ end
101
+
102
+ def set(where)
103
+ tk_call_without_enc(@t.path, 'mark', 'set', @id,
104
+ _get_eval_enc_str(where))
105
+ self
106
+ end
107
+
108
+ def unset
109
+ tk_call_without_enc(@t.path, 'mark', 'unset', @id)
110
+ self
111
+ end
112
+ alias destroy unset
113
+
114
+ def gravity
115
+ tk_call_without_enc(@t.path, 'mark', 'gravity', @id)
116
+ end
117
+
118
+ def gravity=(direction)
119
+ tk_call_without_enc(@t.path, 'mark', 'gravity', @id, direction)
120
+ #self
121
+ direction
122
+ end
123
+
124
+ def next(index = nil)
125
+ if index
126
+ @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'next', _get_eval_enc_str(index))))
127
+ else
128
+ @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'next', @id)))
129
+ end
130
+ end
131
+
132
+ def previous(index = nil)
133
+ if index
134
+ @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'previous', _get_eval_enc_str(index))))
135
+ else
136
+ @t.tagid2obj(_fromUTF8(tk_call_without_enc(@t.path, 'mark', 'previous', @id)))
137
+ end
138
+ end
139
+ end
140
+ TktMark = TkTextMark
141
+
142
+ class TkTextNamedMark<TkTextMark
143
+ def self.new(parent, name, index=nil)
144
+ TMarkID_TBL.mutex.synchronize{
145
+ if TMarkID_TBL[parent.path] && TMarkID_TBL[parent.path][name]
146
+ obj = TMarkID_TBL[parent.path][name]
147
+ else
148
+ # super(parent, name, *args)
149
+ (obj = self.allocate).instance_eval{
150
+ @parent = @t = parent
151
+ @tpath = parent.path
152
+ @path = @id = name
153
+ TMarkID_TBL[@id] = self
154
+ TMarkID_TBL[@tpath] = {} unless TMarkID_TBL[@tpath]
155
+ TMarkID_TBL[@tpath][@id] = self unless TMarkID_TBL[@tpath][@id]
156
+ @t._addtag @id, self
157
+ }
158
+ obj
159
+ end
160
+
161
+ if obj && index
162
+ tk_call_without_enc(parent.path, 'mark', 'set', name,
163
+ _get_eval_enc_str(index))
164
+ end
165
+ obj
166
+ }
167
+ end
168
+
169
+ def initialize(parent, name, index=nil)
170
+ # dummy:: not called by 'new' method
171
+
172
+ #unless parent.kind_of?(Tk::Text)
173
+ # fail ArgumentError, "expect Tk::Text for 1st argument"
174
+ #end
175
+ @parent = @t = parent
176
+ @tpath = parent.path
177
+ @path = @id = name
178
+ tk_call_without_enc(@t.path, 'mark', 'set', @id,
179
+ _get_eval_enc_str(index)) if index
180
+ @t._addtag @id, self
181
+ end
182
+ end
183
+ TktNamedMark = TkTextNamedMark
184
+
185
+ class TkTextMarkInsert<TkTextNamedMark
186
+ def self.new(parent,*args)
187
+ super(parent, 'insert', *args)
188
+ end
189
+ end
190
+ TktMarkInsert = TkTextMarkInsert
191
+
192
+ class TkTextMarkCurrent<TkTextNamedMark
193
+ def self.new(parent,*args)
194
+ super(parent, 'current', *args)
195
+ end
196
+ end
197
+ TktMarkCurrent = TkTextMarkCurrent
198
+
199
+ class TkTextMarkAnchor<TkTextNamedMark
200
+ def self.new(parent,*args)
201
+ super(parent, 'anchor', *args)
202
+ end
203
+ end
204
+ TktMarkAnchor = TkTextMarkAnchor
@@ -0,0 +1,318 @@
1
+ #
2
+ # tk/texttag.rb - methods for treating text tags
3
+ #
4
+ require 'tk'
5
+ require 'tk/text'
6
+ require 'tk/tagfont'
7
+
8
+ class TkTextTag<TkObject
9
+ include TkTreatTagFont
10
+ include Tk::Text::IndexModMethods
11
+
12
+ TTagID_TBL = TkCore::INTERP.create_table
13
+
14
+ (Tk_TextTag_ID = ['tag'.freeze, '00000'.taint]).instance_eval{
15
+ @mutex = Mutex.new
16
+ def mutex; @mutex; end
17
+ freeze
18
+ }
19
+
20
+ TkCore::INTERP.init_ip_env{
21
+ TTagID_TBL.mutex.synchronize{ TTagID_TBL.clear }
22
+ }
23
+
24
+ def TkTextTag.id2obj(text, id)
25
+ tpath = text.path
26
+ TTagID_TBL.mutex.synchronize{
27
+ if TTagID_TBL[tpath]
28
+ TTagID_TBL[tpath][id]? TTagID_TBL[tpath][id]: id
29
+ else
30
+ id
31
+ end
32
+ }
33
+ end
34
+
35
+ def initialize(parent, *args)
36
+ #unless parent.kind_of?(TkText)
37
+ # fail ArgumentError, "expect TkText for 1st argument"
38
+ #end
39
+ @parent = @t = parent
40
+ @tpath = parent.path
41
+ Tk_TextTag_ID.mutex.synchronize{
42
+ # @path = @id = Tk_TextTag_ID.join('')
43
+ @path = @id = Tk_TextTag_ID.join(TkCore::INTERP._ip_id_).freeze
44
+ Tk_TextTag_ID[1].succ!
45
+ }
46
+ TTagID_TBL.mutex.synchronize{
47
+ TTagID_TBL[@id] = self
48
+ TTagID_TBL[@tpath] = {} unless TTagID_TBL[@tpath]
49
+ TTagID_TBL[@tpath][@id] = self
50
+ }
51
+ #tk_call @t.path, "tag", "configure", @id, *hash_kv(keys)
52
+ if args != []
53
+ keys = args.pop
54
+ if keys.kind_of?(Hash)
55
+ add(*args) if args != []
56
+ configure(keys)
57
+ else
58
+ args.push keys
59
+ add(*args)
60
+ end
61
+ end
62
+ @t._addtag id, self
63
+ end
64
+
65
+ def id
66
+ Tk::Text::IndexString.new(@id)
67
+ end
68
+
69
+ def exist?
70
+ #if ( tk_split_simplelist(_fromUTF8(tk_call_without_enc(@t.path, 'tag', 'names'))).find{|id| id == @id } )
71
+ if ( tk_split_simplelist(tk_call_without_enc(@t.path, 'tag', 'names'), false, true).find{|id| id == @id } )
72
+ true
73
+ else
74
+ false
75
+ end
76
+ end
77
+
78
+ def first
79
+ Tk::Text::IndexString.new(@id + '.first')
80
+ end
81
+
82
+ def last
83
+ Tk::Text::IndexString.new(@id + '.last')
84
+ end
85
+
86
+ def add(*indices)
87
+ tk_call_without_enc(@t.path, 'tag', 'add', @id,
88
+ *(indices.collect{|idx| _get_eval_enc_str(idx)}))
89
+ self
90
+ end
91
+
92
+ def remove(*indices)
93
+ tk_call_without_enc(@t.path, 'tag', 'remove', @id,
94
+ *(indices.collect{|idx| _get_eval_enc_str(idx)}))
95
+ self
96
+ end
97
+
98
+ def ranges
99
+ l = tk_split_simplelist(tk_call_without_enc(@t.path, 'tag', 'ranges', @id))
100
+ r = []
101
+ while key=l.shift
102
+ r.push [Tk::Text::IndexString.new(key), Tk::Text::IndexString.new(l.shift)]
103
+ end
104
+ r
105
+ end
106
+
107
+ def nextrange(first, last=None)
108
+ simplelist(tk_call_without_enc(@t.path, 'tag', 'nextrange', @id,
109
+ _get_eval_enc_str(first),
110
+ _get_eval_enc_str(last))).collect{|idx|
111
+ Tk::Text::IndexString.new(idx)
112
+ }
113
+ end
114
+
115
+ def prevrange(first, last=None)
116
+ simplelist(tk_call_without_enc(@t.path, 'tag', 'prevrange', @id,
117
+ _get_eval_enc_str(first),
118
+ _get_eval_enc_str(last))).collect{|idx|
119
+ Tk::Text::IndexString.new(idx)
120
+ }
121
+ end
122
+
123
+ def [](key)
124
+ cget key
125
+ end
126
+
127
+ def []=(key,val)
128
+ configure key, val
129
+ val
130
+ end
131
+
132
+ def cget(key)
133
+ @t.tag_cget @id, key
134
+ end
135
+ def cget_strict(key)
136
+ @t.tag_cget_strict @id, key
137
+ end
138
+ =begin
139
+ def cget(key)
140
+ case key.to_s
141
+ when 'text', 'label', 'show', 'data', 'file'
142
+ _fromUTF8(tk_call_without_enc(@t.path, 'tag', 'cget', @id, "-#{key}"))
143
+ when 'font', 'kanjifont'
144
+ #fnt = tk_tcl2ruby(tk_call(@t.path, 'tag', 'cget', @id, "-#{key}"))
145
+ fnt = tk_tcl2ruby(_fromUTF8(tk_call_without_enc(@t.path, 'tag', 'cget',
146
+ @id, '-font')))
147
+ unless fnt.kind_of?(TkFont)
148
+ fnt = tagfontobj(@id, fnt)
149
+ end
150
+ if key.to_s == 'kanjifont' && JAPANIZED_TK && TK_VERSION =~ /^4\.*/
151
+ # obsolete; just for compatibility
152
+ fnt.kanji_font
153
+ else
154
+ fnt
155
+ end
156
+ else
157
+ tk_tcl2ruby(_fromUTF8(tk_call_without_enc(@t.path, 'tag', 'cget',
158
+ @id, "-#{key}")))
159
+ end
160
+ end
161
+ =end
162
+
163
+ def configure(key, val=None)
164
+ @t.tag_configure @id, key, val
165
+ end
166
+ # def configure(key, val=None)
167
+ # if key.kind_of?(Hash)
168
+ # tk_call @t.path, 'tag', 'configure', @id, *hash_kv(key)
169
+ # else
170
+ # tk_call @t.path, 'tag', 'configure', @id, "-#{key}", val
171
+ # end
172
+ # end
173
+ # def configure(key, value)
174
+ # if value == FALSE
175
+ # value = "0"
176
+ # elsif value.kind_of?(Proc)
177
+ # value = install_cmd(value)
178
+ # end
179
+ # tk_call @t.path, 'tag', 'configure', @id, "-#{key}", value
180
+ # end
181
+
182
+ def configinfo(key=nil)
183
+ @t.tag_configinfo @id, key
184
+ end
185
+
186
+ def current_configinfo(key=nil)
187
+ @t.current_tag_configinfo @id, key
188
+ end
189
+
190
+ #def bind(seq, cmd=Proc.new, *args)
191
+ # _bind([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
192
+ # self
193
+ #end
194
+ def bind(seq, *args)
195
+ # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
196
+ if TkComm._callback_entry?(args[0]) || !block_given?
197
+ cmd = args.shift
198
+ else
199
+ cmd = Proc.new
200
+ end
201
+ _bind([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
202
+ self
203
+ end
204
+
205
+ #def bind_append(seq, cmd=Proc.new, *args)
206
+ # _bind_append([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
207
+ # self
208
+ #end
209
+ def bind_append(seq, *args)
210
+ # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
211
+ if TkComm._callback_entry?(args[0]) || !block_given?
212
+ cmd = args.shift
213
+ else
214
+ cmd = Proc.new
215
+ end
216
+ _bind_append([@t.path, 'tag', 'bind', @id], seq, cmd, *args)
217
+ self
218
+ end
219
+
220
+ def bind_remove(seq)
221
+ _bind_remove([@t.path, 'tag', 'bind', @id], seq)
222
+ self
223
+ end
224
+
225
+ def bindinfo(context=nil)
226
+ _bindinfo([@t.path, 'tag', 'bind', @id], context)
227
+ end
228
+
229
+ def raise(above=None)
230
+ tk_call_without_enc(@t.path, 'tag', 'raise', @id,
231
+ _get_eval_enc_str(above))
232
+ self
233
+ end
234
+
235
+ def lower(below=None)
236
+ tk_call_without_enc(@t.path, 'tag', 'lower', @id,
237
+ _get_eval_enc_str(below))
238
+ self
239
+ end
240
+
241
+ def destroy
242
+ tk_call_without_enc(@t.path, 'tag', 'delete', @id)
243
+ TTagID_TBL.mutex.synchronize{
244
+ TTagID_TBL[@tpath].delete(@id) if TTagID_TBL[@tpath]
245
+ }
246
+ self
247
+ end
248
+ end
249
+ TktTag = TkTextTag
250
+
251
+ class TkTextNamedTag<TkTextTag
252
+ def self.new(parent, name, *args)
253
+ tagobj = nil
254
+ TTagID_TBL.mutex.synchronize{
255
+ if TTagID_TBL[parent.path] && TTagID_TBL[parent.path][name]
256
+ tagobj = TTagID_TBL[parent.path][name]
257
+ else
258
+ # super(parent, name, *args)
259
+ (tagobj = self.allocate).instance_eval{
260
+ @parent = @t = parent
261
+ @tpath = parent.path
262
+ @path = @id = name
263
+ TTagID_TBL[@id] = self
264
+ TTagID_TBL[@tpath] = {} unless TTagID_TBL[@tpath]
265
+ TTagID_TBL[@tpath][@id] = self unless TTagID_TBL[@tpath][@id]
266
+ @t._addtag @id, self
267
+ }
268
+ end
269
+ }
270
+
271
+ if args != []
272
+ keys = args.pop
273
+ if keys.kind_of?(Hash)
274
+ tagobj.add(*args) if args != []
275
+ tagobj.configure(keys)
276
+ else
277
+ args.push keys
278
+ tagobj.add(*args)
279
+ end
280
+ end
281
+
282
+ tagobj
283
+ end
284
+
285
+ def initialize(parent, name, *args)
286
+ # dummy:: not called by 'new' method
287
+
288
+ #unless parent.kind_of?(Tk::Text)
289
+ # fail ArgumentError, "expect Tk::Text for 1st argument"
290
+ #end
291
+ @parent = @t = parent
292
+ @tpath = parent.path
293
+ @path = @id = name
294
+
295
+ #if mode
296
+ # tk_call @t.path, "addtag", @id, *args
297
+ #end
298
+ if args != []
299
+ keys = args.pop
300
+ if keys.kind_of?(Hash)
301
+ add(*args) if args != []
302
+ configure(keys)
303
+ else
304
+ args.push keys
305
+ add(*args)
306
+ end
307
+ end
308
+ @t._addtag @id, self
309
+ end
310
+ end
311
+ TktNamedTag = TkTextNamedTag
312
+
313
+ class TkTextTagSel<TkTextNamedTag
314
+ def self.new(parent, *args)
315
+ super(parent, 'sel', *args)
316
+ end
317
+ end
318
+ TktTagSel = TkTextTagSel