tk 0.1.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 (1060) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +6 -0
  4. data/BSDL +22 -0
  5. data/ChangeLog.tkextlib +949 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +56 -0
  8. data/MANUAL_tcltklib.eng +467 -0
  9. data/MANUAL_tcltklib.ja +578 -0
  10. data/README.1st +19 -0
  11. data/README.ActiveTcl +62 -0
  12. data/README.fork +34 -0
  13. data/README.macosx-aqua +67 -0
  14. data/README.md +33 -0
  15. data/README.tcltklib +152 -0
  16. data/Rakefile +16 -0
  17. data/bin/console +14 -0
  18. data/bin/setup +8 -0
  19. data/ext/tk/config_list.in +41 -0
  20. data/ext/tk/extconf.rb +2098 -0
  21. data/ext/tk/old-extconf.rb +441 -0
  22. data/ext/tk/stubs.c +592 -0
  23. data/ext/tk/stubs.h +33 -0
  24. data/ext/tk/tcltklib.c +11066 -0
  25. data/ext/tk/tkutil/extconf.rb +14 -0
  26. data/ext/tk/tkutil/tkutil.c +1900 -0
  27. data/lib/README +30 -0
  28. data/lib/multi-tk.rb +3743 -0
  29. data/lib/remote-tk.rb +527 -0
  30. data/lib/tcltk.rb +369 -0
  31. data/lib/tk.rb +5758 -0
  32. data/lib/tk/after.rb +7 -0
  33. data/lib/tk/autoload.rb +763 -0
  34. data/lib/tk/bgerror.rb +30 -0
  35. data/lib/tk/bindtag.rb +139 -0
  36. data/lib/tk/busy.rb +119 -0
  37. data/lib/tk/button.rb +32 -0
  38. data/lib/tk/canvas.rb +847 -0
  39. data/lib/tk/canvastag.rb +460 -0
  40. data/lib/tk/checkbutton.rb +33 -0
  41. data/lib/tk/clipboard.rb +76 -0
  42. data/lib/tk/clock.rb +72 -0
  43. data/lib/tk/composite.rb +485 -0
  44. data/lib/tk/console.rb +53 -0
  45. data/lib/tk/dialog.rb +327 -0
  46. data/lib/tk/encodedstr.rb +188 -0
  47. data/lib/tk/entry.rb +121 -0
  48. data/lib/tk/event.rb +563 -0
  49. data/lib/tk/font.rb +2352 -0
  50. data/lib/tk/fontchooser.rb +181 -0
  51. data/lib/tk/frame.rb +133 -0
  52. data/lib/tk/grid.rb +280 -0
  53. data/lib/tk/image.rb +396 -0
  54. data/lib/tk/itemconfig.rb +1222 -0
  55. data/lib/tk/itemfont.rb +328 -0
  56. data/lib/tk/kinput.rb +72 -0
  57. data/lib/tk/label.rb +23 -0
  58. data/lib/tk/labelframe.rb +32 -0
  59. data/lib/tk/listbox.rb +285 -0
  60. data/lib/tk/macpkg.rb +81 -0
  61. data/lib/tk/menu.rb +719 -0
  62. data/lib/tk/menubar.rb +138 -0
  63. data/lib/tk/menuspec.rb +457 -0
  64. data/lib/tk/message.rb +25 -0
  65. data/lib/tk/mngfocus.rb +34 -0
  66. data/lib/tk/msgcat.rb +300 -0
  67. data/lib/tk/namespace.rb +547 -0
  68. data/lib/tk/optiondb.rb +372 -0
  69. data/lib/tk/optionobj.rb +213 -0
  70. data/lib/tk/pack.rb +108 -0
  71. data/lib/tk/package.rb +144 -0
  72. data/lib/tk/palette.rb +56 -0
  73. data/lib/tk/panedwindow.rb +261 -0
  74. data/lib/tk/place.rb +129 -0
  75. data/lib/tk/radiobutton.rb +74 -0
  76. data/lib/tk/root.rb +96 -0
  77. data/lib/tk/scale.rb +113 -0
  78. data/lib/tk/scrollable.rb +83 -0
  79. data/lib/tk/scrollbar.rb +184 -0
  80. data/lib/tk/scrollbox.rb +40 -0
  81. data/lib/tk/selection.rb +87 -0
  82. data/lib/tk/spinbox.rb +145 -0
  83. data/lib/tk/tagfont.rb +44 -0
  84. data/lib/tk/text.rb +1605 -0
  85. data/lib/tk/textimage.rb +89 -0
  86. data/lib/tk/textmark.rb +205 -0
  87. data/lib/tk/texttag.rb +322 -0
  88. data/lib/tk/textwindow.rb +155 -0
  89. data/lib/tk/timer.rb +666 -0
  90. data/lib/tk/tk_mac.rb +159 -0
  91. data/lib/tk/toplevel.rb +265 -0
  92. data/lib/tk/ttk_selector.rb +99 -0
  93. data/lib/tk/txtwin_abst.rb +40 -0
  94. data/lib/tk/validation.rb +398 -0
  95. data/lib/tk/variable.rb +1797 -0
  96. data/lib/tk/virtevent.rb +140 -0
  97. data/lib/tk/winfo.rb +393 -0
  98. data/lib/tk/winpkg.rb +157 -0
  99. data/lib/tk/wm.rb +553 -0
  100. data/lib/tk/xim.rb +123 -0
  101. data/lib/tkafter.rb +5 -0
  102. data/lib/tkbgerror.rb +5 -0
  103. data/lib/tkcanvas.rb +5 -0
  104. data/lib/tkclass.rb +48 -0
  105. data/lib/tkconsole.rb +5 -0
  106. data/lib/tkdialog.rb +5 -0
  107. data/lib/tkentry.rb +5 -0
  108. data/lib/tkextlib/ICONS.rb +14 -0
  109. data/lib/tkextlib/ICONS/icons.rb +130 -0
  110. data/lib/tkextlib/ICONS/setup.rb +9 -0
  111. data/lib/tkextlib/SUPPORT_STATUS +193 -0
  112. data/lib/tkextlib/blt.rb +190 -0
  113. data/lib/tkextlib/blt/barchart.rb +80 -0
  114. data/lib/tkextlib/blt/bitmap.rb +113 -0
  115. data/lib/tkextlib/blt/busy.rb +84 -0
  116. data/lib/tkextlib/blt/component.rb +2219 -0
  117. data/lib/tkextlib/blt/container.rb +29 -0
  118. data/lib/tkextlib/blt/cutbuffer.rb +24 -0
  119. data/lib/tkextlib/blt/dragdrop.rb +270 -0
  120. data/lib/tkextlib/blt/eps.rb +33 -0
  121. data/lib/tkextlib/blt/graph.rb +68 -0
  122. data/lib/tkextlib/blt/htext.rb +113 -0
  123. data/lib/tkextlib/blt/setup.rb +9 -0
  124. data/lib/tkextlib/blt/spline.rb +24 -0
  125. data/lib/tkextlib/blt/stripchart.rb +75 -0
  126. data/lib/tkextlib/blt/table.rb +413 -0
  127. data/lib/tkextlib/blt/tabnotebook.rb +111 -0
  128. data/lib/tkextlib/blt/tabset.rb +505 -0
  129. data/lib/tkextlib/blt/ted.rb +69 -0
  130. data/lib/tkextlib/blt/tile.rb +26 -0
  131. data/lib/tkextlib/blt/tile/button.rb +17 -0
  132. data/lib/tkextlib/blt/tile/checkbutton.rb +18 -0
  133. data/lib/tkextlib/blt/tile/frame.rb +17 -0
  134. data/lib/tkextlib/blt/tile/label.rb +17 -0
  135. data/lib/tkextlib/blt/tile/radiobutton.rb +18 -0
  136. data/lib/tkextlib/blt/tile/scrollbar.rb +17 -0
  137. data/lib/tkextlib/blt/tile/toplevel.rb +17 -0
  138. data/lib/tkextlib/blt/tree.rb +1059 -0
  139. data/lib/tkextlib/blt/treeview.rb +1288 -0
  140. data/lib/tkextlib/blt/unix_dnd.rb +142 -0
  141. data/lib/tkextlib/blt/vector.rb +257 -0
  142. data/lib/tkextlib/blt/watch.rb +176 -0
  143. data/lib/tkextlib/blt/win_printer.rb +62 -0
  144. data/lib/tkextlib/blt/winop.rb +108 -0
  145. data/lib/tkextlib/bwidget.rb +154 -0
  146. data/lib/tkextlib/bwidget/arrowbutton.rb +22 -0
  147. data/lib/tkextlib/bwidget/bitmap.rb +22 -0
  148. data/lib/tkextlib/bwidget/button.rb +32 -0
  149. data/lib/tkextlib/bwidget/buttonbox.rb +91 -0
  150. data/lib/tkextlib/bwidget/combobox.rb +63 -0
  151. data/lib/tkextlib/bwidget/dialog.rb +195 -0
  152. data/lib/tkextlib/bwidget/dragsite.rb +32 -0
  153. data/lib/tkextlib/bwidget/dropsite.rb +40 -0
  154. data/lib/tkextlib/bwidget/dynamichelp.rb +64 -0
  155. data/lib/tkextlib/bwidget/entry.rb +44 -0
  156. data/lib/tkextlib/bwidget/label.rb +42 -0
  157. data/lib/tkextlib/bwidget/labelentry.rb +81 -0
  158. data/lib/tkextlib/bwidget/labelframe.rb +53 -0
  159. data/lib/tkextlib/bwidget/listbox.rb +362 -0
  160. data/lib/tkextlib/bwidget/mainframe.rb +133 -0
  161. data/lib/tkextlib/bwidget/messagedlg.rb +193 -0
  162. data/lib/tkextlib/bwidget/notebook.rb +167 -0
  163. data/lib/tkextlib/bwidget/pagesmanager.rb +74 -0
  164. data/lib/tkextlib/bwidget/panedwindow.rb +43 -0
  165. data/lib/tkextlib/bwidget/panelframe.rb +68 -0
  166. data/lib/tkextlib/bwidget/passwddlg.rb +45 -0
  167. data/lib/tkextlib/bwidget/progressbar.rb +21 -0
  168. data/lib/tkextlib/bwidget/progressdlg.rb +59 -0
  169. data/lib/tkextlib/bwidget/scrollableframe.rb +41 -0
  170. data/lib/tkextlib/bwidget/scrolledwindow.rb +49 -0
  171. data/lib/tkextlib/bwidget/scrollview.rb +26 -0
  172. data/lib/tkextlib/bwidget/selectcolor.rb +74 -0
  173. data/lib/tkextlib/bwidget/selectfont.rb +92 -0
  174. data/lib/tkextlib/bwidget/separator.rb +21 -0
  175. data/lib/tkextlib/bwidget/setup.rb +9 -0
  176. data/lib/tkextlib/bwidget/spinbox.rb +99 -0
  177. data/lib/tkextlib/bwidget/statusbar.rb +63 -0
  178. data/lib/tkextlib/bwidget/titleframe.rb +34 -0
  179. data/lib/tkextlib/bwidget/tree.rb +501 -0
  180. data/lib/tkextlib/bwidget/widget.rb +130 -0
  181. data/lib/tkextlib/itcl.rb +14 -0
  182. data/lib/tkextlib/itcl/incr_tcl.rb +179 -0
  183. data/lib/tkextlib/itcl/setup.rb +14 -0
  184. data/lib/tkextlib/itk.rb +14 -0
  185. data/lib/tkextlib/itk/incr_tk.rb +447 -0
  186. data/lib/tkextlib/itk/setup.rb +14 -0
  187. data/lib/tkextlib/iwidgets.rb +95 -0
  188. data/lib/tkextlib/iwidgets/buttonbox.rb +122 -0
  189. data/lib/tkextlib/iwidgets/calendar.rb +126 -0
  190. data/lib/tkextlib/iwidgets/canvasprintbox.rb +54 -0
  191. data/lib/tkextlib/iwidgets/canvasprintdialog.rb +39 -0
  192. data/lib/tkextlib/iwidgets/checkbox.rb +131 -0
  193. data/lib/tkextlib/iwidgets/combobox.rb +105 -0
  194. data/lib/tkextlib/iwidgets/dateentry.rb +21 -0
  195. data/lib/tkextlib/iwidgets/datefield.rb +59 -0
  196. data/lib/tkextlib/iwidgets/dialog.rb +21 -0
  197. data/lib/tkextlib/iwidgets/dialogshell.rb +122 -0
  198. data/lib/tkextlib/iwidgets/disjointlistbox.rb +51 -0
  199. data/lib/tkextlib/iwidgets/entryfield.rb +186 -0
  200. data/lib/tkextlib/iwidgets/extbutton.rb +41 -0
  201. data/lib/tkextlib/iwidgets/extfileselectionbox.rb +47 -0
  202. data/lib/tkextlib/iwidgets/extfileselectiondialog.rb +34 -0
  203. data/lib/tkextlib/iwidgets/feedback.rb +36 -0
  204. data/lib/tkextlib/iwidgets/fileselectionbox.rb +47 -0
  205. data/lib/tkextlib/iwidgets/fileselectiondialog.rb +34 -0
  206. data/lib/tkextlib/iwidgets/finddialog.rb +43 -0
  207. data/lib/tkextlib/iwidgets/hierarchy.rb +366 -0
  208. data/lib/tkextlib/iwidgets/hyperhelp.rb +51 -0
  209. data/lib/tkextlib/iwidgets/labeledframe.rb +40 -0
  210. data/lib/tkextlib/iwidgets/labeledwidget.rb +46 -0
  211. data/lib/tkextlib/iwidgets/mainwindow.rb +68 -0
  212. data/lib/tkextlib/iwidgets/menubar.rb +213 -0
  213. data/lib/tkextlib/iwidgets/messagebox.rb +94 -0
  214. data/lib/tkextlib/iwidgets/messagedialog.rb +21 -0
  215. data/lib/tkextlib/iwidgets/notebook.rb +176 -0
  216. data/lib/tkextlib/iwidgets/optionmenu.rb +93 -0
  217. data/lib/tkextlib/iwidgets/panedwindow.rb +135 -0
  218. data/lib/tkextlib/iwidgets/promptdialog.rb +132 -0
  219. data/lib/tkextlib/iwidgets/pushbutton.rb +36 -0
  220. data/lib/tkextlib/iwidgets/radiobox.rb +122 -0
  221. data/lib/tkextlib/iwidgets/scopedobject.rb +25 -0
  222. data/lib/tkextlib/iwidgets/scrolledcanvas.rb +354 -0
  223. data/lib/tkextlib/iwidgets/scrolledframe.rb +60 -0
  224. data/lib/tkextlib/iwidgets/scrolledhtml.rb +59 -0
  225. data/lib/tkextlib/iwidgets/scrolledlistbox.rb +208 -0
  226. data/lib/tkextlib/iwidgets/scrolledtext.rb +569 -0
  227. data/lib/tkextlib/iwidgets/scrolledwidget.rb +21 -0
  228. data/lib/tkextlib/iwidgets/selectionbox.rb +103 -0
  229. data/lib/tkextlib/iwidgets/selectiondialog.rb +93 -0
  230. data/lib/tkextlib/iwidgets/setup.rb +9 -0
  231. data/lib/tkextlib/iwidgets/shell.rb +39 -0
  232. data/lib/tkextlib/iwidgets/spindate.rb +49 -0
  233. data/lib/tkextlib/iwidgets/spinint.rb +31 -0
  234. data/lib/tkextlib/iwidgets/spinner.rb +170 -0
  235. data/lib/tkextlib/iwidgets/spintime.rb +49 -0
  236. data/lib/tkextlib/iwidgets/tabnotebook.rb +182 -0
  237. data/lib/tkextlib/iwidgets/tabset.rb +146 -0
  238. data/lib/tkextlib/iwidgets/timeentry.rb +26 -0
  239. data/lib/tkextlib/iwidgets/timefield.rb +59 -0
  240. data/lib/tkextlib/iwidgets/toolbar.rb +113 -0
  241. data/lib/tkextlib/iwidgets/watch.rb +57 -0
  242. data/lib/tkextlib/pkg_checker.rb +185 -0
  243. data/lib/tkextlib/setup.rb +9 -0
  244. data/lib/tkextlib/tcllib.rb +106 -0
  245. data/lib/tkextlib/tcllib/README +135 -0
  246. data/lib/tkextlib/tcllib/autoscroll.rb +159 -0
  247. data/lib/tkextlib/tcllib/calendar.rb +56 -0
  248. data/lib/tkextlib/tcllib/canvas_sqmap.rb +37 -0
  249. data/lib/tkextlib/tcllib/canvas_zoom.rb +22 -0
  250. data/lib/tkextlib/tcllib/chatwidget.rb +152 -0
  251. data/lib/tkextlib/tcllib/crosshair.rb +118 -0
  252. data/lib/tkextlib/tcllib/ctext.rb +161 -0
  253. data/lib/tkextlib/tcllib/cursor.rb +98 -0
  254. data/lib/tkextlib/tcllib/dateentry.rb +63 -0
  255. data/lib/tkextlib/tcllib/datefield.rb +58 -0
  256. data/lib/tkextlib/tcllib/diagrams.rb +225 -0
  257. data/lib/tkextlib/tcllib/dialog.rb +85 -0
  258. data/lib/tkextlib/tcllib/getstring.rb +135 -0
  259. data/lib/tkextlib/tcllib/history.rb +74 -0
  260. data/lib/tkextlib/tcllib/ico.rb +147 -0
  261. data/lib/tkextlib/tcllib/ip_entry.rb +76 -0
  262. data/lib/tkextlib/tcllib/khim.rb +69 -0
  263. data/lib/tkextlib/tcllib/menuentry.rb +48 -0
  264. data/lib/tkextlib/tcllib/ntext.rb +147 -0
  265. data/lib/tkextlib/tcllib/panelframe.rb +79 -0
  266. data/lib/tkextlib/tcllib/plotchart.rb +1405 -0
  267. data/lib/tkextlib/tcllib/ruler.rb +66 -0
  268. data/lib/tkextlib/tcllib/screenruler.rb +69 -0
  269. data/lib/tkextlib/tcllib/scrolledwindow.rb +58 -0
  270. data/lib/tkextlib/tcllib/scrollwin.rb +62 -0
  271. data/lib/tkextlib/tcllib/setup.rb +9 -0
  272. data/lib/tkextlib/tcllib/statusbar.rb +80 -0
  273. data/lib/tkextlib/tcllib/style.rb +62 -0
  274. data/lib/tkextlib/tcllib/superframe.rb +52 -0
  275. data/lib/tkextlib/tcllib/swaplist.rb +151 -0
  276. data/lib/tkextlib/tcllib/tablelist.rb +29 -0
  277. data/lib/tkextlib/tcllib/tablelist_core.rb +1073 -0
  278. data/lib/tkextlib/tcllib/tablelist_tile.rb +44 -0
  279. data/lib/tkextlib/tcllib/tkpiechart.rb +315 -0
  280. data/lib/tkextlib/tcllib/toolbar.rb +176 -0
  281. data/lib/tkextlib/tcllib/tooltip.rb +105 -0
  282. data/lib/tkextlib/tcllib/validator.rb +66 -0
  283. data/lib/tkextlib/tcllib/widget.rb +83 -0
  284. data/lib/tkextlib/tclx.rb +14 -0
  285. data/lib/tkextlib/tclx/setup.rb +9 -0
  286. data/lib/tkextlib/tclx/tclx.rb +75 -0
  287. data/lib/tkextlib/tile.rb +450 -0
  288. data/lib/tkextlib/tile/dialog.rb +103 -0
  289. data/lib/tkextlib/tile/setup.rb +9 -0
  290. data/lib/tkextlib/tile/sizegrip.rb +33 -0
  291. data/lib/tkextlib/tile/style.rb +337 -0
  292. data/lib/tkextlib/tile/tbutton.rb +35 -0
  293. data/lib/tkextlib/tile/tcheckbutton.rb +39 -0
  294. data/lib/tkextlib/tile/tcombobox.rb +56 -0
  295. data/lib/tkextlib/tile/tentry.rb +50 -0
  296. data/lib/tkextlib/tile/tframe.rb +35 -0
  297. data/lib/tkextlib/tile/tlabel.rb +35 -0
  298. data/lib/tkextlib/tile/tlabelframe.rb +39 -0
  299. data/lib/tkextlib/tile/tmenubutton.rb +39 -0
  300. data/lib/tkextlib/tile/tnotebook.rb +148 -0
  301. data/lib/tkextlib/tile/tpaned.rb +246 -0
  302. data/lib/tkextlib/tile/tprogressbar.rb +58 -0
  303. data/lib/tkextlib/tile/tradiobutton.rb +39 -0
  304. data/lib/tkextlib/tile/treeview.rb +1337 -0
  305. data/lib/tkextlib/tile/tscale.rb +57 -0
  306. data/lib/tkextlib/tile/tscrollbar.rb +64 -0
  307. data/lib/tkextlib/tile/tseparator.rb +35 -0
  308. data/lib/tkextlib/tile/tspinbox.rb +108 -0
  309. data/lib/tkextlib/tile/tsquare.rb +31 -0
  310. data/lib/tkextlib/tkDND.rb +19 -0
  311. data/lib/tkextlib/tkDND/setup.rb +9 -0
  312. data/lib/tkextlib/tkDND/shape.rb +126 -0
  313. data/lib/tkextlib/tkDND/tkdnd.rb +183 -0
  314. data/lib/tkextlib/tkHTML.rb +14 -0
  315. data/lib/tkextlib/tkHTML/htmlwidget.rb +454 -0
  316. data/lib/tkextlib/tkHTML/setup.rb +9 -0
  317. data/lib/tkextlib/tkimg.rb +37 -0
  318. data/lib/tkextlib/tkimg/README +26 -0
  319. data/lib/tkextlib/tkimg/bmp.rb +34 -0
  320. data/lib/tkextlib/tkimg/dted.rb +34 -0
  321. data/lib/tkextlib/tkimg/gif.rb +34 -0
  322. data/lib/tkextlib/tkimg/ico.rb +34 -0
  323. data/lib/tkextlib/tkimg/jpeg.rb +34 -0
  324. data/lib/tkextlib/tkimg/pcx.rb +34 -0
  325. data/lib/tkextlib/tkimg/pixmap.rb +45 -0
  326. data/lib/tkextlib/tkimg/png.rb +34 -0
  327. data/lib/tkextlib/tkimg/ppm.rb +34 -0
  328. data/lib/tkextlib/tkimg/ps.rb +34 -0
  329. data/lib/tkextlib/tkimg/raw.rb +34 -0
  330. data/lib/tkextlib/tkimg/setup.rb +9 -0
  331. data/lib/tkextlib/tkimg/sgi.rb +34 -0
  332. data/lib/tkextlib/tkimg/sun.rb +34 -0
  333. data/lib/tkextlib/tkimg/tga.rb +34 -0
  334. data/lib/tkextlib/tkimg/tiff.rb +34 -0
  335. data/lib/tkextlib/tkimg/window.rb +34 -0
  336. data/lib/tkextlib/tkimg/xbm.rb +34 -0
  337. data/lib/tkextlib/tkimg/xpm.rb +34 -0
  338. data/lib/tkextlib/tktable.rb +15 -0
  339. data/lib/tkextlib/tktable/setup.rb +9 -0
  340. data/lib/tkextlib/tktable/tktable.rb +967 -0
  341. data/lib/tkextlib/tktrans.rb +15 -0
  342. data/lib/tkextlib/tktrans/setup.rb +9 -0
  343. data/lib/tkextlib/tktrans/tktrans.rb +65 -0
  344. data/lib/tkextlib/treectrl.rb +14 -0
  345. data/lib/tkextlib/treectrl/setup.rb +9 -0
  346. data/lib/tkextlib/treectrl/tktreectrl.rb +2523 -0
  347. data/lib/tkextlib/trofs.rb +14 -0
  348. data/lib/tkextlib/trofs/setup.rb +9 -0
  349. data/lib/tkextlib/trofs/trofs.rb +52 -0
  350. data/lib/tkextlib/version.rb +7 -0
  351. data/lib/tkextlib/vu.rb +49 -0
  352. data/lib/tkextlib/vu/bargraph.rb +62 -0
  353. data/lib/tkextlib/vu/charts.rb +54 -0
  354. data/lib/tkextlib/vu/dial.rb +103 -0
  355. data/lib/tkextlib/vu/pie.rb +287 -0
  356. data/lib/tkextlib/vu/setup.rb +9 -0
  357. data/lib/tkextlib/vu/spinbox.rb +23 -0
  358. data/lib/tkextlib/winico.rb +15 -0
  359. data/lib/tkextlib/winico/setup.rb +9 -0
  360. data/lib/tkextlib/winico/winico.rb +225 -0
  361. data/lib/tkfont.rb +5 -0
  362. data/lib/tkmacpkg.rb +5 -0
  363. data/lib/tkmenubar.rb +5 -0
  364. data/lib/tkmngfocus.rb +5 -0
  365. data/lib/tkpalette.rb +5 -0
  366. data/lib/tkscrollbox.rb +5 -0
  367. data/lib/tktext.rb +5 -0
  368. data/lib/tkvirtevent.rb +5 -0
  369. data/lib/tkwinpkg.rb +5 -0
  370. data/old-README.tcltklib.ja +159 -0
  371. data/sample/24hr_clock.rb +287 -0
  372. data/sample/binding_sample.rb +88 -0
  373. data/sample/bindtag_sample.rb +128 -0
  374. data/sample/binstr_usage.rb +46 -0
  375. data/sample/btn_with_frame.rb +21 -0
  376. data/sample/cd_timer.rb +82 -0
  377. data/sample/cmd_res_test.rb +18 -0
  378. data/sample/cmd_resource +5 -0
  379. data/sample/demos-en/ChangeLog +64 -0
  380. data/sample/demos-en/ChangeLog.prev +9 -0
  381. data/sample/demos-en/README +138 -0
  382. data/sample/demos-en/README.1st +18 -0
  383. data/sample/demos-en/README.tkencoding +29 -0
  384. data/sample/demos-en/anilabel.rb +175 -0
  385. data/sample/demos-en/aniwave.rb +119 -0
  386. data/sample/demos-en/arrow.rb +250 -0
  387. data/sample/demos-en/bind.rb +128 -0
  388. data/sample/demos-en/bitmap.rb +76 -0
  389. data/sample/demos-en/browse1 +63 -0
  390. data/sample/demos-en/browse2 +82 -0
  391. data/sample/demos-en/button.rb +85 -0
  392. data/sample/demos-en/check.rb +73 -0
  393. data/sample/demos-en/check2.rb +110 -0
  394. data/sample/demos-en/clrpick.rb +88 -0
  395. data/sample/demos-en/colors.rb +159 -0
  396. data/sample/demos-en/combo.rb +97 -0
  397. data/sample/demos-en/cscroll.rb +137 -0
  398. data/sample/demos-en/ctext.rb +208 -0
  399. data/sample/demos-en/dialog1.rb +39 -0
  400. data/sample/demos-en/dialog2.rb +42 -0
  401. data/sample/demos-en/doc.org/README +7 -0
  402. data/sample/demos-en/doc.org/README.JP +14 -0
  403. data/sample/demos-en/doc.org/README.tk80 +46 -0
  404. data/sample/demos-en/doc.org/license.terms +39 -0
  405. data/sample/demos-en/doc.org/license.terms.tk80 +39 -0
  406. data/sample/demos-en/entry1.rb +59 -0
  407. data/sample/demos-en/entry2.rb +94 -0
  408. data/sample/demos-en/entry3.rb +221 -0
  409. data/sample/demos-en/filebox.rb +103 -0
  410. data/sample/demos-en/floor.rb +1724 -0
  411. data/sample/demos-en/floor2.rb +1723 -0
  412. data/sample/demos-en/form.rb +65 -0
  413. data/sample/demos-en/goldberg.rb +2007 -0
  414. data/sample/demos-en/hello +14 -0
  415. data/sample/demos-en/hscale.rb +76 -0
  416. data/sample/demos-en/icon.rb +106 -0
  417. data/sample/demos-en/image1.rb +66 -0
  418. data/sample/demos-en/image2.rb +108 -0
  419. data/sample/demos-en/image3.rb +126 -0
  420. data/sample/demos-en/items.rb +382 -0
  421. data/sample/demos-en/ixset +333 -0
  422. data/sample/demos-en/ixset2 +367 -0
  423. data/sample/demos-en/knightstour.rb +272 -0
  424. data/sample/demos-en/label.rb +73 -0
  425. data/sample/demos-en/labelframe.rb +96 -0
  426. data/sample/demos-en/mclist.rb +118 -0
  427. data/sample/demos-en/menu.rb +197 -0
  428. data/sample/demos-en/menu84.rb +216 -0
  429. data/sample/demos-en/menubu.rb +238 -0
  430. data/sample/demos-en/msgbox.rb +91 -0
  431. data/sample/demos-en/msgbox2.rb +92 -0
  432. data/sample/demos-en/paned1.rb +48 -0
  433. data/sample/demos-en/paned2.rb +95 -0
  434. data/sample/demos-en/pendulum.rb +241 -0
  435. data/sample/demos-en/plot.rb +125 -0
  436. data/sample/demos-en/puzzle.rb +135 -0
  437. data/sample/demos-en/radio.rb +87 -0
  438. data/sample/demos-en/radio2.rb +110 -0
  439. data/sample/demos-en/radio3.rb +118 -0
  440. data/sample/demos-en/rmt +268 -0
  441. data/sample/demos-en/rolodex +320 -0
  442. data/sample/demos-en/ruler.rb +206 -0
  443. data/sample/demos-en/sayings.rb +107 -0
  444. data/sample/demos-en/search.rb +188 -0
  445. data/sample/demos-en/spin.rb +66 -0
  446. data/sample/demos-en/square +81 -0
  447. data/sample/demos-en/states.rb +81 -0
  448. data/sample/demos-en/style.rb +232 -0
  449. data/sample/demos-en/tcolor +526 -0
  450. data/sample/demos-en/text.rb +129 -0
  451. data/sample/demos-en/textpeer.rb +77 -0
  452. data/sample/demos-en/timer +136 -0
  453. data/sample/demos-en/tkencoding.rb +43 -0
  454. data/sample/demos-en/toolbar.rb +131 -0
  455. data/sample/demos-en/tree.rb +120 -0
  456. data/sample/demos-en/ttkbut.rb +140 -0
  457. data/sample/demos-en/ttkmenu.rb +86 -0
  458. data/sample/demos-en/ttknote.rb +90 -0
  459. data/sample/demos-en/ttkpane.rb +214 -0
  460. data/sample/demos-en/ttkprogress.rb +67 -0
  461. data/sample/demos-en/twind.rb +292 -0
  462. data/sample/demos-en/twind2.rb +385 -0
  463. data/sample/demos-en/unicodeout.rb +115 -0
  464. data/sample/demos-en/vscale.rb +80 -0
  465. data/sample/demos-en/widget +1087 -0
  466. data/sample/demos-jp/README +54 -0
  467. data/sample/demos-jp/README.1st +20 -0
  468. data/sample/demos-jp/anilabel.rb +178 -0
  469. data/sample/demos-jp/aniwave.rb +121 -0
  470. data/sample/demos-jp/arrow.rb +248 -0
  471. data/sample/demos-jp/bind.rb +126 -0
  472. data/sample/demos-jp/bitmap.rb +75 -0
  473. data/sample/demos-jp/browse1 +63 -0
  474. data/sample/demos-jp/browse2 +82 -0
  475. data/sample/demos-jp/button.rb +84 -0
  476. data/sample/demos-jp/check.rb +71 -0
  477. data/sample/demos-jp/check2.rb +111 -0
  478. data/sample/demos-jp/clrpick.rb +85 -0
  479. data/sample/demos-jp/colors.rb +156 -0
  480. data/sample/demos-jp/combo.rb +99 -0
  481. data/sample/demos-jp/cscroll.rb +135 -0
  482. data/sample/demos-jp/ctext.rb +205 -0
  483. data/sample/demos-jp/dialog1.rb +40 -0
  484. data/sample/demos-jp/dialog2.rb +44 -0
  485. data/sample/demos-jp/doc.org/README +7 -0
  486. data/sample/demos-jp/doc.org/README.JP +14 -0
  487. data/sample/demos-jp/doc.org/README.tk80 +46 -0
  488. data/sample/demos-jp/doc.org/license.terms +39 -0
  489. data/sample/demos-jp/doc.org/license.terms.tk80 +39 -0
  490. data/sample/demos-jp/entry1.rb +61 -0
  491. data/sample/demos-jp/entry2.rb +92 -0
  492. data/sample/demos-jp/entry3.rb +226 -0
  493. data/sample/demos-jp/filebox.rb +103 -0
  494. data/sample/demos-jp/floor.rb +1722 -0
  495. data/sample/demos-jp/floor2.rb +1720 -0
  496. data/sample/demos-jp/form.rb +67 -0
  497. data/sample/demos-jp/goldberg.rb +2012 -0
  498. data/sample/demos-jp/hello +10 -0
  499. data/sample/demos-jp/hscale.rb +79 -0
  500. data/sample/demos-jp/icon.rb +104 -0
  501. data/sample/demos-jp/image1.rb +65 -0
  502. data/sample/demos-jp/image2.rb +107 -0
  503. data/sample/demos-jp/image3.rb +128 -0
  504. data/sample/demos-jp/items.rb +380 -0
  505. data/sample/demos-jp/ixset +333 -0
  506. data/sample/demos-jp/ixset2 +369 -0
  507. data/sample/demos-jp/knightstour.rb +274 -0
  508. data/sample/demos-jp/label.rb +70 -0
  509. data/sample/demos-jp/labelframe.rb +103 -0
  510. data/sample/demos-jp/mclist.rb +122 -0
  511. data/sample/demos-jp/menu.rb +202 -0
  512. data/sample/demos-jp/menu84.rb +214 -0
  513. data/sample/demos-jp/menu8x.rb +234 -0
  514. data/sample/demos-jp/menubu.rb +239 -0
  515. data/sample/demos-jp/msgbox.rb +90 -0
  516. data/sample/demos-jp/msgbox2.rb +91 -0
  517. data/sample/demos-jp/paned1.rb +53 -0
  518. data/sample/demos-jp/paned2.rb +101 -0
  519. data/sample/demos-jp/pendulum.rb +243 -0
  520. data/sample/demos-jp/plot.rb +127 -0
  521. data/sample/demos-jp/puzzle.rb +132 -0
  522. data/sample/demos-jp/radio.rb +85 -0
  523. data/sample/demos-jp/radio2.rb +113 -0
  524. data/sample/demos-jp/radio3.rb +120 -0
  525. data/sample/demos-jp/rmt +268 -0
  526. data/sample/demos-jp/rolodex +320 -0
  527. data/sample/demos-jp/rolodex-j +300 -0
  528. data/sample/demos-jp/ruler.rb +204 -0
  529. data/sample/demos-jp/sayings.rb +104 -0
  530. data/sample/demos-jp/search.rb +185 -0
  531. data/sample/demos-jp/spin.rb +72 -0
  532. data/sample/demos-jp/square +81 -0
  533. data/sample/demos-jp/states.rb +75 -0
  534. data/sample/demos-jp/style.rb +271 -0
  535. data/sample/demos-jp/tcolor +534 -0
  536. data/sample/demos-jp/text.rb +121 -0
  537. data/sample/demos-jp/textpeer.rb +83 -0
  538. data/sample/demos-jp/timer +136 -0
  539. data/sample/demos-jp/toolbar.rb +137 -0
  540. data/sample/demos-jp/tree.rb +121 -0
  541. data/sample/demos-jp/ttkbut.rb +146 -0
  542. data/sample/demos-jp/ttkmenu.rb +92 -0
  543. data/sample/demos-jp/ttknote.rb +98 -0
  544. data/sample/demos-jp/ttkpane.rb +217 -0
  545. data/sample/demos-jp/ttkprogress.rb +72 -0
  546. data/sample/demos-jp/twind.rb +293 -0
  547. data/sample/demos-jp/twind2.rb +385 -0
  548. data/sample/demos-jp/unicodeout.rb +120 -0
  549. data/sample/demos-jp/vscale.rb +81 -0
  550. data/sample/demos-jp/widget +1122 -0
  551. data/sample/editable_listbox.rb +149 -0
  552. data/sample/encstr_usage.rb +31 -0
  553. data/sample/figmemo_sample.rb +457 -0
  554. data/sample/images/earth.gif +0 -0
  555. data/sample/images/earthris.gif +0 -0
  556. data/sample/images/face.xbm +173 -0
  557. data/sample/images/flagdown.xbm +27 -0
  558. data/sample/images/flagup.xbm +27 -0
  559. data/sample/images/gray25.xbm +6 -0
  560. data/sample/images/grey.25 +6 -0
  561. data/sample/images/grey.5 +6 -0
  562. data/sample/images/letters.xbm +27 -0
  563. data/sample/images/noletter.xbm +27 -0
  564. data/sample/images/pattern.xbm +6 -0
  565. data/sample/images/tcllogo.gif +0 -0
  566. data/sample/images/teapot.ppm +31 -0
  567. data/sample/irbtk.rb +31 -0
  568. data/sample/irbtkw.rbw +156 -0
  569. data/sample/iso2022-kr.txt +2 -0
  570. data/sample/menubar1.rb +52 -0
  571. data/sample/menubar2.rb +57 -0
  572. data/sample/menubar3.rb +73 -0
  573. data/sample/msgs_rb/README +3 -0
  574. data/sample/msgs_rb/cs.msg +84 -0
  575. data/sample/msgs_rb/de.msg +88 -0
  576. data/sample/msgs_rb/el.msg +98 -0
  577. data/sample/msgs_rb/en.msg +83 -0
  578. data/sample/msgs_rb/en_gb.msg +7 -0
  579. data/sample/msgs_rb/eo.msg +87 -0
  580. data/sample/msgs_rb/es.msg +84 -0
  581. data/sample/msgs_rb/fr.msg +84 -0
  582. data/sample/msgs_rb/it.msg +84 -0
  583. data/sample/msgs_rb/ja.msg +13 -0
  584. data/sample/msgs_rb/nl.msg +123 -0
  585. data/sample/msgs_rb/pl.msg +87 -0
  586. data/sample/msgs_rb/ru.msg +87 -0
  587. data/sample/msgs_rb2/README +5 -0
  588. data/sample/msgs_rb2/de.msg +88 -0
  589. data/sample/msgs_rb2/ja.msg +85 -0
  590. data/sample/msgs_tk/README +4 -0
  591. data/sample/msgs_tk/cs.msg +84 -0
  592. data/sample/msgs_tk/de.msg +88 -0
  593. data/sample/msgs_tk/el.msg +103 -0
  594. data/sample/msgs_tk/en.msg +83 -0
  595. data/sample/msgs_tk/en_gb.msg +7 -0
  596. data/sample/msgs_tk/eo.msg +87 -0
  597. data/sample/msgs_tk/es.msg +84 -0
  598. data/sample/msgs_tk/fr.msg +84 -0
  599. data/sample/msgs_tk/it.msg +84 -0
  600. data/sample/msgs_tk/ja.msg +13 -0
  601. data/sample/msgs_tk/license.terms +39 -0
  602. data/sample/msgs_tk/nl.msg +123 -0
  603. data/sample/msgs_tk/pl.msg +87 -0
  604. data/sample/msgs_tk/ru.msg +87 -0
  605. data/sample/multi-ip_sample.rb +104 -0
  606. data/sample/multi-ip_sample2.rb +30 -0
  607. data/sample/optobj_sample.rb +68 -0
  608. data/sample/propagate.rb +31 -0
  609. data/sample/remote-ip_sample.rb +34 -0
  610. data/sample/remote-ip_sample2.rb +57 -0
  611. data/sample/resource.en +13 -0
  612. data/sample/resource.ja +13 -0
  613. data/sample/safe-tk.rb +132 -0
  614. data/sample/scrollframe.rb +250 -0
  615. data/sample/tcltklib/batsu.gif +0 -0
  616. data/sample/tcltklib/lines0.tcl +42 -0
  617. data/sample/tcltklib/lines1.rb +51 -0
  618. data/sample/tcltklib/lines2.rb +55 -0
  619. data/sample/tcltklib/lines3.rb +55 -0
  620. data/sample/tcltklib/lines4.rb +55 -0
  621. data/sample/tcltklib/maru.gif +0 -0
  622. data/sample/tcltklib/safeTk.rb +23 -0
  623. data/sample/tcltklib/sample0.rb +40 -0
  624. data/sample/tcltklib/sample1.rb +635 -0
  625. data/sample/tcltklib/sample2.rb +452 -0
  626. data/sample/tkalignbox.rb +236 -0
  627. data/sample/tkballoonhelp.rb +221 -0
  628. data/sample/tkbiff.rb +156 -0
  629. data/sample/tkbrowse.rb +80 -0
  630. data/sample/tkcombobox.rb +498 -0
  631. data/sample/tkdialog.rb +62 -0
  632. data/sample/tkextlib/ICONS/Orig_LICENSE.txt +61 -0
  633. data/sample/tkextlib/ICONS/tkIcons +195 -0
  634. data/sample/tkextlib/ICONS/tkIcons-sample.kde +658 -0
  635. data/sample/tkextlib/ICONS/tkIcons.kde +195 -0
  636. data/sample/tkextlib/ICONS/viewIcons.rb +330 -0
  637. data/sample/tkextlib/blt/barchart5.rb +102 -0
  638. data/sample/tkextlib/blt/calendar.rb +118 -0
  639. data/sample/tkextlib/blt/graph6.rb +2223 -0
  640. data/sample/tkextlib/blt/graph7.rb +41 -0
  641. data/sample/tkextlib/blt/graph7a.rb +64 -0
  642. data/sample/tkextlib/blt/graph7b.rb +42 -0
  643. data/sample/tkextlib/blt/graph7c.rb +46 -0
  644. data/sample/tkextlib/blt/images/buckskin.gif +0 -0
  645. data/sample/tkextlib/blt/images/chalk.gif +0 -0
  646. data/sample/tkextlib/blt/images/qv100.t.gif +0 -0
  647. data/sample/tkextlib/blt/images/rain.gif +0 -0
  648. data/sample/tkextlib/blt/images/sample.gif +0 -0
  649. data/sample/tkextlib/blt/pareto.rb +91 -0
  650. data/sample/tkextlib/blt/plot1.rb +10 -0
  651. data/sample/tkextlib/blt/plot1b.rb +11 -0
  652. data/sample/tkextlib/blt/readme.txt +2 -0
  653. data/sample/tkextlib/blt/scripts/stipples.rb +157 -0
  654. data/sample/tkextlib/blt/winop1.rb +41 -0
  655. data/sample/tkextlib/blt/winop2.rb +29 -0
  656. data/sample/tkextlib/bwidget/Orig_LICENSE.txt +53 -0
  657. data/sample/tkextlib/bwidget/basic.rb +199 -0
  658. data/sample/tkextlib/bwidget/bwidget.xbm +46 -0
  659. data/sample/tkextlib/bwidget/demo.rb +244 -0
  660. data/sample/tkextlib/bwidget/dnd.rb +47 -0
  661. data/sample/tkextlib/bwidget/manager.rb +151 -0
  662. data/sample/tkextlib/bwidget/select.rb +83 -0
  663. data/sample/tkextlib/bwidget/tmpldlg.rb +222 -0
  664. data/sample/tkextlib/bwidget/tree.rb +290 -0
  665. data/sample/tkextlib/bwidget/x1.xbm +2258 -0
  666. data/sample/tkextlib/iwidgets/catalog_demo/Orig_LICENSE.txt +42 -0
  667. data/sample/tkextlib/iwidgets/catalog_demo/images/box.xbm +14 -0
  668. data/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif +0 -0
  669. data/sample/tkextlib/iwidgets/catalog_demo/images/close.gif +0 -0
  670. data/sample/tkextlib/iwidgets/catalog_demo/images/copy.gif +0 -0
  671. data/sample/tkextlib/iwidgets/catalog_demo/images/cut.gif +0 -0
  672. data/sample/tkextlib/iwidgets/catalog_demo/images/exit.gif +0 -0
  673. data/sample/tkextlib/iwidgets/catalog_demo/images/find.gif +0 -0
  674. data/sample/tkextlib/iwidgets/catalog_demo/images/help.gif +0 -0
  675. data/sample/tkextlib/iwidgets/catalog_demo/images/line.xbm +14 -0
  676. data/sample/tkextlib/iwidgets/catalog_demo/images/mag.gif +0 -0
  677. data/sample/tkextlib/iwidgets/catalog_demo/images/new.gif +0 -0
  678. data/sample/tkextlib/iwidgets/catalog_demo/images/open.gif +0 -0
  679. data/sample/tkextlib/iwidgets/catalog_demo/images/oval.xbm +14 -0
  680. data/sample/tkextlib/iwidgets/catalog_demo/images/paste.gif +0 -0
  681. data/sample/tkextlib/iwidgets/catalog_demo/images/points.xbm +14 -0
  682. data/sample/tkextlib/iwidgets/catalog_demo/images/poly.gif +0 -0
  683. data/sample/tkextlib/iwidgets/catalog_demo/images/print.gif +0 -0
  684. data/sample/tkextlib/iwidgets/catalog_demo/images/ruler.gif +0 -0
  685. data/sample/tkextlib/iwidgets/catalog_demo/images/save.gif +0 -0
  686. data/sample/tkextlib/iwidgets/catalog_demo/images/select.gif +0 -0
  687. data/sample/tkextlib/iwidgets/catalog_demo/images/text.xbm +14 -0
  688. data/sample/tkextlib/iwidgets/sample/buttonbox.rb +23 -0
  689. data/sample/tkextlib/iwidgets/sample/calendar.rb +11 -0
  690. data/sample/tkextlib/iwidgets/sample/canvasprintbox.rb +9 -0
  691. data/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb +9 -0
  692. data/sample/tkextlib/iwidgets/sample/checkbox.rb +13 -0
  693. data/sample/tkextlib/iwidgets/sample/combobox.rb +33 -0
  694. data/sample/tkextlib/iwidgets/sample/dateentry.rb +8 -0
  695. data/sample/tkextlib/iwidgets/sample/datefield.rb +9 -0
  696. data/sample/tkextlib/iwidgets/sample/dialog.rb +21 -0
  697. data/sample/tkextlib/iwidgets/sample/dialogshell.rb +15 -0
  698. data/sample/tkextlib/iwidgets/sample/disjointlistbox.rb +17 -0
  699. data/sample/tkextlib/iwidgets/sample/entryfield-1.rb +40 -0
  700. data/sample/tkextlib/iwidgets/sample/entryfield-2.rb +45 -0
  701. data/sample/tkextlib/iwidgets/sample/entryfield-3.rb +41 -0
  702. data/sample/tkextlib/iwidgets/sample/extbutton.rb +21 -0
  703. data/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb +9 -0
  704. data/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb +30 -0
  705. data/sample/tkextlib/iwidgets/sample/feedback.rb +11 -0
  706. data/sample/tkextlib/iwidgets/sample/fileselectionbox.rb +9 -0
  707. data/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb +29 -0
  708. data/sample/tkextlib/iwidgets/sample/finddialog.rb +16 -0
  709. data/sample/tkextlib/iwidgets/sample/hierarchy.rb +26 -0
  710. data/sample/tkextlib/iwidgets/sample/hyperhelp.rb +15 -0
  711. data/sample/tkextlib/iwidgets/sample/labeledframe.rb +15 -0
  712. data/sample/tkextlib/iwidgets/sample/labeledwidget.rb +14 -0
  713. data/sample/tkextlib/iwidgets/sample/mainwindow.rb +65 -0
  714. data/sample/tkextlib/iwidgets/sample/menubar.rb +125 -0
  715. data/sample/tkextlib/iwidgets/sample/menubar2.rb +45 -0
  716. data/sample/tkextlib/iwidgets/sample/messagebox1.rb +20 -0
  717. data/sample/tkextlib/iwidgets/sample/messagebox2.rb +20 -0
  718. data/sample/tkextlib/iwidgets/sample/messagedialog.rb +45 -0
  719. data/sample/tkextlib/iwidgets/sample/notebook.rb +31 -0
  720. data/sample/tkextlib/iwidgets/sample/notebook2.rb +31 -0
  721. data/sample/tkextlib/iwidgets/sample/optionmenu.rb +15 -0
  722. data/sample/tkextlib/iwidgets/sample/panedwindow.rb +23 -0
  723. data/sample/tkextlib/iwidgets/sample/panedwindow2.rb +23 -0
  724. data/sample/tkextlib/iwidgets/sample/promptdialog.rb +18 -0
  725. data/sample/tkextlib/iwidgets/sample/pushbutton.rb +10 -0
  726. data/sample/tkextlib/iwidgets/sample/radiobox.rb +14 -0
  727. data/sample/tkextlib/iwidgets/sample/scrolledcanvas.rb +14 -0
  728. data/sample/tkextlib/iwidgets/sample/scrolledframe.rb +19 -0
  729. data/sample/tkextlib/iwidgets/sample/scrolledhtml.rb +16 -0
  730. data/sample/tkextlib/iwidgets/sample/scrolledlistbox.rb +23 -0
  731. data/sample/tkextlib/iwidgets/sample/scrolledtext.rb +12 -0
  732. data/sample/tkextlib/iwidgets/sample/selectionbox.rb +20 -0
  733. data/sample/tkextlib/iwidgets/sample/selectiondialog.rb +13 -0
  734. data/sample/tkextlib/iwidgets/sample/shell.rb +18 -0
  735. data/sample/tkextlib/iwidgets/sample/spindate.rb +8 -0
  736. data/sample/tkextlib/iwidgets/sample/spinint.rb +11 -0
  737. data/sample/tkextlib/iwidgets/sample/spinner.rb +34 -0
  738. data/sample/tkextlib/iwidgets/sample/spintime.rb +8 -0
  739. data/sample/tkextlib/iwidgets/sample/tabnotebook.rb +27 -0
  740. data/sample/tkextlib/iwidgets/sample/tabnotebook2.rb +31 -0
  741. data/sample/tkextlib/iwidgets/sample/tabset.rb +35 -0
  742. data/sample/tkextlib/iwidgets/sample/timeentry.rb +8 -0
  743. data/sample/tkextlib/iwidgets/sample/timefield.rb +9 -0
  744. data/sample/tkextlib/iwidgets/sample/toolbar.rb +153 -0
  745. data/sample/tkextlib/iwidgets/sample/watch.rb +19 -0
  746. data/sample/tkextlib/tcllib/Orig_LICENSE.txt +46 -0
  747. data/sample/tkextlib/tcllib/datefield.rb +30 -0
  748. data/sample/tkextlib/tcllib/plotdemos1.rb +159 -0
  749. data/sample/tkextlib/tcllib/plotdemos2.rb +72 -0
  750. data/sample/tkextlib/tcllib/plotdemos3.rb +84 -0
  751. data/sample/tkextlib/tcllib/xyplot.rb +18 -0
  752. data/sample/tkextlib/tile/Orig_LICENSE.txt +30 -0
  753. data/sample/tkextlib/tile/demo.rb +984 -0
  754. data/sample/tkextlib/tile/iconlib.tcl +110 -0
  755. data/sample/tkextlib/tile/readme.txt +2 -0
  756. data/sample/tkextlib/tile/repeater.tcl +117 -0
  757. data/sample/tkextlib/tile/themes/blue/blue.tcl +149 -0
  758. data/sample/tkextlib/tile/themes/blue/blue/arrowdown-h.gif +0 -0
  759. data/sample/tkextlib/tile/themes/blue/blue/arrowdown-p.gif +0 -0
  760. data/sample/tkextlib/tile/themes/blue/blue/arrowdown.gif +0 -0
  761. data/sample/tkextlib/tile/themes/blue/blue/arrowleft-h.gif +0 -0
  762. data/sample/tkextlib/tile/themes/blue/blue/arrowleft-p.gif +0 -0
  763. data/sample/tkextlib/tile/themes/blue/blue/arrowleft.gif +0 -0
  764. data/sample/tkextlib/tile/themes/blue/blue/arrowright-h.gif +0 -0
  765. data/sample/tkextlib/tile/themes/blue/blue/arrowright-p.gif +0 -0
  766. data/sample/tkextlib/tile/themes/blue/blue/arrowright.gif +0 -0
  767. data/sample/tkextlib/tile/themes/blue/blue/arrowup-h.gif +0 -0
  768. data/sample/tkextlib/tile/themes/blue/blue/arrowup-p.gif +0 -0
  769. data/sample/tkextlib/tile/themes/blue/blue/arrowup.gif +0 -0
  770. data/sample/tkextlib/tile/themes/blue/blue/button-h.gif +0 -0
  771. data/sample/tkextlib/tile/themes/blue/blue/button-n.gif +0 -0
  772. data/sample/tkextlib/tile/themes/blue/blue/button-n.xcf +0 -0
  773. data/sample/tkextlib/tile/themes/blue/blue/button-p.gif +0 -0
  774. data/sample/tkextlib/tile/themes/blue/blue/check-hc.gif +0 -0
  775. data/sample/tkextlib/tile/themes/blue/blue/check-hu.gif +0 -0
  776. data/sample/tkextlib/tile/themes/blue/blue/check-nc.gif +0 -0
  777. data/sample/tkextlib/tile/themes/blue/blue/check-nu.gif +0 -0
  778. data/sample/tkextlib/tile/themes/blue/blue/radio-hc.gif +0 -0
  779. data/sample/tkextlib/tile/themes/blue/blue/radio-hu.gif +0 -0
  780. data/sample/tkextlib/tile/themes/blue/blue/radio-nc.gif +0 -0
  781. data/sample/tkextlib/tile/themes/blue/blue/radio-nu.gif +0 -0
  782. data/sample/tkextlib/tile/themes/blue/blue/sb-thumb-p.gif +0 -0
  783. data/sample/tkextlib/tile/themes/blue/blue/sb-thumb.gif +0 -0
  784. data/sample/tkextlib/tile/themes/blue/blue/sb-vthumb-p.gif +0 -0
  785. data/sample/tkextlib/tile/themes/blue/blue/sb-vthumb.gif +0 -0
  786. data/sample/tkextlib/tile/themes/blue/blue/slider-p.gif +0 -0
  787. data/sample/tkextlib/tile/themes/blue/blue/slider.gif +0 -0
  788. data/sample/tkextlib/tile/themes/blue/blue/vslider-p.gif +0 -0
  789. data/sample/tkextlib/tile/themes/blue/blue/vslider.gif +0 -0
  790. data/sample/tkextlib/tile/themes/blue/pkgIndex.tcl +6 -0
  791. data/sample/tkextlib/tile/themes/keramik/keramik.tcl +194 -0
  792. data/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-n.gif +0 -0
  793. data/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-p.gif +0 -0
  794. data/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-n.gif +0 -0
  795. data/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-p.gif +0 -0
  796. data/sample/tkextlib/tile/themes/keramik/keramik/arrowright-n.gif +0 -0
  797. data/sample/tkextlib/tile/themes/keramik/keramik/arrowright-p.gif +0 -0
  798. data/sample/tkextlib/tile/themes/keramik/keramik/arrowup-n.gif +0 -0
  799. data/sample/tkextlib/tile/themes/keramik/keramik/arrowup-p.gif +0 -0
  800. data/sample/tkextlib/tile/themes/keramik/keramik/button-d.gif +0 -0
  801. data/sample/tkextlib/tile/themes/keramik/keramik/button-h.gif +0 -0
  802. data/sample/tkextlib/tile/themes/keramik/keramik/button-n.gif +0 -0
  803. data/sample/tkextlib/tile/themes/keramik/keramik/button-p.gif +0 -0
  804. data/sample/tkextlib/tile/themes/keramik/keramik/button-s.gif +0 -0
  805. data/sample/tkextlib/tile/themes/keramik/keramik/check-c.gif +0 -0
  806. data/sample/tkextlib/tile/themes/keramik/keramik/check-u.gif +0 -0
  807. data/sample/tkextlib/tile/themes/keramik/keramik/hsb-n.gif +0 -0
  808. data/sample/tkextlib/tile/themes/keramik/keramik/hsb-p.gif +0 -0
  809. data/sample/tkextlib/tile/themes/keramik/keramik/hslider-n.gif +0 -0
  810. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-a.gif +0 -0
  811. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-arrow-n.gif +0 -0
  812. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-d.gif +0 -0
  813. data/sample/tkextlib/tile/themes/keramik/keramik/mbut-n.gif +0 -0
  814. data/sample/tkextlib/tile/themes/keramik/keramik/radio-c.gif +0 -0
  815. data/sample/tkextlib/tile/themes/keramik/keramik/radio-u.gif +0 -0
  816. data/sample/tkextlib/tile/themes/keramik/keramik/tab-n.gif +0 -0
  817. data/sample/tkextlib/tile/themes/keramik/keramik/tab-p.gif +0 -0
  818. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-a.gif +0 -0
  819. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-n.gif +0 -0
  820. data/sample/tkextlib/tile/themes/keramik/keramik/tbar-p.gif +0 -0
  821. data/sample/tkextlib/tile/themes/keramik/keramik/vsb-n.gif +0 -0
  822. data/sample/tkextlib/tile/themes/keramik/keramik/vsb-p.gif +0 -0
  823. data/sample/tkextlib/tile/themes/keramik/keramik/vslider-n.gif +0 -0
  824. data/sample/tkextlib/tile/themes/keramik/pkgIndex.tcl +15 -0
  825. data/sample/tkextlib/tile/themes/kroc.rb +227 -0
  826. data/sample/tkextlib/tile/themes/kroc/kroc.tcl +163 -0
  827. data/sample/tkextlib/tile/themes/kroc/kroc/button-h.gif +0 -0
  828. data/sample/tkextlib/tile/themes/kroc/kroc/button-n.gif +0 -0
  829. data/sample/tkextlib/tile/themes/kroc/kroc/button-p.gif +0 -0
  830. data/sample/tkextlib/tile/themes/kroc/kroc/check-hc.gif +0 -0
  831. data/sample/tkextlib/tile/themes/kroc/kroc/check-hu.gif +0 -0
  832. data/sample/tkextlib/tile/themes/kroc/kroc/check-nc.gif +0 -0
  833. data/sample/tkextlib/tile/themes/kroc/kroc/check-nu.gif +0 -0
  834. data/sample/tkextlib/tile/themes/kroc/kroc/radio-hc.gif +0 -0
  835. data/sample/tkextlib/tile/themes/kroc/kroc/radio-hu.gif +0 -0
  836. data/sample/tkextlib/tile/themes/kroc/kroc/radio-nc.gif +0 -0
  837. data/sample/tkextlib/tile/themes/kroc/kroc/radio-nu.gif +0 -0
  838. data/sample/tkextlib/tile/themes/kroc/pkgIndex.tcl +15 -0
  839. data/sample/tkextlib/tile/themes/plastik/pkgIndex.tcl +16 -0
  840. data/sample/tkextlib/tile/themes/plastik/plastik.tcl +125 -0
  841. data/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-n.gif +0 -0
  842. data/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-p.gif +0 -0
  843. data/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-n.gif +0 -0
  844. data/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-p.gif +0 -0
  845. data/sample/tkextlib/tile/themes/plastik/plastik/arrowright-n.gif +0 -0
  846. data/sample/tkextlib/tile/themes/plastik/plastik/arrowright-p.gif +0 -0
  847. data/sample/tkextlib/tile/themes/plastik/plastik/arrowup-n.gif +0 -0
  848. data/sample/tkextlib/tile/themes/plastik/plastik/arrowup-p.gif +0 -0
  849. data/sample/tkextlib/tile/themes/plastik/plastik/button-h.gif +0 -0
  850. data/sample/tkextlib/tile/themes/plastik/plastik/button-n.gif +0 -0
  851. data/sample/tkextlib/tile/themes/plastik/plastik/button-p.gif +0 -0
  852. data/sample/tkextlib/tile/themes/plastik/plastik/check-hc.gif +0 -0
  853. data/sample/tkextlib/tile/themes/plastik/plastik/check-hu.gif +0 -0
  854. data/sample/tkextlib/tile/themes/plastik/plastik/check-nc.gif +0 -0
  855. data/sample/tkextlib/tile/themes/plastik/plastik/check-nu.gif +0 -0
  856. data/sample/tkextlib/tile/themes/plastik/plastik/check-pc.gif +0 -0
  857. data/sample/tkextlib/tile/themes/plastik/plastik/hsb-n.gif +0 -0
  858. data/sample/tkextlib/tile/themes/plastik/plastik/hslider-n.gif +0 -0
  859. data/sample/tkextlib/tile/themes/plastik/plastik/radio-hc.gif +0 -0
  860. data/sample/tkextlib/tile/themes/plastik/plastik/radio-hu.gif +0 -0
  861. data/sample/tkextlib/tile/themes/plastik/plastik/radio-nc.gif +0 -0
  862. data/sample/tkextlib/tile/themes/plastik/plastik/radio-nu.gif +0 -0
  863. data/sample/tkextlib/tile/themes/plastik/plastik/radio-pc.gif +0 -0
  864. data/sample/tkextlib/tile/themes/plastik/plastik/vsb-n.gif +0 -0
  865. data/sample/tkextlib/tile/themes/plastik/plastik/vslider-n.gif +0 -0
  866. data/sample/tkextlib/tile/toolbutton.tcl +152 -0
  867. data/sample/tkextlib/tkHTML/Orig_COPYRIGHT.txt +12 -0
  868. data/sample/tkextlib/tkHTML/README +12 -0
  869. data/sample/tkextlib/tkHTML/hv.rb +314 -0
  870. data/sample/tkextlib/tkHTML/page1/image1 +0 -0
  871. data/sample/tkextlib/tkHTML/page1/image10 +0 -0
  872. data/sample/tkextlib/tkHTML/page1/image11 +0 -0
  873. data/sample/tkextlib/tkHTML/page1/image12 +0 -0
  874. data/sample/tkextlib/tkHTML/page1/image13 +0 -0
  875. data/sample/tkextlib/tkHTML/page1/image14 +0 -0
  876. data/sample/tkextlib/tkHTML/page1/image2 +0 -0
  877. data/sample/tkextlib/tkHTML/page1/image3 +0 -0
  878. data/sample/tkextlib/tkHTML/page1/image4 +0 -0
  879. data/sample/tkextlib/tkHTML/page1/image5 +0 -0
  880. data/sample/tkextlib/tkHTML/page1/image6 +0 -0
  881. data/sample/tkextlib/tkHTML/page1/image7 +0 -0
  882. data/sample/tkextlib/tkHTML/page1/image8 +0 -0
  883. data/sample/tkextlib/tkHTML/page1/image9 +0 -0
  884. data/sample/tkextlib/tkHTML/page1/index.html +115 -0
  885. data/sample/tkextlib/tkHTML/page2/image1 +0 -0
  886. data/sample/tkextlib/tkHTML/page2/image10 +0 -0
  887. data/sample/tkextlib/tkHTML/page2/image11 +0 -0
  888. data/sample/tkextlib/tkHTML/page2/image12 +0 -0
  889. data/sample/tkextlib/tkHTML/page2/image13 +0 -0
  890. data/sample/tkextlib/tkHTML/page2/image14 +0 -0
  891. data/sample/tkextlib/tkHTML/page2/image15 +0 -0
  892. data/sample/tkextlib/tkHTML/page2/image16 +0 -0
  893. data/sample/tkextlib/tkHTML/page2/image17 +0 -0
  894. data/sample/tkextlib/tkHTML/page2/image18 +0 -0
  895. data/sample/tkextlib/tkHTML/page2/image19 +0 -0
  896. data/sample/tkextlib/tkHTML/page2/image2 +0 -0
  897. data/sample/tkextlib/tkHTML/page2/image20 +0 -0
  898. data/sample/tkextlib/tkHTML/page2/image21 +0 -0
  899. data/sample/tkextlib/tkHTML/page2/image22 +0 -0
  900. data/sample/tkextlib/tkHTML/page2/image23 +0 -0
  901. data/sample/tkextlib/tkHTML/page2/image24 +0 -0
  902. data/sample/tkextlib/tkHTML/page2/image25 +0 -0
  903. data/sample/tkextlib/tkHTML/page2/image26 +0 -0
  904. data/sample/tkextlib/tkHTML/page2/image27 +0 -0
  905. data/sample/tkextlib/tkHTML/page2/image28 +0 -0
  906. data/sample/tkextlib/tkHTML/page2/image29 +0 -0
  907. data/sample/tkextlib/tkHTML/page2/image3 +0 -0
  908. data/sample/tkextlib/tkHTML/page2/image30 +0 -0
  909. data/sample/tkextlib/tkHTML/page2/image31 +0 -0
  910. data/sample/tkextlib/tkHTML/page2/image32 +0 -0
  911. data/sample/tkextlib/tkHTML/page2/image33 +0 -0
  912. data/sample/tkextlib/tkHTML/page2/image34 +0 -0
  913. data/sample/tkextlib/tkHTML/page2/image35 +0 -0
  914. data/sample/tkextlib/tkHTML/page2/image36 +0 -0
  915. data/sample/tkextlib/tkHTML/page2/image37 +0 -0
  916. data/sample/tkextlib/tkHTML/page2/image38 +0 -0
  917. data/sample/tkextlib/tkHTML/page2/image39 +0 -0
  918. data/sample/tkextlib/tkHTML/page2/image4 +0 -0
  919. data/sample/tkextlib/tkHTML/page2/image5 +0 -0
  920. data/sample/tkextlib/tkHTML/page2/image6 +0 -0
  921. data/sample/tkextlib/tkHTML/page2/image7 +0 -0
  922. data/sample/tkextlib/tkHTML/page2/image8 +0 -0
  923. data/sample/tkextlib/tkHTML/page2/image9 +0 -0
  924. data/sample/tkextlib/tkHTML/page2/index.html +433 -0
  925. data/sample/tkextlib/tkHTML/page3/image1 +0 -0
  926. data/sample/tkextlib/tkHTML/page3/image10 +0 -0
  927. data/sample/tkextlib/tkHTML/page3/image11 +0 -0
  928. data/sample/tkextlib/tkHTML/page3/image12 +0 -0
  929. data/sample/tkextlib/tkHTML/page3/image13 +0 -0
  930. data/sample/tkextlib/tkHTML/page3/image14 +0 -0
  931. data/sample/tkextlib/tkHTML/page3/image2 +0 -0
  932. data/sample/tkextlib/tkHTML/page3/image3 +0 -0
  933. data/sample/tkextlib/tkHTML/page3/image4 +0 -0
  934. data/sample/tkextlib/tkHTML/page3/image5 +0 -0
  935. data/sample/tkextlib/tkHTML/page3/image6 +0 -0
  936. data/sample/tkextlib/tkHTML/page3/image7 +0 -0
  937. data/sample/tkextlib/tkHTML/page3/image8 +0 -0
  938. data/sample/tkextlib/tkHTML/page3/image9 +0 -0
  939. data/sample/tkextlib/tkHTML/page3/index.html +2787 -0
  940. data/sample/tkextlib/tkHTML/page4/image1 +0 -0
  941. data/sample/tkextlib/tkHTML/page4/image2 +0 -0
  942. data/sample/tkextlib/tkHTML/page4/image3 +0 -0
  943. data/sample/tkextlib/tkHTML/page4/image4 +0 -0
  944. data/sample/tkextlib/tkHTML/page4/image5 +0 -0
  945. data/sample/tkextlib/tkHTML/page4/image6 +0 -0
  946. data/sample/tkextlib/tkHTML/page4/image7 +0 -0
  947. data/sample/tkextlib/tkHTML/page4/image8 +0 -0
  948. data/sample/tkextlib/tkHTML/page4/image9 +0 -0
  949. data/sample/tkextlib/tkHTML/page4/index.html +768 -0
  950. data/sample/tkextlib/tkHTML/ss.rb +437 -0
  951. data/sample/tkextlib/tkimg/demo.rb +1479 -0
  952. data/sample/tkextlib/tkimg/license_terms_of_Img_extension +41 -0
  953. data/sample/tkextlib/tkimg/readme.txt +3 -0
  954. data/sample/tkextlib/tktable/Orig_LICENSE.txt +52 -0
  955. data/sample/tkextlib/tktable/basic.rb +61 -0
  956. data/sample/tkextlib/tktable/buttons.rb +77 -0
  957. data/sample/tkextlib/tktable/command.rb +90 -0
  958. data/sample/tkextlib/tktable/debug.rb +102 -0
  959. data/sample/tkextlib/tktable/dynarows.rb +100 -0
  960. data/sample/tkextlib/tktable/maxsize.rb +68 -0
  961. data/sample/tkextlib/tktable/spreadsheet.rb +138 -0
  962. data/sample/tkextlib/tktable/tcllogo.gif +0 -0
  963. data/sample/tkextlib/tktable/valid.rb +89 -0
  964. data/sample/tkextlib/treectrl/bitmaps.rb +77 -0
  965. data/sample/tkextlib/treectrl/demo.rb +1306 -0
  966. data/sample/tkextlib/treectrl/explorer.rb +431 -0
  967. data/sample/tkextlib/treectrl/help.rb +405 -0
  968. data/sample/tkextlib/treectrl/imovie.rb +131 -0
  969. data/sample/tkextlib/treectrl/layout.rb +160 -0
  970. data/sample/tkextlib/treectrl/mailwasher.rb +270 -0
  971. data/sample/tkextlib/treectrl/outlook-folders.rb +125 -0
  972. data/sample/tkextlib/treectrl/outlook-newgroup.rb +449 -0
  973. data/sample/tkextlib/treectrl/pics/big-dll.gif +0 -0
  974. data/sample/tkextlib/treectrl/pics/big-exe.gif +0 -0
  975. data/sample/tkextlib/treectrl/pics/big-file.gif +0 -0
  976. data/sample/tkextlib/treectrl/pics/big-folder.gif +0 -0
  977. data/sample/tkextlib/treectrl/pics/big-txt.gif +0 -0
  978. data/sample/tkextlib/treectrl/pics/checked.gif +0 -0
  979. data/sample/tkextlib/treectrl/pics/file.gif +0 -0
  980. data/sample/tkextlib/treectrl/pics/folder-closed.gif +0 -0
  981. data/sample/tkextlib/treectrl/pics/folder-open.gif +0 -0
  982. data/sample/tkextlib/treectrl/pics/help-book-closed.gif +0 -0
  983. data/sample/tkextlib/treectrl/pics/help-book-open.gif +0 -0
  984. data/sample/tkextlib/treectrl/pics/help-page.gif +0 -0
  985. data/sample/tkextlib/treectrl/pics/imovie-01.gif +0 -0
  986. data/sample/tkextlib/treectrl/pics/imovie-02.gif +0 -0
  987. data/sample/tkextlib/treectrl/pics/imovie-03.gif +0 -0
  988. data/sample/tkextlib/treectrl/pics/imovie-04.gif +0 -0
  989. data/sample/tkextlib/treectrl/pics/imovie-05.gif +0 -0
  990. data/sample/tkextlib/treectrl/pics/imovie-06.gif +0 -0
  991. data/sample/tkextlib/treectrl/pics/imovie-07.gif +0 -0
  992. data/sample/tkextlib/treectrl/pics/internet-check-off.gif +0 -0
  993. data/sample/tkextlib/treectrl/pics/internet-check-on.gif +0 -0
  994. data/sample/tkextlib/treectrl/pics/internet-print.gif +0 -0
  995. data/sample/tkextlib/treectrl/pics/internet-radio-off.gif +0 -0
  996. data/sample/tkextlib/treectrl/pics/internet-radio-on.gif +0 -0
  997. data/sample/tkextlib/treectrl/pics/internet-search.gif +0 -0
  998. data/sample/tkextlib/treectrl/pics/internet-security.gif +0 -0
  999. data/sample/tkextlib/treectrl/pics/mac-collapse.gif +0 -0
  1000. data/sample/tkextlib/treectrl/pics/mac-expand.gif +0 -0
  1001. data/sample/tkextlib/treectrl/pics/outlook-arrow.gif +0 -0
  1002. data/sample/tkextlib/treectrl/pics/outlook-clip.gif +0 -0
  1003. data/sample/tkextlib/treectrl/pics/outlook-deleted.gif +0 -0
  1004. data/sample/tkextlib/treectrl/pics/outlook-draft.gif +0 -0
  1005. data/sample/tkextlib/treectrl/pics/outlook-folder.gif +0 -0
  1006. data/sample/tkextlib/treectrl/pics/outlook-group.gif +0 -0
  1007. data/sample/tkextlib/treectrl/pics/outlook-inbox.gif +0 -0
  1008. data/sample/tkextlib/treectrl/pics/outlook-local.gif +0 -0
  1009. data/sample/tkextlib/treectrl/pics/outlook-main.gif +0 -0
  1010. data/sample/tkextlib/treectrl/pics/outlook-outbox.gif +0 -0
  1011. data/sample/tkextlib/treectrl/pics/outlook-read-2.gif +0 -0
  1012. data/sample/tkextlib/treectrl/pics/outlook-read.gif +0 -0
  1013. data/sample/tkextlib/treectrl/pics/outlook-sent.gif +0 -0
  1014. data/sample/tkextlib/treectrl/pics/outlook-server.gif +0 -0
  1015. data/sample/tkextlib/treectrl/pics/outlook-unread.gif +0 -0
  1016. data/sample/tkextlib/treectrl/pics/outlook-watch.gif +0 -0
  1017. data/sample/tkextlib/treectrl/pics/sky.gif +0 -0
  1018. data/sample/tkextlib/treectrl/pics/small-dll.gif +0 -0
  1019. data/sample/tkextlib/treectrl/pics/small-exe.gif +0 -0
  1020. data/sample/tkextlib/treectrl/pics/small-file.gif +0 -0
  1021. data/sample/tkextlib/treectrl/pics/small-folder.gif +0 -0
  1022. data/sample/tkextlib/treectrl/pics/small-txt.gif +0 -0
  1023. data/sample/tkextlib/treectrl/pics/unchecked.gif +0 -0
  1024. data/sample/tkextlib/treectrl/random.rb +509 -0
  1025. data/sample/tkextlib/treectrl/readme.txt +2 -0
  1026. data/sample/tkextlib/treectrl/www-options.rb +304 -0
  1027. data/sample/tkextlib/vu/Orig_LICENSE.txt +51 -0
  1028. data/sample/tkextlib/vu/README.txt +50 -0
  1029. data/sample/tkextlib/vu/canvItems.rb +91 -0
  1030. data/sample/tkextlib/vu/canvSticker.rb +83 -0
  1031. data/sample/tkextlib/vu/canvSticker2.rb +102 -0
  1032. data/sample/tkextlib/vu/dial_demo.rb +114 -0
  1033. data/sample/tkextlib/vu/m128_000.xbm +174 -0
  1034. data/sample/tkextlib/vu/oscilloscope.rb +69 -0
  1035. data/sample/tkextlib/vu/pie.rb +57 -0
  1036. data/sample/tkextlib/vu/vu_demo.rb +68 -0
  1037. data/sample/tkfrom.rb +133 -0
  1038. data/sample/tkhello.rb +11 -0
  1039. data/sample/tkline.rb +48 -0
  1040. data/sample/tkmenubutton.rb +136 -0
  1041. data/sample/tkmsgcat-load_rb.rb +103 -0
  1042. data/sample/tkmsgcat-load_rb2.rb +103 -0
  1043. data/sample/tkmsgcat-load_tk.rb +119 -0
  1044. data/sample/tkmulticolumnlist.rb +744 -0
  1045. data/sample/tkmultilistbox.rb +655 -0
  1046. data/sample/tkmultilistframe.rb +941 -0
  1047. data/sample/tkoptdb-safeTk.rb +74 -0
  1048. data/sample/tkoptdb.rb +107 -0
  1049. data/sample/tkrttimer.rb +78 -0
  1050. data/sample/tksleep_sample.rb +30 -0
  1051. data/sample/tktextframe.rb +282 -0
  1052. data/sample/tktextio.rb +1061 -0
  1053. data/sample/tktimer.rb +51 -0
  1054. data/sample/tktimer2.rb +48 -0
  1055. data/sample/tktimer3.rb +60 -0
  1056. data/sample/tktree.rb +104 -0
  1057. data/sample/tktree.tcl +305 -0
  1058. data/sample/ttk_wrapper.rb +155 -0
  1059. data/tk.gemspec +24 -0
  1060. metadata +1144 -0
@@ -0,0 +1,396 @@
1
+ # frozen_string_literal: false
2
+ #
3
+ # tk/image.rb : treat Tk image objects
4
+ #
5
+
6
+ require 'tk'
7
+
8
+ class TkImage<TkObject
9
+ include Tk
10
+
11
+ TkCommandNames = ['image'.freeze].freeze
12
+
13
+ Tk_IMGTBL = TkCore::INTERP.create_table
14
+
15
+ (Tk_Image_ID = ['i'.freeze, TkUtil.untrust('00000')]).instance_eval{
16
+ @mutex = Mutex.new
17
+ def mutex; @mutex; end
18
+ freeze
19
+ }
20
+
21
+ TkCore::INTERP.init_ip_env{
22
+ Tk_IMGTBL.mutex.synchronize{ Tk_IMGTBL.clear }
23
+ }
24
+
25
+ def self.new(keys=nil)
26
+ if keys.kind_of?(Hash)
27
+ name = nil
28
+ if keys.key?(:imagename)
29
+ name = keys[:imagename]
30
+ elsif keys.key?('imagename')
31
+ name = keys['imagename']
32
+ end
33
+ if name
34
+ if name.kind_of?(TkImage)
35
+ obj = name
36
+ else
37
+ name = _get_eval_string(name)
38
+ obj = nil
39
+ Tk_IMGTBL.mutex.synchronize{
40
+ obj = Tk_IMGTBL[name]
41
+ }
42
+ end
43
+ if obj
44
+ if !(keys[:without_creating] || keys['without_creating'])
45
+ keys = _symbolkey2str(keys)
46
+ keys.delete('imagename')
47
+ keys.delete('without_creating')
48
+ obj.instance_eval{
49
+ tk_call_without_enc('image', 'create',
50
+ @type, @path, *hash_kv(keys, true))
51
+ }
52
+ end
53
+ return obj
54
+ end
55
+ end
56
+ end
57
+ (obj = self.allocate).instance_eval{
58
+ Tk_IMGTBL.mutex.synchronize{
59
+ initialize(keys)
60
+ Tk_IMGTBL[@path] = self
61
+ }
62
+ }
63
+ obj
64
+ end
65
+
66
+ def initialize(keys=nil)
67
+ @path = nil
68
+ without_creating = false
69
+ if keys.kind_of?(Hash)
70
+ keys = _symbolkey2str(keys)
71
+ @path = keys.delete('imagename')
72
+ without_creating = keys.delete('without_creating')
73
+ end
74
+ unless @path
75
+ Tk_Image_ID.mutex.synchronize{
76
+ @path = Tk_Image_ID.join(TkCore::INTERP._ip_id_)
77
+ Tk_Image_ID[1].succ!
78
+ }
79
+ end
80
+ unless without_creating
81
+ tk_call_without_enc('image', 'create',
82
+ @type, @path, *hash_kv(keys, true))
83
+ end
84
+ end
85
+
86
+ def delete
87
+ Tk_IMGTBL.mutex.synchronize{
88
+ Tk_IMGTBL.delete(@id) if @id
89
+ }
90
+ tk_call_without_enc('image', 'delete', @path)
91
+ self
92
+ end
93
+ def height
94
+ number(tk_call_without_enc('image', 'height', @path))
95
+ end
96
+ def inuse
97
+ bool(tk_call_without_enc('image', 'inuse', @path))
98
+ end
99
+ def itemtype
100
+ tk_call_without_enc('image', 'type', @path)
101
+ end
102
+ def width
103
+ number(tk_call_without_enc('image', 'width', @path))
104
+ end
105
+
106
+ def TkImage.names
107
+ Tk_IMGTBL.mutex.synchronize{
108
+ Tk.tk_call_without_enc('image', 'names').split.collect!{|id|
109
+ (Tk_IMGTBL[id])? Tk_IMGTBL[id] : id
110
+ }
111
+ }
112
+ end
113
+
114
+ def TkImage.types
115
+ Tk.tk_call_without_enc('image', 'types').split
116
+ end
117
+ end
118
+
119
+ class TkBitmapImage<TkImage
120
+ def __strval_optkeys
121
+ super() + ['maskdata', 'maskfile']
122
+ end
123
+ private :__strval_optkeys
124
+
125
+ def initialize(*args)
126
+ @type = 'bitmap'
127
+ super(*args)
128
+ end
129
+ end
130
+
131
+ # A photo is an image whose pixels can display any color or be transparent.
132
+ # At present, only GIF and PPM/PGM formats are supported, but an interface
133
+ # exists to allow additional image file formats to be added easily.
134
+ #
135
+ # This class documentation is a copy from the original Tcl/Tk at
136
+ # http://www.tcl.tk/man/tcl8.5/TkCmd/photo.htm with some rewritten parts.
137
+ class TkPhotoImage<TkImage
138
+ NullArgOptionKeys = [ "shrink", "grayscale" ]
139
+
140
+ def _photo_hash_kv(keys)
141
+ keys = _symbolkey2str(keys)
142
+ NullArgOptionKeys.collect{|opt|
143
+ if keys[opt]
144
+ keys[opt] = None
145
+ else
146
+ keys.delete(opt)
147
+ end
148
+ }
149
+ keys.collect{|k,v|
150
+ ['-' << k, v]
151
+ }.flatten
152
+ end
153
+ private :_photo_hash_kv
154
+
155
+ # Create a new image with the given options.
156
+ # == Examples of use :
157
+ # === Create an empty image of 300x200 pixels
158
+ #
159
+ # image = TkPhotoImage.new(:height => 200, :width => 300)
160
+ #
161
+ # === Create an image from a file
162
+ #
163
+ # image = TkPhotoImage.new(:file: => 'my_image.gif')
164
+ #
165
+ # == Options
166
+ # Photos support the following options:
167
+ # * :data
168
+ # Specifies the contents of the image as a string.
169
+ # * :format
170
+ # Specifies the name of the file format for the data.
171
+ # * :file
172
+ # Gives the name of a file that is to be read to supply data for the image.
173
+ # * :gamma
174
+ # Specifies that the colors allocated for displaying this image in a window
175
+ # should be corrected for a non-linear display with the specified gamma
176
+ # exponent value.
177
+ # * height
178
+ # Specifies the height of the image, in pixels. This option is useful
179
+ # primarily in situations where the user wishes to build up the contents of
180
+ # the image piece by piece. A value of zero (the default) allows the image
181
+ # to expand or shrink vertically to fit the data stored in it.
182
+ # * palette
183
+ # Specifies the resolution of the color cube to be allocated for displaying
184
+ # this image.
185
+ # * width
186
+ # Specifies the width of the image, in pixels. This option is useful
187
+ # primarily in situations where the user wishes to build up the contents of
188
+ # the image piece by piece. A value of zero (the default) allows the image
189
+ # to expand or shrink horizontally to fit the data stored in it.
190
+ def initialize(*args)
191
+ @type = 'photo'
192
+ super(*args)
193
+ end
194
+
195
+ # Blank the image; that is, set the entire image to have no data, so it will
196
+ # be displayed as transparent, and the background of whatever window it is
197
+ # displayed in will show through.
198
+ def blank
199
+ tk_send_without_enc('blank')
200
+ self
201
+ end
202
+
203
+ def cget_strict(option)
204
+ case option.to_s
205
+ when 'data', 'file'
206
+ tk_send 'cget', '-' << option.to_s
207
+ else
208
+ tk_tcl2ruby(tk_send('cget', '-' << option.to_s))
209
+ end
210
+ end
211
+
212
+ # Returns the current value of the configuration option given by option.
213
+ # Example, display name of the file from which <tt>image</tt> was created:
214
+ # puts image.cget :file
215
+ def cget(option)
216
+ unless TkConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
217
+ cget_strict(option)
218
+ else
219
+ begin
220
+ cget_strict(option)
221
+ rescue => e
222
+ if current_configinfo.has_key?(option.to_s)
223
+ # error on known option
224
+ fail e
225
+ else
226
+ # unknown option
227
+ nil
228
+ end
229
+ end
230
+ end
231
+ end
232
+
233
+ # Copies a region from the image called source to the image called
234
+ # destination, possibly with pixel zooming and/or subsampling. If no options
235
+ # are specified, this method copies the whole of source into destination,
236
+ # starting at coordinates (0,0) in destination. The following options may be
237
+ # specified:
238
+ #
239
+ # * :from [x1, y1, x2, y2]
240
+ # Specifies a rectangular sub-region of the source image to be copied.
241
+ # (x1,y1) and (x2,y2) specify diagonally opposite corners of the rectangle.
242
+ # If x2 and y2 are not specified, the default value is the bottom-right
243
+ # corner of the source image. The pixels copied will include the left and
244
+ # top edges of the specified rectangle but not the bottom or right edges.
245
+ # If the :from option is not given, the default is the whole source image.
246
+ # * :to [x1, y1, x2, y2]
247
+ # Specifies a rectangular sub-region of the destination image to be
248
+ # affected. (x1,y1) and (x2,y2) specify diagonally opposite corners of the
249
+ # rectangle. If x2 and y2 are not specified, the default value is (x1,y1)
250
+ # plus the size of the source region (after subsampling and zooming, if
251
+ # specified). If x2 and y2 are specified, the source region will be
252
+ # replicated if necessary to fill the destination region in a tiled fashion.
253
+ # * :shrink
254
+ # Specifies that the size of the destination image should be reduced, if
255
+ # necessary, so that the region being copied into is at the bottom-right
256
+ # corner of the image. This option will not affect the width or height of
257
+ # the image if the user has specified a non-zero value for the :width or
258
+ # :height configuration option, respectively.
259
+ # * :zoom [x, y]
260
+ # Specifies that the source region should be magnified by a factor of x
261
+ # in the X direction and y in the Y direction. If y is not given, the
262
+ # default value is the same as x. With this option, each pixel in the
263
+ # source image will be expanded into a block of x x y pixels in the
264
+ # destination image, all the same color. x and y must be greater than 0.
265
+ # * :subsample [x, y]
266
+ # Specifies that the source image should be reduced in size by using only
267
+ # every xth pixel in the X direction and yth pixel in the Y direction.
268
+ # Negative values will cause the image to be flipped about the Y or X axes,
269
+ # respectively. If y is not given, the default value is the same as x.
270
+ # * :compositingrule rule
271
+ # Specifies how transparent pixels in the source image are combined with
272
+ # the destination image. When a compositing rule of <tt>overlay</tt> is set,
273
+ # the old contents of the destination image are visible, as if the source
274
+ # image were printed on a piece of transparent film and placed over the
275
+ # top of the destination. When a compositing rule of <tt>set</tt> is set,
276
+ # the old contents of the destination image are discarded and the source
277
+ # image is used as-is. The default compositing rule is <tt>overlay</tt>.
278
+ def copy(src, *opts)
279
+ if opts.size == 0
280
+ tk_send('copy', src)
281
+ elsif opts.size == 1 && opts[0].kind_of?(Hash)
282
+ tk_send('copy', src, *_photo_hash_kv(opts[0]))
283
+ else
284
+ # for backward compatibility
285
+ args = opts.collect{|term|
286
+ if term.kind_of?(String) && term.include?(?\s)
287
+ term.split
288
+ else
289
+ term
290
+ end
291
+ }.flatten
292
+ tk_send('copy', src, *args)
293
+ end
294
+ self
295
+ end
296
+
297
+ # Returns image data in the form of a string. The following options may be
298
+ # specified:
299
+ # * :background color
300
+ # If the color is specified, the data will not contain any transparency
301
+ # information. In all transparent pixels the color will be replaced by the
302
+ # specified color.
303
+ # * :format format-name
304
+ # Specifies the name of the image file format handler to be used.
305
+ # Specifically, this subcommand searches for the first handler whose name
306
+ # matches an initial substring of format-name and which has the capability
307
+ # to read this image data. If this option is not given, this subcommand
308
+ # uses the first handler that has the capability to read the image data.
309
+ # * :from [x1, y1, x2, y2]
310
+ # Specifies a rectangular region of imageName to be returned. If only x1
311
+ # and y1 are specified, the region extends from (x1,y1) to the bottom-right
312
+ # corner of imageName. If all four coordinates are given, they specify
313
+ # diagonally opposite corners of the rectangular region, including x1,y1
314
+ # and excluding x2,y2. The default, if this option is not given, is the
315
+ # whole image.
316
+ # * :grayscale
317
+ # If this options is specified, the data will not contain color information.
318
+ # All pixel data will be transformed into grayscale.
319
+ def data(keys={})
320
+ tk_split_list(tk_send('data', *_photo_hash_kv(keys)))
321
+ end
322
+
323
+ # Returns the color of the pixel at coordinates (x,y) in the image as a list
324
+ # of three integers between 0 and 255, representing the red, green and blue
325
+ # components respectively.
326
+ def get(x, y)
327
+ tk_send('get', x, y).split.collect{|n| n.to_i}
328
+ end
329
+
330
+ def put(data, *opts)
331
+ if opts.empty?
332
+ tk_send('put', data)
333
+ elsif opts.size == 1 && opts[0].kind_of?(Hash)
334
+ tk_send('put', data, *_photo_hash_kv(opts[0]))
335
+ else
336
+ # for backward compatibility
337
+ tk_send('put', data, '-to', *opts)
338
+ end
339
+ self
340
+ end
341
+
342
+ def read(file, *opts)
343
+ if opts.size == 0
344
+ tk_send('read', file)
345
+ elsif opts.size == 1 && opts[0].kind_of?(Hash)
346
+ tk_send('read', file, *_photo_hash_kv(opts[0]))
347
+ else
348
+ # for backward compatibility
349
+ args = opts.collect{|term|
350
+ if term.kind_of?(String) && term.include?(?\s)
351
+ term.split
352
+ else
353
+ term
354
+ end
355
+ }.flatten
356
+ tk_send('read', file, *args)
357
+ end
358
+ self
359
+ end
360
+
361
+ def redither
362
+ tk_send 'redither'
363
+ self
364
+ end
365
+
366
+ # Returns a boolean indicating if the pixel at (x,y) is transparent.
367
+ def get_transparency(x, y)
368
+ bool(tk_send('transparency', 'get', x, y))
369
+ end
370
+
371
+ # Makes the pixel at (x,y) transparent if <tt>state</tt> is true, and makes
372
+ # that pixel opaque otherwise.
373
+ def set_transparency(x, y, state)
374
+ tk_send('transparency', 'set', x, y, state)
375
+ self
376
+ end
377
+
378
+ def write(file, *opts)
379
+ if opts.size == 0
380
+ tk_send('write', file)
381
+ elsif opts.size == 1 && opts[0].kind_of?(Hash)
382
+ tk_send('write', file, *_photo_hash_kv(opts[0]))
383
+ else
384
+ # for backward compatibility
385
+ args = opts.collect{|term|
386
+ if term.kind_of?(String) && term.include?(?\s)
387
+ term.split
388
+ else
389
+ term
390
+ end
391
+ }.flatten
392
+ tk_send('write', file, *args)
393
+ end
394
+ self
395
+ end
396
+ end
@@ -0,0 +1,1222 @@
1
+ # frozen_string_literal: false
2
+ #
3
+ # tk/itemconfig.rb : control item/tag configuration of widget
4
+ #
5
+ require 'tk'
6
+ require 'tkutil'
7
+ require 'tk/itemfont.rb'
8
+
9
+ module TkItemConfigOptkeys
10
+ include TkUtil
11
+
12
+ def __item_optkey_aliases(id)
13
+ {}
14
+ end
15
+ private :__item_optkey_aliases
16
+
17
+ def __item_numval_optkeys(id)
18
+ []
19
+ end
20
+ private :__item_numval_optkeys
21
+
22
+ def __item_numstrval_optkeys(id)
23
+ []
24
+ end
25
+ private :__item_numstrval_optkeys
26
+
27
+ def __item_boolval_optkeys(id)
28
+ ['exportselection', 'jump', 'setgrid', 'takefocus']
29
+ end
30
+ private :__item_boolval_optkeys
31
+
32
+ def __item_strval_optkeys(id)
33
+ # maybe need to override
34
+ [
35
+ 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile',
36
+ 'activebackground', 'activeforeground', 'background',
37
+ 'disabledforeground', 'disabledbackground', 'foreground',
38
+ 'highlightbackground', 'highlightcolor', 'insertbackground',
39
+ 'selectbackground', 'selectforeground', 'troughcolor'
40
+ ]
41
+ end
42
+ private :__item_strval_optkeys
43
+
44
+ def __item_listval_optkeys(id)
45
+ []
46
+ end
47
+ private :__item_listval_optkeys
48
+
49
+ def __item_numlistval_optkeys(id)
50
+ # maybe need to override
51
+ ['dash', 'activedash', 'disableddash']
52
+ end
53
+ private :__item_numlistval_optkeys
54
+
55
+ def __item_tkvariable_optkeys(id)
56
+ ['variable', 'textvariable']
57
+ end
58
+ private :__item_tkvariable_optkeys
59
+
60
+ def __item_val2ruby_optkeys(id) # { key=>method, ... }
61
+ # The method is used to convert a opt-value to a ruby's object.
62
+ # When get the value of the option "key", "method.call(id, val)" is called.
63
+ {}
64
+ end
65
+ private :__item_val2ruby_optkeys
66
+
67
+ def __item_ruby2val_optkeys(id) # { key=>method, ... }
68
+ # The method is used to convert a ruby's object to a opt-value.
69
+ # When set the value of the option "key", "method.call(id, val)" is called.
70
+ # That is, "-#{key} #{method.call(id, value)}".
71
+ {}
72
+ end
73
+ private :__item_ruby2val_optkeys
74
+
75
+ def __item_methodcall_optkeys(id) # { key=>method, ... }
76
+ # Use the method for both of get and set.
77
+ # Usually, the 'key' will not be a widget option.
78
+ #
79
+ # maybe need to override
80
+ # {'coords'=>'coords'}
81
+ {}
82
+ end
83
+ private :__item_methodcall_optkeys
84
+
85
+ ################################################
86
+
87
+ def __item_keyonly_optkeys(id) # { def_key=>(undef_key|nil), ... }
88
+ # maybe need to override
89
+ {}
90
+ end
91
+ private :__item_keyonly_optkeys
92
+
93
+
94
+ def __conv_item_keyonly_opts(id, keys)
95
+ return keys unless keys.kind_of?(Hash)
96
+ keyonly = __item_keyonly_optkeys(id)
97
+ keys2 = {}
98
+ keys.each{|k, v|
99
+ optkey = keyonly.find{|kk,vv| kk.to_s == k.to_s}
100
+ if optkey
101
+ defkey, undefkey = optkey
102
+ if v
103
+ keys2[defkey.to_s] = None
104
+ else
105
+ keys2[undefkey.to_s] = None
106
+ end
107
+ else
108
+ keys2[k.to_s] = v
109
+ end
110
+ }
111
+ keys2
112
+ end
113
+
114
+ def itemconfig_hash_kv(id, keys, enc_mode = nil, conf = nil)
115
+ hash_kv(__conv_item_keyonly_opts(id, keys), enc_mode, conf)
116
+ end
117
+ end
118
+
119
+ module TkItemConfigMethod
120
+ include TkUtil
121
+ include TkTreatItemFont
122
+ include TkItemConfigOptkeys
123
+
124
+ def TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
125
+ @mode || false
126
+ end
127
+ def TkItemConfigMethod.__set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode)
128
+ @mode = (mode)? true: false
129
+ end
130
+
131
+ def __item_cget_cmd(id)
132
+ # maybe need to override
133
+ [self.path, 'itemcget', id]
134
+ end
135
+ private :__item_cget_cmd
136
+
137
+ def __item_config_cmd(id)
138
+ # maybe need to override
139
+ [self.path, 'itemconfigure', id]
140
+ end
141
+ private :__item_config_cmd
142
+
143
+ def __item_confinfo_cmd(id)
144
+ # maybe need to override
145
+ __item_config_cmd(id)
146
+ end
147
+ private :__item_confinfo_cmd
148
+
149
+ def __item_configinfo_struct(id)
150
+ # maybe need to override
151
+ {:key=>0, :alias=>1, :db_name=>1, :db_class=>2,
152
+ :default_value=>3, :current_value=>4}
153
+ end
154
+ private :__item_configinfo_struct
155
+
156
+ ################################################
157
+
158
+ def tagid(tagOrId)
159
+ # maybe need to override
160
+ tagOrId
161
+ end
162
+
163
+ ################################################
164
+
165
+
166
+ def itemcget_tkstring(tagOrId, option)
167
+ opt = option.to_s
168
+ fail ArgumentError, "Invalid option `#{option.inspect}'" if opt.length == 0
169
+ tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{opt}"))
170
+ end
171
+
172
+ def __itemcget_core(tagOrId, option)
173
+ orig_opt = option
174
+ option = option.to_s
175
+
176
+ if option.length == 0
177
+ fail ArgumentError, "Invalid option `#{orig_opt.inspect}'"
178
+ end
179
+
180
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == option}
181
+ if real_name
182
+ option = real_name.to_s
183
+ end
184
+
185
+ if ( method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[option] )
186
+ optval = tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}"))
187
+ begin
188
+ return method.call(tagOrId, optval)
189
+ rescue => e
190
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
191
+ return optval
192
+ end
193
+ end
194
+
195
+ if ( method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[option] )
196
+ return self.__send__(method, tagOrId)
197
+ end
198
+
199
+ case option
200
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
201
+ begin
202
+ number(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
203
+ rescue
204
+ nil
205
+ end
206
+
207
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
208
+ num_or_str(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
209
+
210
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
211
+ begin
212
+ bool(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
213
+ rescue
214
+ nil
215
+ end
216
+
217
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
218
+ simplelist(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
219
+
220
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
221
+ conf = tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}"))
222
+ if conf =~ /^[0-9]/
223
+ list(conf)
224
+ else
225
+ conf
226
+ end
227
+
228
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
229
+ v = tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}"))
230
+ (v.empty?)? nil: TkVarAccess.new(v)
231
+
232
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
233
+ _fromUTF8(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
234
+
235
+ when /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/
236
+ fontcode = $1
237
+ fontkey = $2
238
+ fnt = tk_tcl2ruby(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{fontkey}")), true)
239
+ unless fnt.kind_of?(TkFont)
240
+ fnt = tagfontobj(tagid(tagOrId), fontkey)
241
+ end
242
+ if fontcode == 'kanji' && JAPANIZED_TK && TK_VERSION =~ /^4\.*/
243
+ # obsolete; just for compatibility
244
+ fnt.kanji_font
245
+ else
246
+ fnt
247
+ end
248
+ else
249
+ tk_tcl2ruby(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")), true)
250
+ end
251
+ end
252
+ private :__itemcget_core
253
+
254
+ def itemcget(tagOrId, option)
255
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
256
+ __itemcget_core(tagOrId, option)
257
+ else
258
+ begin
259
+ __itemcget_core(tagOrId, option)
260
+ rescue => e
261
+ begin
262
+ if __current_itemconfiginfo(tagOrId).has_key?(option.to_s)
263
+ # not tag error & option is known -> error on known option
264
+ fail e
265
+ else
266
+ # not tag error & option is unknown
267
+ nil
268
+ end
269
+ rescue
270
+ fail e # tag error
271
+ end
272
+ end
273
+ end
274
+ end
275
+ def itemcget_strict(tagOrId, option)
276
+ # never use TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
277
+ __itemcget_core(tagOrId, option)
278
+ end
279
+
280
+ def __itemconfigure_core(tagOrId, slot, value=None)
281
+ if slot.kind_of? Hash
282
+ slot = _symbolkey2str(slot)
283
+
284
+ __item_optkey_aliases(tagid(tagOrId)).each{|alias_name, real_name|
285
+ alias_name = alias_name.to_s
286
+ if slot.has_key?(alias_name)
287
+ slot[real_name.to_s] = slot.delete(alias_name)
288
+ end
289
+ }
290
+
291
+ __item_methodcall_optkeys(tagid(tagOrId)).each{|key, method|
292
+ value = slot.delete(key.to_s)
293
+ self.__send__(method, tagOrId, value) if value
294
+ }
295
+
296
+ __item_ruby2val_optkeys(tagid(tagOrId)).each{|key, method|
297
+ key = key.to_s
298
+ slot[key] = method.call(tagOrId, slot[key]) if slot.has_key?(key)
299
+ }
300
+
301
+ __item_keyonly_optkeys(tagid(tagOrId)).each{|defkey, undefkey|
302
+ conf = slot.find{|kk, vv| kk == defkey.to_s}
303
+ if conf
304
+ k, v = conf
305
+ if v
306
+ slot[k] = None
307
+ else
308
+ slot[undefkey.to_s] = None if undefkey
309
+ slot.delete(k)
310
+ end
311
+ end
312
+ }
313
+
314
+ if (slot.find{|k, v| k =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/})
315
+ tagfont_configure(tagid(tagOrId), slot)
316
+ elsif slot.size > 0
317
+ tk_call(*(__item_config_cmd(tagid(tagOrId)).concat(hash_kv(slot))))
318
+ end
319
+
320
+ else
321
+ orig_slot = slot
322
+ slot = slot.to_s
323
+ if slot.length == 0
324
+ fail ArgumentError, "Invalid option `#{orig_slot.inspect}'"
325
+ end
326
+
327
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == slot}
328
+ if real_name
329
+ slot = real_name.to_s
330
+ end
331
+
332
+ if ( conf = __item_keyonly_optkeys(tagid(tagOrId)).find{|k, v| k.to_s == slot } )
333
+ defkey, undefkey = conf
334
+ if value
335
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{defkey}"))
336
+ elsif undefkey
337
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{undefkey}"))
338
+ end
339
+ elsif ( method = _symbolkey2str(__item_ruby2val_optkeys(tagid(tagOrId)))[slot] )
340
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{slot}" << method.call(tagOrId, value)))
341
+ elsif ( method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[slot] )
342
+ self.__send__(method, tagOrId, value)
343
+ elsif (slot =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/)
344
+ if value == None
345
+ tagfontobj(tagid(tagOrId), $2)
346
+ else
347
+ tagfont_configure(tagid(tagOrId), {slot=>value})
348
+ end
349
+ else
350
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{slot}" << value))
351
+ end
352
+ end
353
+ self
354
+ end
355
+ private :__itemconfigure_core
356
+
357
+ def __check_available_itemconfigure_options(tagOrId, keys)
358
+ id = tagid(tagOrId)
359
+
360
+ availables = self.__current_itemconfiginfo(id).keys
361
+
362
+ # add non-standard keys
363
+ availables |= __font_optkeys.map{|k|
364
+ [k.to_s, "latin#{k}", "ascii#{k}", "kanji#{k}"]
365
+ }.flatten
366
+ availables |= __item_methodcall_optkeys(id).keys.map{|k| k.to_s}
367
+ availables |= __item_keyonly_optkeys(id).keys.map{|k| k.to_s}
368
+
369
+ keys = _symbolkey2str(keys)
370
+
371
+ keys.delete_if{|k, v| !(availables.include?(k))}
372
+ end
373
+
374
+ def itemconfigure(tagOrId, slot, value=None)
375
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
376
+ __itemconfigure_core(tagOrId, slot, value)
377
+ else
378
+ if slot.kind_of?(Hash)
379
+ begin
380
+ __itemconfigure_core(tagOrId, slot)
381
+ rescue
382
+ slot = __check_available_itemconfigure_options(tagOrId, slot)
383
+ __itemconfigure_core(tagOrId, slot) unless slot.empty?
384
+ end
385
+ else
386
+ begin
387
+ __itemconfigure_core(tagOrId, slot, value)
388
+ rescue => e
389
+ begin
390
+ if __current_itemconfiginfo(tagOrId).has_key?(slot.to_s)
391
+ # not tag error & option is known -> error on known option
392
+ fail e
393
+ else
394
+ # not tag error & option is unknown
395
+ nil
396
+ end
397
+ rescue
398
+ fail e # tag error
399
+ end
400
+ end
401
+ end
402
+ end
403
+ self
404
+ end
405
+
406
+ def __itemconfiginfo_core(tagOrId, slot = nil)
407
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
408
+ if (slot && slot.to_s =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/)
409
+ fontkey = $2
410
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}"))))
411
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}")), false, true)
412
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
413
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
414
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
415
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
416
+ fnt = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
417
+ if TkFont.is_system_font?(fnt)
418
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
419
+ end
420
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), fontkey)
421
+ elsif ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
422
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 \
423
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?- )
424
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
425
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
426
+ end
427
+ conf
428
+ else
429
+ if slot
430
+ slot = slot.to_s
431
+
432
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == slot}
433
+ if real_name
434
+ slot = real_name.to_s
435
+ end
436
+
437
+ case slot
438
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
439
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[slot]
440
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
441
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
442
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
443
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
444
+ begin
445
+ val = method.call(tagOrId, optval)
446
+ rescue => e
447
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
448
+ val = optval
449
+ end
450
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
451
+ end
452
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
453
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
454
+ begin
455
+ val = method.call(tagOrId, optval)
456
+ rescue => e
457
+ warn("Warning:: #{e.message} (when #{method}lcall(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
458
+ val = optval
459
+ end
460
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
461
+ end
462
+
463
+ when /^(#{__item_methodcall_optkeys(tagid(tagOrId)).keys.join('|')})$/
464
+ method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[slot]
465
+ return [slot, '', '', '', self.__send__(method, tagOrId)]
466
+
467
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
468
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
469
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
470
+
471
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
472
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
473
+ begin
474
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
475
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
476
+ rescue
477
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
478
+ end
479
+ end
480
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
481
+ begin
482
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
483
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
484
+ rescue
485
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
486
+ end
487
+ end
488
+
489
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
490
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
491
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
492
+
493
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
494
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
495
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
496
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
497
+ end
498
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
499
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
500
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
501
+ end
502
+
503
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
504
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
505
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
506
+
507
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
508
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
509
+ begin
510
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
511
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
512
+ rescue
513
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
514
+ end
515
+ end
516
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
517
+ begin
518
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
519
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
520
+ rescue
521
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
522
+ end
523
+ end
524
+
525
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
526
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
527
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
528
+
529
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
530
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
531
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
532
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
533
+ end
534
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
535
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
536
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
537
+ end
538
+
539
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
540
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
541
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
542
+
543
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
544
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
545
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
546
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
547
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
548
+ end
549
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
550
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
551
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
552
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
553
+ end
554
+
555
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
556
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
557
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
558
+
559
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
560
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
561
+
562
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
563
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
564
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
565
+ if v.empty?
566
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
567
+ else
568
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
569
+ end
570
+ end
571
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
572
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
573
+ if v.empty?
574
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
575
+ else
576
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
577
+ end
578
+ end
579
+
580
+ else
581
+ # conf = tk_split_list(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
582
+ conf = tk_split_list(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), 0, false, true)
583
+ end
584
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
585
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
586
+
587
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
588
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 \
589
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?- )
590
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
591
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
592
+ end
593
+
594
+ conf
595
+
596
+ else
597
+ # ret = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))))).collect{|conflist|
598
+ # conf = tk_split_simplelist(conflist)
599
+ ret = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))), false, false).collect{|conflist|
600
+ conf = tk_split_simplelist(conflist, false, true)
601
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
602
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
603
+
604
+ optkey = conf[__item_configinfo_struct(tagid(tagOrId))[:key]]
605
+ case optkey
606
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
607
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[optkey]
608
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
609
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
610
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
611
+ begin
612
+ val = method(tagOrId, optval)
613
+ rescue => e
614
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
615
+ val = optval
616
+ end
617
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
618
+ end
619
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
620
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
621
+ begin
622
+ val = method.call(tagOrId, optval)
623
+ rescue => e
624
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
625
+ val = optval
626
+ end
627
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
628
+ end
629
+
630
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
631
+ # do nothing
632
+
633
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
634
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
635
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
636
+ begin
637
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
638
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
639
+ rescue
640
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
641
+ end
642
+ end
643
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
644
+ begin
645
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
646
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
647
+ rescue
648
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
649
+ end
650
+ end
651
+
652
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
653
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
654
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
655
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
656
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
657
+ end
658
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
659
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
660
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
661
+ end
662
+
663
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
664
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
665
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
666
+ begin
667
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
668
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
669
+ rescue
670
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
671
+ end
672
+ end
673
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
674
+ begin
675
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
676
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
677
+ rescue
678
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
679
+ end
680
+ end
681
+
682
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
683
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
684
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
685
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
686
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
687
+ end
688
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
689
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
690
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
691
+ end
692
+
693
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
694
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
695
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
696
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
697
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
698
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
699
+ end
700
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
701
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
702
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
703
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
704
+ end
705
+
706
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
707
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
708
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
709
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
710
+ if v.empty?
711
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
712
+ else
713
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
714
+ end
715
+ end
716
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
717
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
718
+ if v.empty?
719
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
720
+ else
721
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
722
+ end
723
+ end
724
+
725
+ else
726
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
727
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
728
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]].index('{')
729
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
730
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
731
+ else
732
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
733
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
734
+ end
735
+ end
736
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
737
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]].index('{')
738
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
739
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
740
+ else
741
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
742
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
743
+ end
744
+ end
745
+ end
746
+
747
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
748
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 \
749
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?- )
750
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
751
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
752
+ end
753
+
754
+ conf
755
+ }
756
+
757
+ __item_font_optkeys(tagid(tagOrId)).each{|optkey|
758
+ optkey = optkey.to_s
759
+ fontconf = ret.assoc(optkey)
760
+ if fontconf && fontconf.size > 2
761
+ ret.delete_if{|inf| inf[0] =~ /^(|latin|ascii|kanji)#{optkey}$/}
762
+ fnt = fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
763
+ if TkFont.is_system_font?(fnt)
764
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
765
+ end
766
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), optkey)
767
+ ret.push(fontconf)
768
+ end
769
+ }
770
+
771
+ __item_methodcall_optkeys(tagid(tagOrId)).each{|optkey, method|
772
+ ret << [optkey.to_s, '', '', '', self.__send__(method, tagOrId)]
773
+ }
774
+
775
+ ret
776
+ end
777
+ end
778
+
779
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
780
+ if (slot && slot.to_s =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/)
781
+ fontkey = $2
782
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}"))))
783
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}")), false, true)
784
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
785
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
786
+
787
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
788
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
789
+ fnt = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
790
+ if TkFont.is_system_font?(fnt)
791
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
792
+ end
793
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), fontkey)
794
+ { conf.shift => conf }
795
+ elsif ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
796
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
797
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?-
798
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
799
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
800
+ end
801
+ { conf[0] => conf[1] }
802
+ else
803
+ { conf.shift => conf }
804
+ end
805
+ else
806
+ if slot
807
+ slot = slot.to_s
808
+
809
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == slot}
810
+ if real_name
811
+ slot = real_name.to_s
812
+ end
813
+
814
+ case slot
815
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
816
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[slot]
817
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
818
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
819
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
820
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
821
+ begin
822
+ val = method.call(tagOrId, optval)
823
+ rescue => e
824
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
825
+ val = optval
826
+ end
827
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
828
+ end
829
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
830
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
831
+ begin
832
+ val = method.call(tagOrId, optval)
833
+ rescue => e
834
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
835
+ val = optval
836
+ end
837
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
838
+ end
839
+
840
+ when /^(#{__item_methodcall_optkeys(tagid(tagOrId)).keys.join('|')})$/
841
+ method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[slot]
842
+ return {slot => ['', '', '', self.__send__(method, tagOrId)]}
843
+
844
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
845
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
846
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
847
+
848
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
849
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
850
+ begin
851
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
852
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
853
+ rescue
854
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
855
+ end
856
+ end
857
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
858
+ begin
859
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
860
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
861
+ rescue
862
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
863
+ end
864
+ end
865
+
866
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
867
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
868
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
869
+
870
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
871
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
872
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
873
+ num_or_stre(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
874
+ end
875
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
876
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
877
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
878
+ end
879
+
880
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
881
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
882
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
883
+
884
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
885
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
886
+ begin
887
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
888
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
889
+ rescue
890
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
891
+ end
892
+ end
893
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
894
+ begin
895
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
896
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
897
+ rescue
898
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
899
+ end
900
+ end
901
+
902
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
903
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
904
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
905
+
906
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
907
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
908
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
909
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
910
+ end
911
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
912
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
913
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
914
+ end
915
+
916
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
917
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
918
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
919
+
920
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
921
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
922
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
923
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
924
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
925
+ end
926
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
927
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
928
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
929
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
930
+ end
931
+
932
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
933
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
934
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
935
+
936
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
937
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
938
+
939
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
940
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
941
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
942
+ if v.empty?
943
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
944
+ else
945
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
946
+ end
947
+ end
948
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
949
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
950
+ if v.empty?
951
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
952
+ else
953
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
954
+ end
955
+ end
956
+
957
+ else
958
+ # conf = tk_split_list(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
959
+ conf = tk_split_list(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), 0, false, true)
960
+ end
961
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
962
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
963
+
964
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
965
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
966
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?-
967
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
968
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
969
+ end
970
+ { conf[0] => conf[1] }
971
+ else
972
+ { conf.shift => conf }
973
+ end
974
+
975
+ else
976
+ ret = {}
977
+ # tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))))).each{|conflist|
978
+ # conf = tk_split_simplelist(conflist)
979
+ tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))), false, false).each{|conflist|
980
+ conf = tk_split_simplelist(conflist, false, true)
981
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
982
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
983
+
984
+ optkey = conf[__item_configinfo_struct(tagid(tagOrId))[:key]]
985
+ case optkey
986
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
987
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[optkey]
988
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
989
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
990
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
991
+ begin
992
+ val = method.call(tagOrId, optval)
993
+ rescue => e
994
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
995
+ val = optval
996
+ end
997
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
998
+ end
999
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1000
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
1001
+ begin
1002
+ val = method.call(tagOrId, optval)
1003
+ rescue => e
1004
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
1005
+ val = optval
1006
+ end
1007
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
1008
+ end
1009
+
1010
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
1011
+ # do nothing
1012
+
1013
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
1014
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1015
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1016
+ begin
1017
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1018
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1019
+ rescue
1020
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
1021
+ end
1022
+ end
1023
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1024
+ begin
1025
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1026
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1027
+ rescue
1028
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
1029
+ end
1030
+ end
1031
+
1032
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
1033
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1034
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1035
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1036
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1037
+ end
1038
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1039
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1040
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1041
+ end
1042
+
1043
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
1044
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1045
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1046
+ begin
1047
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1048
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1049
+ rescue
1050
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
1051
+ end
1052
+ end
1053
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1054
+ begin
1055
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1056
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1057
+ rescue
1058
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
1059
+ end
1060
+ end
1061
+
1062
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
1063
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1064
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1065
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1066
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1067
+ end
1068
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1069
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1070
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1071
+ end
1072
+
1073
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
1074
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1075
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
1076
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
1077
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1078
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1079
+ end
1080
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
1081
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
1082
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1083
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1084
+ end
1085
+
1086
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
1087
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1088
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1089
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
1090
+ if v.empty?
1091
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
1092
+ else
1093
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
1094
+ end
1095
+ end
1096
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1097
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
1098
+ if v.empty?
1099
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
1100
+ else
1101
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
1102
+ end
1103
+ end
1104
+
1105
+ else
1106
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1107
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1108
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]].index('{')
1109
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1110
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1111
+ else
1112
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1113
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1114
+ end
1115
+ end
1116
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
1117
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]].index('{')
1118
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1119
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1120
+ else
1121
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1122
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1123
+ end
1124
+ end
1125
+ end
1126
+
1127
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
1128
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
1129
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?-
1130
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
1131
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
1132
+ end
1133
+ ret[conf[0]] = conf[1]
1134
+ else
1135
+ ret[conf.shift] = conf
1136
+ end
1137
+ }
1138
+
1139
+ __item_font_optkeys(tagid(tagOrId)).each{|optkey|
1140
+ optkey = optkey.to_s
1141
+ fontconf = ret[optkey]
1142
+ if fontconf.kind_of?(Array)
1143
+ ret.delete(optkey)
1144
+ ret.delete('latin' << optkey)
1145
+ ret.delete('ascii' << optkey)
1146
+ ret.delete('kanji' << optkey)
1147
+ fnt = fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
1148
+ if TkFont.is_system_font?(fnt)
1149
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
1150
+ end
1151
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), optkey)
1152
+ ret[optkey] = fontconf
1153
+ end
1154
+ }
1155
+
1156
+ __item_methodcall_optkeys(tagid(tagOrId)).each{|optkey, method|
1157
+ ret[optkey.to_s] = ['', '', '', self.__send__(method, tagOrId)]
1158
+ }
1159
+
1160
+ ret
1161
+ end
1162
+ end
1163
+ end
1164
+ end
1165
+ private :__itemconfiginfo_core
1166
+
1167
+ def itemconfiginfo(tagOrId, slot = nil)
1168
+ if slot && TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
1169
+ begin
1170
+ __itemconfiginfo_core(tagOrId, slot)
1171
+ rescue => e
1172
+ begin
1173
+ __itemconfiginfo_core(tagOrId)
1174
+ # not tag error -> option is unknown
1175
+ Array.new(__item_configinfo_struct.values.max).unshift(slot.to_s)
1176
+ rescue
1177
+ fail e # tag error
1178
+ end
1179
+ end
1180
+ else
1181
+ __itemconfiginfo_core(tagOrId, slot)
1182
+ end
1183
+ end
1184
+
1185
+ def __current_itemconfiginfo(tagOrId, slot = nil)
1186
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
1187
+ if slot
1188
+ org_slot = slot
1189
+ begin
1190
+ conf = __itemconfiginfo_core(tagOrId, slot)
1191
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
1192
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
1193
+ return {conf[0] => conf[-1]}
1194
+ end
1195
+ slot = conf[__item_configinfo_struct(tagid(tagOrId))[:alias]]
1196
+ end while(org_slot != slot)
1197
+ fail RuntimeError,
1198
+ "there is a configure alias loop about '#{org_slot}'"
1199
+ else
1200
+ ret = {}
1201
+ __itemconfiginfo_core(tagOrId).each{|conf|
1202
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
1203
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
1204
+ ret[conf[0]] = conf[-1]
1205
+ end
1206
+ }
1207
+
1208
+ ret
1209
+ end
1210
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
1211
+ ret = {}
1212
+ __itemconfiginfo_core(tagOrId, slot).each{|key, conf|
1213
+ ret[key] = conf[-1] if conf.kind_of?(Array)
1214
+ }
1215
+ ret
1216
+ end
1217
+ end
1218
+
1219
+ def current_itemconfiginfo(tagOrId, slot = nil)
1220
+ __current_itemconfiginfo(tagOrId, slot)
1221
+ end
1222
+ end