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,13 @@
1
+ #
2
+ # TclX support
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ # call setup script for general 'tkextlib' libraries
7
+ require 'tkextlib/setup.rb'
8
+
9
+ # call setup script
10
+ require 'tkextlib/tclx/setup.rb'
11
+
12
+ # load library
13
+ require 'tkextlib/tclx/tclx'
@@ -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,74 @@
1
+ #
2
+ # tclx/tclx.rb
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/tclx/setup.rb'
12
+
13
+ # TkPackage.require('Tclx', '8.0')
14
+ TkPackage.require('Tclx')
15
+
16
+ module Tk
17
+ module TclX
18
+ PACKAGE_NAME = 'Tclx'.freeze
19
+ def self.package_name
20
+ PACKAGE_NAME
21
+ end
22
+
23
+ def self.package_version
24
+ begin
25
+ TkPackage.require('Tclx')
26
+ rescue
27
+ ''
28
+ end
29
+ end
30
+
31
+ def self.infox(*args)
32
+ Tk.tk_call('infox', *args)
33
+ end
34
+
35
+ def self.signal(*args)
36
+ warn("Warning: Don't recommend to use TclX's 'signal' command. Please use Ruby's 'Signal.trap' method")
37
+ Tk.tk_call('signal', *args)
38
+ end
39
+
40
+ def self.signal_restart(*args)
41
+ warn("Warning: Don't recommend to use TclX's 'signal' command. Please use Ruby's 'Signal.trap' method")
42
+ Tk.tk_call('signal', '-restart', *args)
43
+ end
44
+
45
+ ##############################
46
+
47
+ class XPG3_MsgCat
48
+ class << self
49
+ alias open new
50
+ end
51
+
52
+ def initialize(catname, fail_mode=false)
53
+ if fail_mode
54
+ @msgcat_id = Tk.tk_call('catopen', '-fail', catname)
55
+ else
56
+ @msgcat_id = Tk.tk_call('catopen', '-nofail', catname)
57
+ end
58
+ end
59
+
60
+ def close(fail_mode=false)
61
+ if fail_mode
62
+ Tk.tk_call('catclose', '-fail', @msgcat_id)
63
+ else
64
+ Tk.tk_call('catclose', '-nofail', @msgcat_id)
65
+ end
66
+ self
67
+ end
68
+
69
+ def get(setnum, msgnum, defaultstr)
70
+ Tk.tk_call('catgets', @msgcat_id, setnum, msgnum, defaultstr)
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,419 @@
1
+ #
2
+ # Tile theme engin (tile widget set) support
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/ttk_selector'
8
+
9
+ # call setup script for general 'tkextlib' libraries
10
+ require 'tkextlib/setup.rb'
11
+
12
+ # library directory
13
+ require 'tkextlib/tile/setup.rb'
14
+
15
+ # load package
16
+ # TkPackage.require('tile', '0.4')
17
+ # TkPackage.require('tile', '0.6')
18
+ # TkPackage.require('tile', '0.7')
19
+ if Tk::TK_MAJOR_VERSION > 8 ||
20
+ (Tk::TK_MAJOR_VERSION == 8 && Tk::TK_MINOR_VERSION >= 5)
21
+ TkPackage.require('tile') # for compatibility (version check of 'tile')
22
+ verstr = TkPackage.require('Ttk')
23
+ else
24
+ verstr = TkPackage.require('tile')
25
+ end
26
+
27
+ ver = verstr.split('.')
28
+ if ver[0].to_i == 0
29
+ # Tile extension package
30
+ if ver[1].to_i <= 4
31
+ # version 0.4 or former
32
+ module Tk
33
+ module Tile
34
+ USE_TILE_NAMESPACE = true
35
+ USE_TTK_NAMESPACE = false
36
+ TILE_SPEC_VERSION_ID = 0
37
+ end
38
+ end
39
+ elsif ver[1].to_i <= 6
40
+ # version 0.5 -- version 0.6
41
+ module Tk
42
+ module Tile
43
+ USE_TILE_NAMESPACE = true
44
+ USE_TTK_NAMESPACE = true
45
+ TILE_SPEC_VERSION_ID = 5
46
+ end
47
+ end
48
+ elsif ver[1].to_i <= 7
49
+ module Tk
50
+ module Tile
51
+ USE_TILE_NAMESPACE = false
52
+ USE_TTK_NAMESPACE = true
53
+ TILE_SPEC_VERSION_ID = 7
54
+ end
55
+ end
56
+ else
57
+ # version 0.8 or later
58
+ module Tk
59
+ module Tile
60
+ USE_TILE_NAMESPACE = false
61
+ USE_TTK_NAMESPACE = true
62
+ TILE_SPEC_VERSION_ID = 8
63
+ end
64
+ end
65
+ end
66
+
67
+ module Tk::Tile
68
+ PACKAGE_NAME = 'tile'.freeze
69
+ end
70
+ else
71
+ # Ttk package merged Tcl/Tk core (Tcl/Tk 8.5+)
72
+ module Tk
73
+ module Tile
74
+ USE_TILE_NAMESPACE = false
75
+ USE_TTK_NAMESPACE = true
76
+ TILE_SPEC_VERSION_ID = 8
77
+
78
+ PACKAGE_NAME = 'Ttk'.freeze
79
+ end
80
+ end
81
+ end
82
+
83
+ # autoload
84
+ module Tk
85
+ module Tile
86
+ TkComm::TkExtlibAutoloadModule.unshift(self)
87
+
88
+ def self.package_name
89
+ PACKAGE_NAME
90
+ end
91
+
92
+ def self.package_version
93
+ begin
94
+ TkPackage.require(PACKAGE_NAME)
95
+ rescue
96
+ ''
97
+ end
98
+ end
99
+
100
+ def self.__Import_Tile_Widgets__!
101
+ warn 'Warning: "Tk::Tile::__Import_Tile_Widgets__!" is obsolete.' <<
102
+ ' To control default widget set, use "Tk.default_widget_set = :Ttk"'
103
+ Tk.tk_call('namespace', 'import', '-force', 'ttk::*')
104
+ end
105
+
106
+ def self.__define_LoadImages_proc_for_compatibility__!
107
+ # Ttk 8.5 (Tile 0.8) lost 'LoadImages' utility procedure.
108
+ # So, some old scripts doen't work, because those scripts use the
109
+ # procedure to define local styles.
110
+ # Of course, rewriting such Tcl/Tk scripts isn't difficult for
111
+ # Tcl/Tk users. However, it may be troublesome for Ruby/Tk users
112
+ # who use such Tcl/Tk scripts as it is.
113
+ # This method may help Ruby/Tk users who don't want to modify old
114
+ # Tcl/Tk scripts for the latest version of Ttk (Tile) extension.
115
+ # This method defines a comaptible 'LoadImages' procedure on the
116
+ # Tcl/Tk interpreter working under Ruby/Tk.
117
+ # Please give attention to use this method. It may conflict with
118
+ # some definitions on Tcl/Tk scripts.
119
+ klass_name = self.name
120
+ proc_name = 'LoadImages'
121
+ if Tk::Tile::USE_TTK_NAMESPACE
122
+ ns_list = ['::tile']
123
+ if Tk.info(:commands, "::ttk::#{proc_name}").empty?
124
+ ns_list << '::ttk'
125
+ end
126
+ else # Tk::Tile::USE_TILE_NAMESPACE
127
+ ns_list = ['::ttk']
128
+ if Tk.info(:commands, "::tile::#{proc_name}").empty?
129
+ ns_list << '::tile'
130
+ end
131
+ end
132
+
133
+ ns_list.each{|ns|
134
+ cmd = "#{ns}::#{proc_name}"
135
+ unless Tk.info(:commands, cmd).empty?
136
+ #fail RuntimeError, "can't define '#{cmd}' command (already exist)"
137
+
138
+ # do nothing !!!
139
+ warn "Warning: can't define '#{cmd}' command (already exist)" if $DEBUG
140
+ next
141
+ end
142
+ TkNamespace.eval(ns){
143
+ TkCore::INTERP.add_tk_procs(proc_name, 'imgdir {patterns {*.gif}}',
144
+ <<-'EOS')
145
+ foreach pattern $patterns {
146
+ foreach file [glob -directory $imgdir $pattern] {
147
+ set img [file tail [file rootname $file]]
148
+ if {![info exists images($img)]} {
149
+ set images($img) [image create photo -file $file]
150
+ }
151
+ }
152
+ }
153
+ return [array get images]
154
+ EOS
155
+ }
156
+ }
157
+ end
158
+
159
+ def self.load_images(imgdir, pat=nil)
160
+ if Tk::Tile::TILE_SPEC_VERSION_ID < 8
161
+ if Tk::Tile::USE_TTK_NAMESPACE
162
+ cmd = '::ttk::LoadImages'
163
+ else # Tk::Tile::USE_TILE_NAMESPACE
164
+ cmd = '::tile::LoadImages'
165
+ end
166
+ pat ||= TkComm::None
167
+ images = Hash[*TkComm.simplelist(Tk.tk_call(cmd, imgdir, pat))]
168
+ images.keys.each{|k|
169
+ images[k] = TkPhotoImage.new(:imagename=>images[k],
170
+ :without_creating=>true)
171
+ }
172
+ else ## TILE_SPEC_VERSION_ID >= 8
173
+ pat ||= '*.gif'
174
+ if pat.kind_of?(Array)
175
+ pat_list = pat
176
+ else
177
+ pat_list = [ pat ]
178
+ end
179
+ Dir.chdir(imgdir){
180
+ pat_list.each{|pat|
181
+ Dir.glob(pat).each{|f|
182
+ img = File.basename(f, '.*')
183
+ unless TkComm.bool(Tk.info('exists', "images(#{img})"))
184
+ Tk.tk_call('set', "images(#{img})",
185
+ Tk.tk_call('image', 'create', 'photo', '-file', f))
186
+ end
187
+ }
188
+ }
189
+ }
190
+ images = Hash[*TkComm.simplelist(Tk.tk_call('array', 'get', 'images'))]
191
+ images.keys.each{|k|
192
+ images[k] = TkPhotoImage.new(:imagename=>images[k],
193
+ :without_creating=>true)
194
+ }
195
+ end
196
+
197
+ images
198
+ end
199
+
200
+ def self.style(*args)
201
+ args.map!{|arg| TkComm._get_eval_string(arg)}.join('.')
202
+ end
203
+
204
+ def self.themes(glob_ptn = nil)
205
+ if TILE_SPEC_VERSION_ID < 8 && Tk.info(:commands, '::ttk::themes').empty?
206
+ fail RuntimeError, 'not support glob option' if glob_ptn
207
+ cmd = ['::tile::availableThemes']
208
+ else
209
+ glob_ptn = '*' unless glob_ptn
210
+ cmd = ['::ttk::themes', glob_ptn]
211
+ end
212
+
213
+ begin
214
+ TkComm.simplelist(Tk.tk_call_without_enc(*cmd))
215
+ rescue
216
+ TkComm.simplelist(Tk.tk_call('lsearch', '-all', '-inline',
217
+ Tk::Tile::Style.theme_names,
218
+ glob_ptn))
219
+ end
220
+ end
221
+
222
+ def self.set_theme(theme)
223
+ if TILE_SPEC_VERSION_ID < 8 && Tk.info(:commands, '::ttk::setTheme').empty?
224
+ cmd = '::tile::setTheme'
225
+ else
226
+ cmd = '::ttk::setTheme'
227
+ end
228
+
229
+ begin
230
+ Tk.tk_call_without_enc(cmd, theme)
231
+ rescue
232
+ Tk::Tile::Style.theme_use(theme)
233
+ end
234
+ end
235
+
236
+ module KeyNav
237
+ if Tk::Tile::TILE_SPEC_VERSION_ID < 8
238
+ def self.enableMnemonics(w)
239
+ Tk.tk_call('::keynav::enableMnemonics', w)
240
+ end
241
+ def self.defaultButton(w)
242
+ Tk.tk_call('::keynav::defaultButton', w)
243
+ end
244
+ else # dummy
245
+ def self.enableMnemonics(w)
246
+ ""
247
+ end
248
+ def self.defaultButton(w)
249
+ ""
250
+ end
251
+ end
252
+ end
253
+
254
+ module Font
255
+ Default = 'TkDefaultFont'
256
+ Text = 'TkTextFont'
257
+ Heading = 'TkHeadingFont'
258
+ Caption = 'TkCaptionFont'
259
+ Tooltip = 'TkTooltipFont'
260
+
261
+ Fixed = 'TkFixedFont'
262
+ Menu = 'TkMenuFont'
263
+ SmallCaption = 'TkSmallCaptionFont'
264
+ Icon = 'TkIconFont'
265
+
266
+ TkFont::SYSTEM_FONT_NAMES.add [
267
+ 'TkDefaultFont', 'TkTextFont', 'TkHeadingFont',
268
+ 'TkCaptionFont', 'TkTooltipFont', 'TkFixedFont',
269
+ 'TkMenuFont', 'TkSmallCaptionFont', 'TkIconFont'
270
+ ]
271
+ end
272
+
273
+ module ParseStyleLayout
274
+ def _style_layout(lst)
275
+ ret = []
276
+ until lst.empty?
277
+ sub = [lst.shift]
278
+ keys = {}
279
+
280
+ until lst.empty?
281
+ if lst[0][0] == ?-
282
+ k = lst.shift[1..-1]
283
+ children = lst.shift
284
+ children = _style_layout(children) if children.kind_of?(Array)
285
+ keys[k] = children
286
+ else
287
+ break
288
+ end
289
+ end
290
+
291
+ sub << keys unless keys.empty?
292
+ ret << sub
293
+ end
294
+ ret
295
+ end
296
+ private :_style_layout
297
+ end
298
+
299
+ module TileWidget
300
+ include Tk::Tile::ParseStyleLayout
301
+
302
+ def __val2ruby_optkeys # { key=>proc, ... }
303
+ # The method is used to convert a opt-value to a ruby's object.
304
+ # When get the value of the option "key", "proc.call(value)" is called.
305
+ super().update('style'=>proc{|v| _style_layout(list(v))})
306
+ end
307
+ private :__val2ruby_optkeys
308
+
309
+ def ttk_instate(state, script=nil, &b)
310
+ if script
311
+ tk_send('instate', state, script)
312
+ elsif b
313
+ tk_send('instate', state, Proc.new(&b))
314
+ else
315
+ bool(tk_send('instate', state))
316
+ end
317
+ end
318
+ alias tile_instate ttk_instate
319
+
320
+ def ttk_state(state=nil)
321
+ if state
322
+ tk_send('state', state)
323
+ else
324
+ list(tk_send('state'))
325
+ end
326
+ end
327
+ alias tile_state ttk_state
328
+
329
+ def ttk_identify(x, y)
330
+ ret = tk_send_without_enc('identify', x, y)
331
+ (ret.empty?)? nil: ret
332
+ end
333
+ alias tile_identify ttk_identify
334
+
335
+ # remove instate/state/identify method
336
+ # to avoid the conflict with widget options
337
+ if Tk.const_defined?(:USE_OBSOLETE_TILE_STATE_METHOD) && Tk::USE_OBSOLETE_TILE_STATE_METHOD
338
+ alias instate ttk_instate
339
+ alias state ttk_state
340
+ alias identify ttk_identify
341
+ end
342
+ end
343
+
344
+ ######################################
345
+
346
+ autoload :TButton, 'tkextlib/tile/tbutton'
347
+ autoload :Button, 'tkextlib/tile/tbutton'
348
+
349
+ autoload :TCheckButton, 'tkextlib/tile/tcheckbutton'
350
+ autoload :CheckButton, 'tkextlib/tile/tcheckbutton'
351
+ autoload :TCheckbutton, 'tkextlib/tile/tcheckbutton'
352
+ autoload :Checkbutton, 'tkextlib/tile/tcheckbutton'
353
+
354
+ autoload :Dialog, 'tkextlib/tile/dialog'
355
+
356
+ autoload :TEntry, 'tkextlib/tile/tentry'
357
+ autoload :Entry, 'tkextlib/tile/tentry'
358
+
359
+ autoload :TCombobox, 'tkextlib/tile/tcombobox'
360
+ autoload :Combobox, 'tkextlib/tile/tcombobox'
361
+
362
+ autoload :TFrame, 'tkextlib/tile/tframe'
363
+ autoload :Frame, 'tkextlib/tile/tframe'
364
+
365
+ autoload :TLabelframe, 'tkextlib/tile/tlabelframe'
366
+ autoload :Labelframe, 'tkextlib/tile/tlabelframe'
367
+ autoload :TLabelFrame, 'tkextlib/tile/tlabelframe'
368
+ autoload :LabelFrame, 'tkextlib/tile/tlabelframe'
369
+
370
+ autoload :TLabel, 'tkextlib/tile/tlabel'
371
+ autoload :Label, 'tkextlib/tile/tlabel'
372
+
373
+ autoload :TMenubutton, 'tkextlib/tile/tmenubutton'
374
+ autoload :Menubutton, 'tkextlib/tile/tmenubutton'
375
+ autoload :TMenuButton, 'tkextlib/tile/tmenubutton'
376
+ autoload :MenuButton, 'tkextlib/tile/tmenubutton'
377
+
378
+ autoload :TNotebook, 'tkextlib/tile/tnotebook'
379
+ autoload :Notebook, 'tkextlib/tile/tnotebook'
380
+
381
+ autoload :TPaned, 'tkextlib/tile/tpaned'
382
+ autoload :Paned, 'tkextlib/tile/tpaned'
383
+ autoload :PanedWindow, 'tkextlib/tile/tpaned'
384
+ autoload :Panedwindow, 'tkextlib/tile/tpaned'
385
+
386
+ autoload :TProgressbar, 'tkextlib/tile/tprogressbar'
387
+ autoload :Progressbar, 'tkextlib/tile/tprogressbar'
388
+
389
+ autoload :TRadioButton, 'tkextlib/tile/tradiobutton'
390
+ autoload :RadioButton, 'tkextlib/tile/tradiobutton'
391
+ autoload :TRadiobutton, 'tkextlib/tile/tradiobutton'
392
+ autoload :Radiobutton, 'tkextlib/tile/tradiobutton'
393
+
394
+ autoload :TScale, 'tkextlib/tile/tscale'
395
+ autoload :Scale, 'tkextlib/tile/tscale'
396
+ autoload :TProgress, 'tkextlib/tile/tscale'
397
+ autoload :Progress, 'tkextlib/tile/tscale'
398
+
399
+ autoload :TScrollbar, 'tkextlib/tile/tscrollbar'
400
+ autoload :Scrollbar, 'tkextlib/tile/tscrollbar'
401
+ autoload :XScrollbar, 'tkextlib/tile/tscrollbar'
402
+ autoload :YScrollbar, 'tkextlib/tile/tscrollbar'
403
+
404
+ autoload :TSeparator, 'tkextlib/tile/tseparator'
405
+ autoload :Separator, 'tkextlib/tile/tseparator'
406
+
407
+ autoload :TSquare, 'tkextlib/tile/tsquare'
408
+ autoload :Square, 'tkextlib/tile/tsquare'
409
+
410
+ autoload :SizeGrip, 'tkextlib/tile/sizegrip'
411
+ autoload :Sizegrip, 'tkextlib/tile/sizegrip'
412
+
413
+ autoload :Treeview, 'tkextlib/tile/treeview'
414
+
415
+ autoload :Style, 'tkextlib/tile/style'
416
+ end
417
+ end
418
+
419
+ Ttk = Tk::Tile