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
data/ext/stubs.c ADDED
@@ -0,0 +1,531 @@
1
+ /************************************************
2
+
3
+ stubs.c - Tcl/Tk stubs support
4
+
5
+ ************************************************/
6
+
7
+ #include "ruby.h"
8
+ #include "stubs.h"
9
+ #include <tcl.h>
10
+ #include <tk.h>
11
+
12
+ /*------------------------------*/
13
+
14
+ static int nativethread_checked = 0;
15
+
16
+ static void
17
+ _nativethread_consistency_check(ip)
18
+ Tcl_Interp *ip;
19
+ {
20
+ if (nativethread_checked || ip == (Tcl_Interp *)NULL) {
21
+ return;
22
+ }
23
+
24
+ /* If the variable "tcl_platform(threaded)" exists,
25
+ then the Tcl interpreter was compiled with threads enabled. */
26
+ if (Tcl_GetVar2(ip, "tcl_platform", "threaded", TCL_GLOBAL_ONLY) != (char*)NULL) {
27
+ #ifdef HAVE_NATIVETHREAD
28
+ /* consistent */
29
+ #else
30
+ rb_warn("Inconsistency. Loaded Tcl/Tk libraries are enabled nativethread-support. But `tcltklib' is not. The inconsistency causes SEGV or other troubles frequently.");
31
+ #endif
32
+ } else {
33
+ #ifdef HAVE_NATIVETHREAD
34
+ rb_warning("Inconsistency.`tcltklib' is enabled nativethread-support. But loaded Tcl/Tk libraries are not. (Probably, the inconsistency doesn't cause any troubles.)");
35
+ #else
36
+ /* consistent */
37
+ #endif
38
+ }
39
+
40
+ Tcl_ResetResult(ip);
41
+
42
+ nativethread_checked = 1;
43
+ }
44
+
45
+ /*------------------------------*/
46
+
47
+ #if defined USE_TCL_STUBS && defined USE_TK_STUBS
48
+
49
+ #if defined _WIN32 || defined __CYGWIN__
50
+ # include "util.h"
51
+ # include <windows.h>
52
+ typedef HINSTANCE DL_HANDLE;
53
+ # define DL_OPEN LoadLibrary
54
+ # define DL_SYM GetProcAddress
55
+ # define TCL_INDEX 4
56
+ # define TK_INDEX 3
57
+ # define TCL_NAME "tcl89%s"
58
+ # define TK_NAME "tk89%s"
59
+ # undef DLEXT
60
+ # define DLEXT ".dll"
61
+ #elif defined HAVE_DLOPEN
62
+ # include <dlfcn.h>
63
+ typedef void *DL_HANDLE;
64
+ # define DL_OPEN(file) dlopen(file, RTLD_LAZY|RTLD_GLOBAL)
65
+ # define DL_SYM dlsym
66
+ # define TCL_INDEX 8
67
+ # define TK_INDEX 7
68
+ # define TCL_NAME "libtcl8.9%s"
69
+ # define TK_NAME "libtk8.9%s"
70
+ #endif
71
+
72
+ static DL_HANDLE tcl_dll = (DL_HANDLE)0;
73
+ static DL_HANDLE tk_dll = (DL_HANDLE)0;
74
+
75
+ int
76
+ #ifdef HAVE_PROTOTYPES
77
+ ruby_open_tcl_dll(char *appname)
78
+ #else
79
+ ruby_open_tcl_dll(appname)
80
+ char *appname;
81
+ #endif
82
+ {
83
+ void (*p_Tcl_FindExecutable)(const char *);
84
+ int n;
85
+ char *ruby_tcl_dll = 0;
86
+ char tcl_name[20];
87
+
88
+ if (tcl_dll) return TCLTK_STUBS_OK;
89
+
90
+ ruby_tcl_dll = getenv("RUBY_TCL_DLL");
91
+ #if defined _WIN32
92
+ if (ruby_tcl_dll) ruby_tcl_dll = ruby_strdup(ruby_tcl_dll);
93
+ #endif
94
+ if (ruby_tcl_dll) {
95
+ tcl_dll = (DL_HANDLE)DL_OPEN(ruby_tcl_dll);
96
+ } else {
97
+ snprintf(tcl_name, sizeof tcl_name, TCL_NAME, DLEXT);
98
+ /* examine from 8.9 to 8.1 */
99
+ for (n = '9'; n > '0'; n--) {
100
+ tcl_name[TCL_INDEX] = n;
101
+ tcl_dll = (DL_HANDLE)DL_OPEN(tcl_name);
102
+ if (tcl_dll)
103
+ break;
104
+ }
105
+ }
106
+
107
+ #if defined _WIN32
108
+ if (ruby_tcl_dll) ruby_xfree(ruby_tcl_dll);
109
+ #endif
110
+
111
+ if (!tcl_dll)
112
+ return NO_TCL_DLL;
113
+
114
+ p_Tcl_FindExecutable = (void (*)(const char *))DL_SYM(tcl_dll, "Tcl_FindExecutable");
115
+ if (!p_Tcl_FindExecutable)
116
+ return NO_FindExecutable;
117
+
118
+ if (appname) {
119
+ p_Tcl_FindExecutable(appname);
120
+ } else {
121
+ p_Tcl_FindExecutable("ruby");
122
+ }
123
+
124
+ return TCLTK_STUBS_OK;
125
+ }
126
+
127
+ int
128
+ ruby_open_tk_dll()
129
+ {
130
+ int n;
131
+ char *ruby_tk_dll = 0;
132
+ char tk_name[20];
133
+
134
+ if (!tcl_dll) {
135
+ /* int ret = ruby_open_tcl_dll(RSTRING_PTR(rb_argv0)); */
136
+ int ret = ruby_open_tcl_dll(rb_argv0 ? RSTRING_PTR(rb_argv0) : 0);
137
+ if (ret != TCLTK_STUBS_OK) return ret;
138
+ }
139
+
140
+ if (tk_dll) return TCLTK_STUBS_OK;
141
+
142
+ ruby_tk_dll = getenv("RUBY_TK_DLL");
143
+ if (ruby_tk_dll) {
144
+ tk_dll = (DL_HANDLE)DL_OPEN(ruby_tk_dll);
145
+ } else {
146
+ snprintf(tk_name, sizeof tk_name, TK_NAME, DLEXT);
147
+ /* examine from 8.9 to 8.1 */
148
+ for (n = '9'; n > '0'; n--) {
149
+ tk_name[TK_INDEX] = n;
150
+ tk_dll = (DL_HANDLE)DL_OPEN(tk_name);
151
+ if (tk_dll)
152
+ break;
153
+ }
154
+ }
155
+
156
+ if (!tk_dll)
157
+ return NO_TK_DLL;
158
+
159
+ return TCLTK_STUBS_OK;
160
+ }
161
+
162
+ int
163
+ #ifdef HAVE_PROTOTYPES
164
+ ruby_open_tcltk_dll(char *appname)
165
+ #else
166
+ ruby_open_tcltk_dll(appname)
167
+ char *appname;
168
+ #endif
169
+ {
170
+ return( ruby_open_tcl_dll(appname) || ruby_open_tk_dll() );
171
+ }
172
+
173
+ int
174
+ tcl_stubs_init_p()
175
+ {
176
+ return(tclStubsPtr != (TclStubs*)NULL);
177
+ }
178
+
179
+ int
180
+ tk_stubs_init_p()
181
+ {
182
+ return(tkStubsPtr != (TkStubs*)NULL);
183
+ }
184
+
185
+
186
+ Tcl_Interp *
187
+ #ifdef HAVE_PROTOTYPES
188
+ ruby_tcl_create_ip_and_stubs_init(int *st)
189
+ #else
190
+ ruby_tcl_create_ip_and_stubs_init(st)
191
+ int *st;
192
+ #endif
193
+ {
194
+ Tcl_Interp *tcl_ip;
195
+
196
+ if (st) *st = 0;
197
+
198
+ if (tcl_stubs_init_p()) {
199
+ tcl_ip = Tcl_CreateInterp();
200
+
201
+ if (!tcl_ip) {
202
+ if (st) *st = FAIL_CreateInterp;
203
+ return (Tcl_Interp*)NULL;
204
+ }
205
+
206
+ _nativethread_consistency_check(tcl_ip);
207
+
208
+ return tcl_ip;
209
+
210
+ } else {
211
+ Tcl_Interp *(*p_Tcl_CreateInterp)();
212
+ Tcl_Interp *(*p_Tcl_DeleteInterp)();
213
+
214
+ if (!tcl_dll) {
215
+ /* int ret = ruby_open_tcl_dll(RSTRING_PTR(rb_argv0)); */
216
+ int ret = ruby_open_tcl_dll(rb_argv0 ? RSTRING_PTR(rb_argv0) : 0);
217
+
218
+ if (ret != TCLTK_STUBS_OK) {
219
+ if (st) *st = ret;
220
+ return (Tcl_Interp*)NULL;
221
+ }
222
+ }
223
+
224
+ p_Tcl_CreateInterp
225
+ = (Tcl_Interp *(*)())DL_SYM(tcl_dll, "Tcl_CreateInterp");
226
+ if (!p_Tcl_CreateInterp) {
227
+ if (st) *st = NO_CreateInterp;
228
+ return (Tcl_Interp*)NULL;
229
+ }
230
+
231
+ p_Tcl_DeleteInterp
232
+ = (Tcl_Interp *(*)())DL_SYM(tcl_dll, "Tcl_DeleteInterp");
233
+ if (!p_Tcl_DeleteInterp) {
234
+ if (st) *st = NO_DeleteInterp;
235
+ return (Tcl_Interp*)NULL;
236
+ }
237
+
238
+ tcl_ip = (*p_Tcl_CreateInterp)();
239
+ if (!tcl_ip) {
240
+ if (st) *st = FAIL_CreateInterp;
241
+ return (Tcl_Interp*)NULL;
242
+ }
243
+
244
+ if (!Tcl_InitStubs(tcl_ip, "8.1", 0)) {
245
+ if (st) *st = FAIL_Tcl_InitStubs;
246
+ (*p_Tcl_DeleteInterp)(tcl_ip);
247
+ return (Tcl_Interp*)NULL;
248
+ }
249
+
250
+ _nativethread_consistency_check(tcl_ip);
251
+
252
+ return tcl_ip;
253
+ }
254
+ }
255
+
256
+ int
257
+ ruby_tcl_stubs_init()
258
+ {
259
+ int st;
260
+ Tcl_Interp *tcl_ip;
261
+
262
+ if (!tcl_stubs_init_p()) {
263
+ tcl_ip = ruby_tcl_create_ip_and_stubs_init(&st);
264
+
265
+ if (!tcl_ip) return st;
266
+
267
+ Tcl_DeleteInterp(tcl_ip);
268
+ }
269
+
270
+ return TCLTK_STUBS_OK;
271
+ }
272
+
273
+ int
274
+ #ifdef HAVE_PROTOTYPES
275
+ ruby_tk_stubs_init(Tcl_Interp *tcl_ip)
276
+ #else
277
+ ruby_tk_stubs_init(tcl_ip)
278
+ Tcl_Interp *tcl_ip;
279
+ #endif
280
+ {
281
+ Tcl_ResetResult(tcl_ip);
282
+
283
+ if (tk_stubs_init_p()) {
284
+ if (Tk_Init(tcl_ip) == TCL_ERROR) {
285
+ return FAIL_Tk_Init;
286
+ }
287
+ } else {
288
+ int (*p_Tk_Init)(Tcl_Interp *);
289
+
290
+ if (!tk_dll) {
291
+ int ret = ruby_open_tk_dll();
292
+ if (ret != TCLTK_STUBS_OK) return ret;
293
+ }
294
+
295
+ p_Tk_Init = (int (*)(Tcl_Interp *))DL_SYM(tk_dll, "Tk_Init");
296
+ if (!p_Tk_Init)
297
+ return NO_Tk_Init;
298
+
299
+ if ((*p_Tk_Init)(tcl_ip) == TCL_ERROR)
300
+ return FAIL_Tk_Init;
301
+
302
+ if (!Tk_InitStubs(tcl_ip, (char *)"8.1", 0))
303
+ return FAIL_Tk_InitStubs;
304
+ }
305
+
306
+ return TCLTK_STUBS_OK;
307
+ }
308
+
309
+ int
310
+ #ifdef HAVE_PROTOTYPES
311
+ ruby_tk_stubs_safeinit(Tcl_Interp *tcl_ip)
312
+ #else
313
+ ruby_tk_stubs_safeinit(tcl_ip)
314
+ Tcl_Interp *tcl_ip;
315
+ #endif
316
+ {
317
+ Tcl_ResetResult(tcl_ip);
318
+
319
+ if (tk_stubs_init_p()) {
320
+ if (Tk_SafeInit(tcl_ip) == TCL_ERROR)
321
+ return FAIL_Tk_Init;
322
+ } else {
323
+ int (*p_Tk_SafeInit)(Tcl_Interp *);
324
+
325
+ if (!tk_dll) {
326
+ int ret = ruby_open_tk_dll();
327
+ if (ret != TCLTK_STUBS_OK) return ret;
328
+ }
329
+
330
+ p_Tk_SafeInit = (int (*)(Tcl_Interp *))DL_SYM(tk_dll, "Tk_SafeInit");
331
+ if (!p_Tk_SafeInit)
332
+ return NO_Tk_Init;
333
+
334
+ if ((*p_Tk_SafeInit)(tcl_ip) == TCL_ERROR)
335
+ return FAIL_Tk_Init;
336
+
337
+ if (!Tk_InitStubs(tcl_ip, (char *)"8.1", 0))
338
+ return FAIL_Tk_InitStubs;
339
+ }
340
+
341
+ return TCLTK_STUBS_OK;
342
+ }
343
+
344
+ int
345
+ ruby_tcltk_stubs()
346
+ {
347
+ int st;
348
+ Tcl_Interp *tcl_ip;
349
+
350
+ /* st = ruby_open_tcltk_dll(RSTRING_PTR(rb_argv0)); */
351
+ st = ruby_open_tcltk_dll(rb_argv0 ? RSTRING_PTR(rb_argv0) : 0);
352
+ switch(st) {
353
+ case NO_FindExecutable:
354
+ return -7;
355
+ case NO_TCL_DLL:
356
+ case NO_TK_DLL:
357
+ return -1;
358
+ }
359
+
360
+ tcl_ip = ruby_tcl_create_ip_and_stubs_init(&st);
361
+ if (!tcl_ip) {
362
+ switch(st) {
363
+ case NO_CreateInterp:
364
+ case NO_DeleteInterp:
365
+ return -2;
366
+ case FAIL_CreateInterp:
367
+ return -3;
368
+ case FAIL_Tcl_InitStubs:
369
+ return -5;
370
+ }
371
+ }
372
+
373
+ st = ruby_tk_stubs_init(tcl_ip);
374
+ switch(st) {
375
+ case NO_Tk_Init:
376
+ Tcl_DeleteInterp(tcl_ip);
377
+ return -4;
378
+ case FAIL_Tk_Init:
379
+ case FAIL_Tk_InitStubs:
380
+ Tcl_DeleteInterp(tcl_ip);
381
+ return -6;
382
+ }
383
+
384
+ Tcl_DeleteInterp(tcl_ip);
385
+
386
+ return 0;
387
+ }
388
+
389
+ /*###################################################*/
390
+ #else /* ! USE_TCL_STUBS || ! USE_TK_STUBS) */
391
+ /*###################################################*/
392
+
393
+ static int open_tcl_dll = 0;
394
+ static int call_tk_stubs_init = 0;
395
+
396
+ int
397
+ #ifdef HAVE_PROTOTYPES
398
+ ruby_open_tcl_dll(char *appname)
399
+ #else
400
+ ruby_open_tcl_dll(appname)
401
+ char *appname;
402
+ #endif
403
+ {
404
+ if (appname) {
405
+ Tcl_FindExecutable(appname);
406
+ } else {
407
+ Tcl_FindExecutable("ruby");
408
+ }
409
+ open_tcl_dll = 1;
410
+
411
+ return TCLTK_STUBS_OK;
412
+ }
413
+
414
+ int
415
+ ruby_open_tk_dll()
416
+ {
417
+ if (!open_tcl_dll) {
418
+ /* ruby_open_tcl_dll(RSTRING_PTR(rb_argv0)); */
419
+ ruby_open_tcl_dll(rb_argv0 ? RSTRING_PTR(rb_argv0) : 0);
420
+ }
421
+
422
+ return TCLTK_STUBS_OK;
423
+ }
424
+
425
+ int
426
+ #ifdef HAVE_PROTOTYPES
427
+ ruby_open_tcltk_dll(char *appname)
428
+ #else
429
+ ruby_open_tcltk_dll(appname)
430
+ char *appname;
431
+ #endif
432
+ {
433
+ return( ruby_open_tcl_dll(appname) || ruby_open_tk_dll() );
434
+ }
435
+
436
+ int
437
+ tcl_stubs_init_p()
438
+ {
439
+ return 1;
440
+ }
441
+
442
+ int
443
+ tk_stubs_init_p()
444
+ {
445
+ return call_tk_stubs_init;
446
+ }
447
+
448
+ Tcl_Interp *
449
+ #ifdef HAVE_PROTOTYPES
450
+ ruby_tcl_create_ip_and_stubs_init(int *st)
451
+ #else
452
+ ruby_tcl_create_ip_and_stubs_init(st)
453
+ int *st;
454
+ #endif
455
+ {
456
+ Tcl_Interp *tcl_ip;
457
+
458
+ if (!open_tcl_dll) {
459
+ /* ruby_open_tcl_dll(RSTRING_PTR(rb_argv0)); */
460
+ ruby_open_tcl_dll(rb_argv0 ? RSTRING_PTR(rb_argv0) : 0);
461
+ }
462
+
463
+ if (st) *st = 0;
464
+ tcl_ip = Tcl_CreateInterp();
465
+ if (!tcl_ip) {
466
+ if (st) *st = FAIL_CreateInterp;
467
+ return (Tcl_Interp*)NULL;
468
+ }
469
+
470
+ _nativethread_consistency_check(tcl_ip);
471
+
472
+ return tcl_ip;
473
+ }
474
+
475
+ int
476
+ ruby_tcl_stubs_init()
477
+ {
478
+ return TCLTK_STUBS_OK;
479
+ }
480
+
481
+ int
482
+ #ifdef HAVE_PROTOTYPES
483
+ ruby_tk_stubs_init(Tcl_Interp *tcl_ip)
484
+ #else
485
+ ruby_tk_stubs_init(tcl_ip)
486
+ Tcl_Interp *tcl_ip;
487
+ #endif
488
+ {
489
+ if (Tk_Init(tcl_ip) == TCL_ERROR)
490
+ return FAIL_Tk_Init;
491
+
492
+ if (!call_tk_stubs_init) {
493
+ call_tk_stubs_init = 1;
494
+ }
495
+
496
+ return TCLTK_STUBS_OK;
497
+ }
498
+
499
+ int
500
+ #ifdef HAVE_PROTOTYPES
501
+ ruby_tk_stubs_safeinit(Tcl_Interp *tcl_ip)
502
+ #else
503
+ ruby_tk_stubs_safeinit(tcl_ip)
504
+ Tcl_Interp *tcl_ip;
505
+ #endif
506
+ {
507
+ #if TCL_MAJOR_VERSION >= 8
508
+ if (Tk_SafeInit(tcl_ip) == TCL_ERROR)
509
+ return FAIL_Tk_Init;
510
+
511
+ if (!call_tk_stubs_init) {
512
+ call_tk_stubs_init = 1;
513
+ }
514
+
515
+ return TCLTK_STUBS_OK;
516
+
517
+ #else /* TCL_MAJOR_VERSION < 8 */
518
+
519
+ return FAIL_Tk_Init;
520
+ #endif
521
+ }
522
+
523
+ int
524
+ ruby_tcltk_stubs()
525
+ {
526
+ /* Tcl_FindExecutable(RSTRING_PTR(rb_argv0)); */
527
+ Tcl_FindExecutable(rb_argv0 ? RSTRING_PTR(rb_argv0) : 0);
528
+ return 0;
529
+ }
530
+
531
+ #endif