tk_as_gem 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. data/README +22 -0
  2. data/Rakefile +11 -0
  3. data/VERSION +1 -0
  4. data/ext/ChangeLog.tkextlib +935 -0
  5. data/ext/MANUAL_tcltklib.eng +469 -0
  6. data/ext/MANUAL_tcltklib.eucj +579 -0
  7. data/ext/README.1st +19 -0
  8. data/ext/README.ActiveTcl +49 -0
  9. data/ext/README.fork +34 -0
  10. data/ext/README.macosx-aqua +67 -0
  11. data/ext/README.tcltklib +85 -0
  12. data/ext/depend +2 -0
  13. data/ext/extconf.rb +451 -0
  14. data/ext/lib/README +30 -0
  15. data/ext/lib/multi-tk.rb +3491 -0
  16. data/ext/lib/remote-tk.rb +530 -0
  17. data/ext/lib/tcltk.rb +367 -0
  18. data/ext/lib/tk.rb +5584 -0
  19. data/ext/lib/tk/after.rb +6 -0
  20. data/ext/lib/tk/autoload.rb +414 -0
  21. data/ext/lib/tk/bgerror.rb +29 -0
  22. data/ext/lib/tk/bindtag.rb +138 -0
  23. data/ext/lib/tk/button.rb +30 -0
  24. data/ext/lib/tk/canvas.rb +789 -0
  25. data/ext/lib/tk/canvastag.rb +434 -0
  26. data/ext/lib/tk/checkbutton.rb +30 -0
  27. data/ext/lib/tk/clipboard.rb +75 -0
  28. data/ext/lib/tk/clock.rb +71 -0
  29. data/ext/lib/tk/composite.rb +458 -0
  30. data/ext/lib/tk/console.rb +52 -0
  31. data/ext/lib/tk/dialog.rb +326 -0
  32. data/ext/lib/tk/encodedstr.rb +187 -0
  33. data/ext/lib/tk/entry.rb +119 -0
  34. data/ext/lib/tk/event.rb +542 -0
  35. data/ext/lib/tk/font.rb +2344 -0
  36. data/ext/lib/tk/frame.rb +131 -0
  37. data/ext/lib/tk/grid.rb +279 -0
  38. data/ext/lib/tk/image.rb +275 -0
  39. data/ext/lib/tk/itemconfig.rb +1215 -0
  40. data/ext/lib/tk/itemfont.rb +327 -0
  41. data/ext/lib/tk/kinput.rb +71 -0
  42. data/ext/lib/tk/label.rb +21 -0
  43. data/ext/lib/tk/labelframe.rb +29 -0
  44. data/ext/lib/tk/listbox.rb +282 -0
  45. data/ext/lib/tk/macpkg.rb +78 -0
  46. data/ext/lib/tk/menu.rb +681 -0
  47. data/ext/lib/tk/menubar.rb +131 -0
  48. data/ext/lib/tk/menuspec.rb +275 -0
  49. data/ext/lib/tk/message.rb +22 -0
  50. data/ext/lib/tk/mngfocus.rb +33 -0
  51. data/ext/lib/tk/msgcat.rb +296 -0
  52. data/ext/lib/tk/namespace.rb +551 -0
  53. data/ext/lib/tk/optiondb.rb +377 -0
  54. data/ext/lib/tk/optionobj.rb +212 -0
  55. data/ext/lib/tk/pack.rb +107 -0
  56. data/ext/lib/tk/package.rb +143 -0
  57. data/ext/lib/tk/palette.rb +55 -0
  58. data/ext/lib/tk/panedwindow.rb +258 -0
  59. data/ext/lib/tk/place.rb +128 -0
  60. data/ext/lib/tk/radiobutton.rb +71 -0
  61. data/ext/lib/tk/root.rb +95 -0
  62. data/ext/lib/tk/scale.rb +111 -0
  63. data/ext/lib/tk/scrollable.rb +82 -0
  64. data/ext/lib/tk/scrollbar.rb +177 -0
  65. data/ext/lib/tk/scrollbox.rb +39 -0
  66. data/ext/lib/tk/selection.rb +86 -0
  67. data/ext/lib/tk/spinbox.rb +119 -0
  68. data/ext/lib/tk/tagfont.rb +43 -0
  69. data/ext/lib/tk/text.rb +1596 -0
  70. data/ext/lib/tk/textimage.rb +88 -0
  71. data/ext/lib/tk/textmark.rb +204 -0
  72. data/ext/lib/tk/texttag.rb +318 -0
  73. data/ext/lib/tk/textwindow.rb +154 -0
  74. data/ext/lib/tk/timer.rb +669 -0
  75. data/ext/lib/tk/toplevel.rb +262 -0
  76. data/ext/lib/tk/ttk_selector.rb +76 -0
  77. data/ext/lib/tk/txtwin_abst.rb +39 -0
  78. data/ext/lib/tk/validation.rb +397 -0
  79. data/ext/lib/tk/variable.rb +1765 -0
  80. data/ext/lib/tk/virtevent.rb +139 -0
  81. data/ext/lib/tk/winfo.rb +392 -0
  82. data/ext/lib/tk/winpkg.rb +153 -0
  83. data/ext/lib/tk/wm.rb +552 -0
  84. data/ext/lib/tk/xim.rb +122 -0
  85. data/ext/lib/tkafter.rb +4 -0
  86. data/ext/lib/tkbgerror.rb +4 -0
  87. data/ext/lib/tkcanvas.rb +4 -0
  88. data/ext/lib/tkclass.rb +47 -0
  89. data/ext/lib/tkconsole.rb +4 -0
  90. data/ext/lib/tkdialog.rb +4 -0
  91. data/ext/lib/tkentry.rb +4 -0
  92. data/ext/lib/tkextlib/ICONS.rb +13 -0
  93. data/ext/lib/tkextlib/ICONS/icons.rb +129 -0
  94. data/ext/lib/tkextlib/ICONS/setup.rb +8 -0
  95. data/ext/lib/tkextlib/SUPPORT_STATUS +196 -0
  96. data/ext/lib/tkextlib/blt.rb +187 -0
  97. data/ext/lib/tkextlib/blt/barchart.rb +79 -0
  98. data/ext/lib/tkextlib/blt/bitmap.rb +112 -0
  99. data/ext/lib/tkextlib/blt/busy.rb +82 -0
  100. data/ext/lib/tkextlib/blt/component.rb +2145 -0
  101. data/ext/lib/tkextlib/blt/container.rb +28 -0
  102. data/ext/lib/tkextlib/blt/cutbuffer.rb +23 -0
  103. data/ext/lib/tkextlib/blt/dragdrop.rb +268 -0
  104. data/ext/lib/tkextlib/blt/eps.rb +32 -0
  105. data/ext/lib/tkextlib/blt/graph.rb +67 -0
  106. data/ext/lib/tkextlib/blt/htext.rb +111 -0
  107. data/ext/lib/tkextlib/blt/setup.rb +8 -0
  108. data/ext/lib/tkextlib/blt/spline.rb +23 -0
  109. data/ext/lib/tkextlib/blt/stripchart.rb +74 -0
  110. data/ext/lib/tkextlib/blt/table.rb +399 -0
  111. data/ext/lib/tkextlib/blt/tabnotebook.rb +110 -0
  112. data/ext/lib/tkextlib/blt/tabset.rb +500 -0
  113. data/ext/lib/tkextlib/blt/ted.rb +65 -0
  114. data/ext/lib/tkextlib/blt/tile.rb +21 -0
  115. data/ext/lib/tkextlib/blt/tile/button.rb +16 -0
  116. data/ext/lib/tkextlib/blt/tile/checkbutton.rb +17 -0
  117. data/ext/lib/tkextlib/blt/tile/frame.rb +16 -0
  118. data/ext/lib/tkextlib/blt/tile/label.rb +16 -0
  119. data/ext/lib/tkextlib/blt/tile/radiobutton.rb +17 -0
  120. data/ext/lib/tkextlib/blt/tile/scrollbar.rb +16 -0
  121. data/ext/lib/tkextlib/blt/tile/toplevel.rb +16 -0
  122. data/ext/lib/tkextlib/blt/tree.rb +1058 -0
  123. data/ext/lib/tkextlib/blt/treeview.rb +1272 -0
  124. data/ext/lib/tkextlib/blt/unix_dnd.rb +135 -0
  125. data/ext/lib/tkextlib/blt/vector.rb +256 -0
  126. data/ext/lib/tkextlib/blt/watch.rb +175 -0
  127. data/ext/lib/tkextlib/blt/win_printer.rb +61 -0
  128. data/ext/lib/tkextlib/blt/winop.rb +107 -0
  129. data/ext/lib/tkextlib/bwidget.rb +151 -0
  130. data/ext/lib/tkextlib/bwidget/arrowbutton.rb +21 -0
  131. data/ext/lib/tkextlib/bwidget/bitmap.rb +21 -0
  132. data/ext/lib/tkextlib/bwidget/button.rb +31 -0
  133. data/ext/lib/tkextlib/bwidget/buttonbox.rb +90 -0
  134. data/ext/lib/tkextlib/bwidget/combobox.rb +51 -0
  135. data/ext/lib/tkextlib/bwidget/dialog.rb +182 -0
  136. data/ext/lib/tkextlib/bwidget/dragsite.rb +31 -0
  137. data/ext/lib/tkextlib/bwidget/dropsite.rb +39 -0
  138. data/ext/lib/tkextlib/bwidget/dynamichelp.rb +63 -0
  139. data/ext/lib/tkextlib/bwidget/entry.rb +43 -0
  140. data/ext/lib/tkextlib/bwidget/label.rb +41 -0
  141. data/ext/lib/tkextlib/bwidget/labelentry.rb +80 -0
  142. data/ext/lib/tkextlib/bwidget/labelframe.rb +52 -0
  143. data/ext/lib/tkextlib/bwidget/listbox.rb +358 -0
  144. data/ext/lib/tkextlib/bwidget/mainframe.rb +128 -0
  145. data/ext/lib/tkextlib/bwidget/messagedlg.rb +192 -0
  146. data/ext/lib/tkextlib/bwidget/notebook.rb +166 -0
  147. data/ext/lib/tkextlib/bwidget/pagesmanager.rb +73 -0
  148. data/ext/lib/tkextlib/bwidget/panedwindow.rb +37 -0
  149. data/ext/lib/tkextlib/bwidget/panelframe.rb +57 -0
  150. data/ext/lib/tkextlib/bwidget/passwddlg.rb +44 -0
  151. data/ext/lib/tkextlib/bwidget/progressbar.rb +20 -0
  152. data/ext/lib/tkextlib/bwidget/progressdlg.rb +58 -0
  153. data/ext/lib/tkextlib/bwidget/scrollableframe.rb +40 -0
  154. data/ext/lib/tkextlib/bwidget/scrolledwindow.rb +38 -0
  155. data/ext/lib/tkextlib/bwidget/scrollview.rb +25 -0
  156. data/ext/lib/tkextlib/bwidget/selectcolor.rb +73 -0
  157. data/ext/lib/tkextlib/bwidget/selectfont.rb +86 -0
  158. data/ext/lib/tkextlib/bwidget/separator.rb +20 -0
  159. data/ext/lib/tkextlib/bwidget/setup.rb +8 -0
  160. data/ext/lib/tkextlib/bwidget/spinbox.rb +98 -0
  161. data/ext/lib/tkextlib/bwidget/statusbar.rb +52 -0
  162. data/ext/lib/tkextlib/bwidget/titleframe.rb +33 -0
  163. data/ext/lib/tkextlib/bwidget/tree.rb +453 -0
  164. data/ext/lib/tkextlib/bwidget/widget.rb +129 -0
  165. data/ext/lib/tkextlib/itcl.rb +13 -0
  166. data/ext/lib/tkextlib/itcl/incr_tcl.rb +178 -0
  167. data/ext/lib/tkextlib/itcl/setup.rb +13 -0
  168. data/ext/lib/tkextlib/itk.rb +13 -0
  169. data/ext/lib/tkextlib/itk/incr_tk.rb +446 -0
  170. data/ext/lib/tkextlib/itk/setup.rb +13 -0
  171. data/ext/lib/tkextlib/iwidgets.rb +94 -0
  172. data/ext/lib/tkextlib/iwidgets/buttonbox.rb +120 -0
  173. data/ext/lib/tkextlib/iwidgets/calendar.rb +125 -0
  174. data/ext/lib/tkextlib/iwidgets/canvasprintbox.rb +53 -0
  175. data/ext/lib/tkextlib/iwidgets/canvasprintdialog.rb +38 -0
  176. data/ext/lib/tkextlib/iwidgets/checkbox.rb +129 -0
  177. data/ext/lib/tkextlib/iwidgets/combobox.rb +104 -0
  178. data/ext/lib/tkextlib/iwidgets/dateentry.rb +20 -0
  179. data/ext/lib/tkextlib/iwidgets/datefield.rb +58 -0
  180. data/ext/lib/tkextlib/iwidgets/dialog.rb +20 -0
  181. data/ext/lib/tkextlib/iwidgets/dialogshell.rb +120 -0
  182. data/ext/lib/tkextlib/iwidgets/disjointlistbox.rb +50 -0
  183. data/ext/lib/tkextlib/iwidgets/entryfield.rb +185 -0
  184. data/ext/lib/tkextlib/iwidgets/extbutton.rb +40 -0
  185. data/ext/lib/tkextlib/iwidgets/extfileselectionbox.rb +46 -0
  186. data/ext/lib/tkextlib/iwidgets/extfileselectiondialog.rb +33 -0
  187. data/ext/lib/tkextlib/iwidgets/feedback.rb +35 -0
  188. data/ext/lib/tkextlib/iwidgets/fileselectionbox.rb +46 -0
  189. data/ext/lib/tkextlib/iwidgets/fileselectiondialog.rb +33 -0
  190. data/ext/lib/tkextlib/iwidgets/finddialog.rb +42 -0
  191. data/ext/lib/tkextlib/iwidgets/hierarchy.rb +365 -0
  192. data/ext/lib/tkextlib/iwidgets/hyperhelp.rb +50 -0
  193. data/ext/lib/tkextlib/iwidgets/labeledframe.rb +39 -0
  194. data/ext/lib/tkextlib/iwidgets/labeledwidget.rb +45 -0
  195. data/ext/lib/tkextlib/iwidgets/mainwindow.rb +67 -0
  196. data/ext/lib/tkextlib/iwidgets/menubar.rb +211 -0
  197. data/ext/lib/tkextlib/iwidgets/messagebox.rb +92 -0
  198. data/ext/lib/tkextlib/iwidgets/messagedialog.rb +20 -0
  199. data/ext/lib/tkextlib/iwidgets/notebook.rb +174 -0
  200. data/ext/lib/tkextlib/iwidgets/optionmenu.rb +92 -0
  201. data/ext/lib/tkextlib/iwidgets/panedwindow.rb +133 -0
  202. data/ext/lib/tkextlib/iwidgets/promptdialog.rb +131 -0
  203. data/ext/lib/tkextlib/iwidgets/pushbutton.rb +35 -0
  204. data/ext/lib/tkextlib/iwidgets/radiobox.rb +120 -0
  205. data/ext/lib/tkextlib/iwidgets/scopedobject.rb +24 -0
  206. data/ext/lib/tkextlib/iwidgets/scrolledcanvas.rb +353 -0
  207. data/ext/lib/tkextlib/iwidgets/scrolledframe.rb +59 -0
  208. data/ext/lib/tkextlib/iwidgets/scrolledhtml.rb +58 -0
  209. data/ext/lib/tkextlib/iwidgets/scrolledlistbox.rb +207 -0
  210. data/ext/lib/tkextlib/iwidgets/scrolledtext.rb +564 -0
  211. data/ext/lib/tkextlib/iwidgets/scrolledwidget.rb +20 -0
  212. data/ext/lib/tkextlib/iwidgets/selectionbox.rb +102 -0
  213. data/ext/lib/tkextlib/iwidgets/selectiondialog.rb +92 -0
  214. data/ext/lib/tkextlib/iwidgets/setup.rb +8 -0
  215. data/ext/lib/tkextlib/iwidgets/shell.rb +38 -0
  216. data/ext/lib/tkextlib/iwidgets/spindate.rb +48 -0
  217. data/ext/lib/tkextlib/iwidgets/spinint.rb +30 -0
  218. data/ext/lib/tkextlib/iwidgets/spinner.rb +169 -0
  219. data/ext/lib/tkextlib/iwidgets/spintime.rb +48 -0
  220. data/ext/lib/tkextlib/iwidgets/tabnotebook.rb +180 -0
  221. data/ext/lib/tkextlib/iwidgets/tabset.rb +144 -0
  222. data/ext/lib/tkextlib/iwidgets/timeentry.rb +25 -0
  223. data/ext/lib/tkextlib/iwidgets/timefield.rb +58 -0
  224. data/ext/lib/tkextlib/iwidgets/toolbar.rb +112 -0
  225. data/ext/lib/tkextlib/iwidgets/watch.rb +56 -0
  226. data/ext/lib/tkextlib/pkg_checker.rb +184 -0
  227. data/ext/lib/tkextlib/setup.rb +8 -0
  228. data/ext/lib/tkextlib/tcllib.rb +90 -0
  229. data/ext/lib/tkextlib/tcllib/README +135 -0
  230. data/ext/lib/tkextlib/tcllib/autoscroll.rb +158 -0
  231. data/ext/lib/tkextlib/tcllib/ctext.rb +160 -0
  232. data/ext/lib/tkextlib/tcllib/cursor.rb +97 -0
  233. data/ext/lib/tkextlib/tcllib/datefield.rb +57 -0
  234. data/ext/lib/tkextlib/tcllib/dialog.rb +84 -0
  235. data/ext/lib/tkextlib/tcllib/getstring.rb +134 -0
  236. data/ext/lib/tkextlib/tcllib/history.rb +73 -0
  237. data/ext/lib/tkextlib/tcllib/ico.rb +116 -0
  238. data/ext/lib/tkextlib/tcllib/ip_entry.rb +66 -0
  239. data/ext/lib/tkextlib/tcllib/panelframe.rb +72 -0
  240. data/ext/lib/tkextlib/tcllib/plotchart.rb +886 -0
  241. data/ext/lib/tkextlib/tcllib/ruler.rb +65 -0
  242. data/ext/lib/tkextlib/tcllib/screenruler.rb +68 -0
  243. data/ext/lib/tkextlib/tcllib/scrollwin.rb +61 -0
  244. data/ext/lib/tkextlib/tcllib/setup.rb +8 -0
  245. data/ext/lib/tkextlib/tcllib/style.rb +61 -0
  246. data/ext/lib/tkextlib/tcllib/superframe.rb +51 -0
  247. data/ext/lib/tkextlib/tcllib/swaplist.rb +150 -0
  248. data/ext/lib/tkextlib/tcllib/tablelist.rb +27 -0
  249. data/ext/lib/tkextlib/tcllib/tablelist_core.rb +782 -0
  250. data/ext/lib/tkextlib/tcllib/tablelist_tile.rb +25 -0
  251. data/ext/lib/tkextlib/tcllib/tkpiechart.rb +314 -0
  252. data/ext/lib/tkextlib/tcllib/tooltip.rb +95 -0
  253. data/ext/lib/tkextlib/tcllib/widget.rb +48 -0
  254. data/ext/lib/tkextlib/tclx.rb +13 -0
  255. data/ext/lib/tkextlib/tclx/setup.rb +8 -0
  256. data/ext/lib/tkextlib/tclx/tclx.rb +74 -0
  257. data/ext/lib/tkextlib/tile.rb +419 -0
  258. data/ext/lib/tkextlib/tile/dialog.rb +96 -0
  259. data/ext/lib/tkextlib/tile/setup.rb +8 -0
  260. data/ext/lib/tkextlib/tile/sizegrip.rb +29 -0
  261. data/ext/lib/tkextlib/tile/style.rb +316 -0
  262. data/ext/lib/tkextlib/tile/tbutton.rb +33 -0
  263. data/ext/lib/tkextlib/tile/tcheckbutton.rb +36 -0
  264. data/ext/lib/tkextlib/tile/tcombobox.rb +54 -0
  265. data/ext/lib/tkextlib/tile/tentry.rb +48 -0
  266. data/ext/lib/tkextlib/tile/tframe.rb +33 -0
  267. data/ext/lib/tkextlib/tile/tlabel.rb +33 -0
  268. data/ext/lib/tkextlib/tile/tlabelframe.rb +36 -0
  269. data/ext/lib/tkextlib/tile/tmenubutton.rb +36 -0
  270. data/ext/lib/tkextlib/tile/tnotebook.rb +139 -0
  271. data/ext/lib/tkextlib/tile/tpaned.rb +231 -0
  272. data/ext/lib/tkextlib/tile/tprogressbar.rb +56 -0
  273. data/ext/lib/tkextlib/tile/tradiobutton.rb +36 -0
  274. data/ext/lib/tkextlib/tile/treeview.rb +1239 -0
  275. data/ext/lib/tkextlib/tile/tscale.rb +53 -0
  276. data/ext/lib/tkextlib/tile/tscrollbar.rb +54 -0
  277. data/ext/lib/tkextlib/tile/tseparator.rb +33 -0
  278. data/ext/lib/tkextlib/tile/tsquare.rb +30 -0
  279. data/ext/lib/tkextlib/tkDND.rb +18 -0
  280. data/ext/lib/tkextlib/tkDND/setup.rb +8 -0
  281. data/ext/lib/tkextlib/tkDND/shape.rb +125 -0
  282. data/ext/lib/tkextlib/tkDND/tkdnd.rb +182 -0
  283. data/ext/lib/tkextlib/tkHTML.rb +13 -0
  284. data/ext/lib/tkextlib/tkHTML/htmlwidget.rb +453 -0
  285. data/ext/lib/tkextlib/tkHTML/setup.rb +8 -0
  286. data/ext/lib/tkextlib/tkimg.rb +36 -0
  287. data/ext/lib/tkextlib/tkimg/README +26 -0
  288. data/ext/lib/tkextlib/tkimg/bmp.rb +33 -0
  289. data/ext/lib/tkextlib/tkimg/gif.rb +33 -0
  290. data/ext/lib/tkextlib/tkimg/ico.rb +33 -0
  291. data/ext/lib/tkextlib/tkimg/jpeg.rb +33 -0
  292. data/ext/lib/tkextlib/tkimg/pcx.rb +33 -0
  293. data/ext/lib/tkextlib/tkimg/pixmap.rb +44 -0
  294. data/ext/lib/tkextlib/tkimg/png.rb +33 -0
  295. data/ext/lib/tkextlib/tkimg/ppm.rb +33 -0
  296. data/ext/lib/tkextlib/tkimg/ps.rb +33 -0
  297. data/ext/lib/tkextlib/tkimg/setup.rb +8 -0
  298. data/ext/lib/tkextlib/tkimg/sgi.rb +33 -0
  299. data/ext/lib/tkextlib/tkimg/sun.rb +33 -0
  300. data/ext/lib/tkextlib/tkimg/tga.rb +33 -0
  301. data/ext/lib/tkextlib/tkimg/tiff.rb +33 -0
  302. data/ext/lib/tkextlib/tkimg/window.rb +33 -0
  303. data/ext/lib/tkextlib/tkimg/xbm.rb +33 -0
  304. data/ext/lib/tkextlib/tkimg/xpm.rb +33 -0
  305. data/ext/lib/tkextlib/tktable.rb +14 -0
  306. data/ext/lib/tkextlib/tktable/setup.rb +8 -0
  307. data/ext/lib/tkextlib/tktable/tktable.rb +957 -0
  308. data/ext/lib/tkextlib/tktrans.rb +14 -0
  309. data/ext/lib/tkextlib/tktrans/setup.rb +8 -0
  310. data/ext/lib/tkextlib/tktrans/tktrans.rb +64 -0
  311. data/ext/lib/tkextlib/treectrl.rb +13 -0
  312. data/ext/lib/tkextlib/treectrl/setup.rb +8 -0
  313. data/ext/lib/tkextlib/treectrl/tktreectrl.rb +2461 -0
  314. data/ext/lib/tkextlib/trofs.rb +13 -0
  315. data/ext/lib/tkextlib/trofs/setup.rb +8 -0
  316. data/ext/lib/tkextlib/trofs/trofs.rb +51 -0
  317. data/ext/lib/tkextlib/version.rb +6 -0
  318. data/ext/lib/tkextlib/vu.rb +48 -0
  319. data/ext/lib/tkextlib/vu/bargraph.rb +61 -0
  320. data/ext/lib/tkextlib/vu/charts.rb +53 -0
  321. data/ext/lib/tkextlib/vu/dial.rb +102 -0
  322. data/ext/lib/tkextlib/vu/pie.rb +282 -0
  323. data/ext/lib/tkextlib/vu/setup.rb +8 -0
  324. data/ext/lib/tkextlib/vu/spinbox.rb +22 -0
  325. data/ext/lib/tkextlib/winico.rb +14 -0
  326. data/ext/lib/tkextlib/winico/setup.rb +8 -0
  327. data/ext/lib/tkextlib/winico/winico.rb +224 -0
  328. data/ext/lib/tkfont.rb +4 -0
  329. data/ext/lib/tkmacpkg.rb +4 -0
  330. data/ext/lib/tkmenubar.rb +4 -0
  331. data/ext/lib/tkmngfocus.rb +4 -0
  332. data/ext/lib/tkpalette.rb +4 -0
  333. data/ext/lib/tkscrollbox.rb +4 -0
  334. data/ext/lib/tktext.rb +4 -0
  335. data/ext/lib/tkvirtevent.rb +4 -0
  336. data/ext/lib/tkwinpkg.rb +4 -0
  337. data/ext/old-README.tcltklib.eucj +159 -0
  338. data/ext/stubs.c +531 -0
  339. data/ext/stubs.h +33 -0
  340. data/ext/tcltklib.c +10155 -0
  341. data/ext/tkutil/.cvsignore +3 -0
  342. data/ext/tkutil/depend +1 -0
  343. data/ext/tkutil/extconf.rb +14 -0
  344. data/ext/tkutil/tkutil.c +1789 -0
  345. metadata +418 -0
@@ -0,0 +1,1215 @@
1
+ #
2
+ # tk/itemconfig.rb : control item/tag configuration of widget
3
+ #
4
+ require 'tk'
5
+ require 'tkutil'
6
+ require 'tk/itemfont.rb'
7
+
8
+ module TkItemConfigOptkeys
9
+ include TkUtil
10
+
11
+ def __item_optkey_aliases(id)
12
+ {}
13
+ end
14
+ private :__item_optkey_aliases
15
+
16
+ def __item_numval_optkeys(id)
17
+ []
18
+ end
19
+ private :__item_numval_optkeys
20
+
21
+ def __item_numstrval_optkeys(id)
22
+ []
23
+ end
24
+ private :__item_numstrval_optkeys
25
+
26
+ def __item_boolval_optkeys(id)
27
+ ['exportselection', 'jump', 'setgrid', 'takefocus']
28
+ end
29
+ private :__item_boolval_optkeys
30
+
31
+ def __item_strval_optkeys(id)
32
+ # maybe need to override
33
+ [
34
+ 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile',
35
+ 'activebackground', 'activeforeground', 'background',
36
+ 'disabledforeground', 'disabledbackground', 'foreground',
37
+ 'highlightbackground', 'highlightcolor', 'insertbackground',
38
+ 'selectbackground', 'selectforeground', 'troughcolor'
39
+ ]
40
+ end
41
+ private :__item_strval_optkeys
42
+
43
+ def __item_listval_optkeys(id)
44
+ []
45
+ end
46
+ private :__item_listval_optkeys
47
+
48
+ def __item_numlistval_optkeys(id)
49
+ # maybe need to override
50
+ ['dash', 'activedash', 'disableddash']
51
+ end
52
+ private :__item_numlistval_optkeys
53
+
54
+ def __item_tkvariable_optkeys(id)
55
+ ['variable', 'textvariable']
56
+ end
57
+ private :__item_tkvariable_optkeys
58
+
59
+ def __item_val2ruby_optkeys(id) # { key=>method, ... }
60
+ # The method is used to convert a opt-value to a ruby's object.
61
+ # When get the value of the option "key", "method.call(id, val)" is called.
62
+ {}
63
+ end
64
+ private :__item_val2ruby_optkeys
65
+
66
+ def __item_ruby2val_optkeys(id) # { key=>method, ... }
67
+ # The method is used to convert a ruby's object to a opt-value.
68
+ # When set the value of the option "key", "method.call(id, val)" is called.
69
+ # That is, "-#{key} #{method.call(id, value)}".
70
+ {}
71
+ end
72
+ private :__item_ruby2val_optkeys
73
+
74
+ def __item_methodcall_optkeys(id) # { key=>method, ... }
75
+ # Use the method for both of get and set.
76
+ # Usually, the 'key' will not be a widget option.
77
+ #
78
+ # maybe need to override
79
+ # {'coords'=>'coords'}
80
+ {}
81
+ end
82
+ private :__item_methodcall_optkeys
83
+
84
+ ################################################
85
+
86
+ def __item_keyonly_optkeys(id) # { def_key=>(undef_key|nil), ... }
87
+ # maybe need to override
88
+ {}
89
+ end
90
+ private :__item_keyonly_optkeys
91
+
92
+
93
+ def __conv_item_keyonly_opts(id, keys)
94
+ return keys unless keys.kind_of?(Hash)
95
+ keyonly = __item_keyonly_optkeys(id)
96
+ keys2 = {}
97
+ keys.each{|k, v|
98
+ optkey = keyonly.find{|kk,vv| kk.to_s == k.to_s}
99
+ if optkey
100
+ defkey, undefkey = optkey
101
+ if v
102
+ keys2[defkey.to_s] = None
103
+ else
104
+ keys2[undefkey.to_s] = None
105
+ end
106
+ else
107
+ keys2[k.to_s] = v
108
+ end
109
+ }
110
+ keys2
111
+ end
112
+
113
+ def itemconfig_hash_kv(id, keys, enc_mode = nil, conf = nil)
114
+ hash_kv(__conv_item_keyonly_opts(id, keys), enc_mode, conf)
115
+ end
116
+ end
117
+
118
+ module TkItemConfigMethod
119
+ include TkUtil
120
+ include TkTreatItemFont
121
+ include TkItemConfigOptkeys
122
+
123
+ def TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
124
+ @mode || false
125
+ end
126
+ def TkItemConfigMethod.__set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode)
127
+ fail SecurityError, "can't change the mode" if $SAFE>=4
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
+ def __itemcget_core(tagOrId, option)
166
+ orig_opt = option
167
+ option = option.to_s
168
+
169
+ if option.length == 0
170
+ fail ArgumentError, "Invalid option `#{orig_opt.inspect}'"
171
+ end
172
+
173
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == option}
174
+ if real_name
175
+ option = real_name.to_s
176
+ end
177
+
178
+ if ( method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[option] )
179
+ optval = tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}"))
180
+ begin
181
+ return method.call(tagOrId, optval)
182
+ rescue => e
183
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
184
+ return optval
185
+ end
186
+ end
187
+
188
+ if ( method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[option] )
189
+ return self.__send__(method, tagOrId)
190
+ end
191
+
192
+ case option
193
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
194
+ begin
195
+ number(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
196
+ rescue
197
+ nil
198
+ end
199
+
200
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
201
+ num_or_str(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
202
+
203
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
204
+ begin
205
+ bool(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
206
+ rescue
207
+ nil
208
+ end
209
+
210
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
211
+ simplelist(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
212
+
213
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
214
+ conf = tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}"))
215
+ if conf =~ /^[0-9]/
216
+ list(conf)
217
+ else
218
+ conf
219
+ end
220
+
221
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
222
+ v = tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}"))
223
+ (v.empty?)? nil: TkVarAccess.new(v)
224
+
225
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
226
+ _fromUTF8(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")))
227
+
228
+ when /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/
229
+ fontcode = $1
230
+ fontkey = $2
231
+ fnt = tk_tcl2ruby(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{fontkey}")), true)
232
+ unless fnt.kind_of?(TkFont)
233
+ fnt = tagfontobj(tagid(tagOrId), fontkey)
234
+ end
235
+ if fontcode == 'kanji' && JAPANIZED_TK && TK_VERSION =~ /^4\.*/
236
+ # obsolete; just for compatibility
237
+ fnt.kanji_font
238
+ else
239
+ fnt
240
+ end
241
+ else
242
+ tk_tcl2ruby(tk_call_without_enc(*(__item_cget_cmd(tagid(tagOrId)) << "-#{option}")), true)
243
+ end
244
+ end
245
+ private :__itemcget_core
246
+
247
+ def itemcget(tagOrId, option)
248
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
249
+ __itemcget_core(tagOrId, option)
250
+ else
251
+ begin
252
+ __itemcget_core(tagOrId, option)
253
+ rescue => e
254
+ begin
255
+ if __current_itemconfiginfo(tagOrId).has_key?(option.to_s)
256
+ # not tag error & option is known -> error on known option
257
+ fail e
258
+ else
259
+ # not tag error & option is unknown
260
+ nil
261
+ end
262
+ rescue
263
+ fail e # tag error
264
+ end
265
+ end
266
+ end
267
+ end
268
+ def itemcget_strict(tagOrId, option)
269
+ # never use TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
270
+ __itemcget_core(tagOrId, option)
271
+ end
272
+
273
+ def __itemconfigure_core(tagOrId, slot, value=None)
274
+ if slot.kind_of? Hash
275
+ slot = _symbolkey2str(slot)
276
+
277
+ __item_optkey_aliases(tagid(tagOrId)).each{|alias_name, real_name|
278
+ alias_name = alias_name.to_s
279
+ if slot.has_key?(alias_name)
280
+ slot[real_name.to_s] = slot.delete(alias_name)
281
+ end
282
+ }
283
+
284
+ __item_methodcall_optkeys(tagid(tagOrId)).each{|key, method|
285
+ value = slot.delete(key.to_s)
286
+ self.__send__(method, tagOrId, value) if value
287
+ }
288
+
289
+ __item_ruby2val_optkeys(tagid(tagOrId)).each{|key, method|
290
+ key = key.to_s
291
+ slot[key] = method.call(tagOrId, slot[key]) if slot.has_key?(key)
292
+ }
293
+
294
+ __item_keyonly_optkeys(tagid(tagOrId)).each{|defkey, undefkey|
295
+ conf = slot.find{|kk, vv| kk == defkey.to_s}
296
+ if conf
297
+ k, v = conf
298
+ if v
299
+ slot[k] = None
300
+ else
301
+ slot[undefkey.to_s] = None if undefkey
302
+ slot.delete(k)
303
+ end
304
+ end
305
+ }
306
+
307
+ if (slot.find{|k, v| k =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/})
308
+ tagfont_configure(tagid(tagOrId), slot)
309
+ elsif slot.size > 0
310
+ tk_call(*(__item_config_cmd(tagid(tagOrId)).concat(hash_kv(slot))))
311
+ end
312
+
313
+ else
314
+ orig_slot = slot
315
+ slot = slot.to_s
316
+ if slot.length == 0
317
+ fail ArgumentError, "Invalid option `#{orig_slot.inspect}'"
318
+ end
319
+
320
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == slot}
321
+ if real_name
322
+ slot = real_name.to_s
323
+ end
324
+
325
+ if ( conf = __item_keyonly_optkeys(tagid(tagOrId)).find{|k, v| k.to_s == slot } )
326
+ defkey, undefkey = conf
327
+ if value
328
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{defkey}"))
329
+ elsif undefkey
330
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{undefkey}"))
331
+ end
332
+ elsif ( method = _symbolkey2str(__item_ruby2val_optkeys(tagid(tagOrId)))[slot] )
333
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{slot}" << method.call(tagOrId, value)))
334
+ elsif ( method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[slot] )
335
+ self.__send__(method, tagOrId, value)
336
+ elsif (slot =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/)
337
+ if value == None
338
+ tagfontobj(tagid(tagOrId), $2)
339
+ else
340
+ tagfont_configure(tagid(tagOrId), {slot=>value})
341
+ end
342
+ else
343
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{slot}" << value))
344
+ end
345
+ end
346
+ self
347
+ end
348
+ private :__itemconfigure_core
349
+
350
+ def __check_available_itemconfigure_options(tagOrId, keys)
351
+ id = tagid(tagOrId)
352
+
353
+ availables = self.__current_itemconfiginfo(id).keys
354
+
355
+ # add non-standard keys
356
+ availables |= __font_optkeys.map{|k|
357
+ [k.to_s, "latin#{k}", "ascii#{k}", "kanji#{k}"]
358
+ }.flatten
359
+ availables |= __item_methodcall_optkeys(id).keys.map{|k| k.to_s}
360
+ availables |= __item_keyonly_optkeys(id).keys.map{|k| k.to_s}
361
+
362
+ keys = _symbolkey2str(keys)
363
+
364
+ keys.delete_if{|k, v| !(availables.include?(k))}
365
+ end
366
+
367
+ def itemconfigure(tagOrId, slot, value=None)
368
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
369
+ __itemconfigure_core(tagOrId, slot, value)
370
+ else
371
+ if slot.kind_of?(Hash)
372
+ begin
373
+ __itemconfigure_core(tagOrId, slot)
374
+ rescue
375
+ slot = __check_available_itemconfigure_options(tagOrId, slot)
376
+ __itemconfigure_core(tagOrId, slot) unless slot.empty?
377
+ end
378
+ else
379
+ begin
380
+ __itemconfigure_core(tagOrId, slot, value)
381
+ rescue => e
382
+ begin
383
+ if __current_itemconfiginfo(tagOrId).has_key?(slot.to_s)
384
+ # not tag error & option is known -> error on known option
385
+ fail e
386
+ else
387
+ # not tag error & option is unknown
388
+ nil
389
+ end
390
+ rescue
391
+ fail e # tag error
392
+ end
393
+ end
394
+ end
395
+ end
396
+ self
397
+ end
398
+
399
+ def __itemconfiginfo_core(tagOrId, slot = nil)
400
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
401
+ if (slot && slot.to_s =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/)
402
+ fontkey = $2
403
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}"))))
404
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}")), false, true)
405
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
406
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
407
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
408
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
409
+ fnt = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
410
+ if TkFont.is_system_font?(fnt)
411
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
412
+ end
413
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), fontkey)
414
+ elsif ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
415
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 \
416
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?- )
417
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
418
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
419
+ end
420
+ conf
421
+ else
422
+ if slot
423
+ slot = slot.to_s
424
+
425
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == slot}
426
+ if real_name
427
+ slot = real_name.to_s
428
+ end
429
+
430
+ case slot
431
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
432
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[slot]
433
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
434
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
435
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
436
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
437
+ begin
438
+ val = method.call(tagOrId, optval)
439
+ rescue => e
440
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
441
+ val = optval
442
+ end
443
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
444
+ end
445
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
446
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
447
+ begin
448
+ val = method.call(tagOrId, optval)
449
+ rescue => e
450
+ warn("Warning:: #{e.message} (when #{method}lcall(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
451
+ val = optval
452
+ end
453
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
454
+ end
455
+
456
+ when /^(#{__item_methodcall_optkeys(tagid(tagOrId)).keys.join('|')})$/
457
+ method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[slot]
458
+ return [slot, '', '', '', self.__send__(method, tagOrId)]
459
+
460
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
461
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
462
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
463
+
464
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
465
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
466
+ begin
467
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
468
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
469
+ rescue
470
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
471
+ end
472
+ end
473
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
474
+ begin
475
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
476
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
477
+ rescue
478
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
479
+ end
480
+ end
481
+
482
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
483
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
484
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
485
+
486
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
487
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
488
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
489
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
490
+ end
491
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
492
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
493
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
494
+ end
495
+
496
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
497
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
498
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
499
+
500
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
501
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
502
+ begin
503
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
504
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
505
+ rescue
506
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
507
+ end
508
+ end
509
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
510
+ begin
511
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
512
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
513
+ rescue
514
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
515
+ end
516
+ end
517
+
518
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
519
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
520
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
521
+
522
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
523
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
524
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
525
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
526
+ end
527
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
528
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
529
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
530
+ end
531
+
532
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
533
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
534
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
535
+
536
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
537
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
538
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
539
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
540
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
541
+ end
542
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
543
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
544
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
545
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
546
+ end
547
+
548
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
549
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
550
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
551
+
552
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
553
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
554
+
555
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
556
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
557
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
558
+ if v.empty?
559
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
560
+ else
561
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
562
+ end
563
+ end
564
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
565
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
566
+ if v.empty?
567
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
568
+ else
569
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
570
+ end
571
+ end
572
+
573
+ else
574
+ # conf = tk_split_list(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
575
+ conf = tk_split_list(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), 0, false, true)
576
+ end
577
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
578
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
579
+
580
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
581
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 \
582
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?- )
583
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
584
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
585
+ end
586
+
587
+ conf
588
+
589
+ else
590
+ # ret = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))))).collect{|conflist|
591
+ # conf = tk_split_simplelist(conflist)
592
+ ret = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))), false, false).collect{|conflist|
593
+ conf = tk_split_simplelist(conflist, false, true)
594
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
595
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
596
+
597
+ optkey = conf[__item_configinfo_struct(tagid(tagOrId))[:key]]
598
+ case optkey
599
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
600
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[optkey]
601
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
602
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
603
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
604
+ begin
605
+ val = method(tagOrId, optval)
606
+ rescue => e
607
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
608
+ val = optval
609
+ end
610
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
611
+ end
612
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
613
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
614
+ begin
615
+ val = method.call(tagOrId, optval)
616
+ rescue => e
617
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
618
+ val = optval
619
+ end
620
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
621
+ end
622
+
623
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
624
+ # do nothing
625
+
626
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
627
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
628
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
629
+ begin
630
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
631
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
632
+ rescue
633
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
634
+ end
635
+ end
636
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
637
+ begin
638
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
639
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
640
+ rescue
641
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
642
+ end
643
+ end
644
+
645
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
646
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
647
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
648
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
649
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
650
+ end
651
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
652
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
653
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
654
+ end
655
+
656
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
657
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
658
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
659
+ begin
660
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
661
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
662
+ rescue
663
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
664
+ end
665
+ end
666
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
667
+ begin
668
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
669
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
670
+ rescue
671
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
672
+ end
673
+ end
674
+
675
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
676
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
677
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
678
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
679
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
680
+ end
681
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
682
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
683
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
684
+ end
685
+
686
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
687
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
688
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
689
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
690
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
691
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
692
+ end
693
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
694
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
695
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
696
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
697
+ end
698
+
699
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
700
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
701
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
702
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
703
+ if v.empty?
704
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
705
+ else
706
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
707
+ end
708
+ end
709
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
710
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
711
+ if v.empty?
712
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
713
+ else
714
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
715
+ end
716
+ end
717
+
718
+ else
719
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
720
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
721
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]].index('{')
722
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
723
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
724
+ else
725
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
726
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
727
+ end
728
+ end
729
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
730
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]].index('{')
731
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
732
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
733
+ else
734
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
735
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
736
+ end
737
+ end
738
+ end
739
+
740
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
741
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 \
742
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?- )
743
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
744
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
745
+ end
746
+
747
+ conf
748
+ }
749
+
750
+ __item_font_optkeys(tagid(tagOrId)).each{|optkey|
751
+ optkey = optkey.to_s
752
+ fontconf = ret.assoc(optkey)
753
+ if fontconf && fontconf.size > 2
754
+ ret.delete_if{|inf| inf[0] =~ /^(|latin|ascii|kanji)#{optkey}$/}
755
+ fnt = fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
756
+ if TkFont.is_system_font?(fnt)
757
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
758
+ end
759
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), optkey)
760
+ ret.push(fontconf)
761
+ end
762
+ }
763
+
764
+ __item_methodcall_optkeys(tagid(tagOrId)).each{|optkey, method|
765
+ ret << [optkey.to_s, '', '', '', self.__send__(method, tagOrId)]
766
+ }
767
+
768
+ ret
769
+ end
770
+ end
771
+
772
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
773
+ if (slot && slot.to_s =~ /^(|latin|ascii|kanji)(#{__item_font_optkeys(tagid(tagOrId)).join('|')})$/)
774
+ fontkey = $2
775
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}"))))
776
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{fontkey}")), false, true)
777
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
778
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
779
+
780
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
781
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
782
+ fnt = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
783
+ if TkFont.is_system_font?(fnt)
784
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
785
+ end
786
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), fontkey)
787
+ { conf.shift => conf }
788
+ elsif ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
789
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
790
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?-
791
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
792
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
793
+ end
794
+ { conf[0] => conf[1] }
795
+ else
796
+ { conf.shift => conf }
797
+ end
798
+ else
799
+ if slot
800
+ slot = slot.to_s
801
+
802
+ alias_name, real_name = __item_optkey_aliases(tagid(tagOrId)).find{|k, v| k.to_s == slot}
803
+ if real_name
804
+ slot = real_name.to_s
805
+ end
806
+
807
+ case slot
808
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
809
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[slot]
810
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
811
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
812
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
813
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
814
+ begin
815
+ val = method.call(tagOrId, optval)
816
+ rescue => e
817
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
818
+ val = optval
819
+ end
820
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
821
+ end
822
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
823
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
824
+ begin
825
+ val = method.call(tagOrId, optval)
826
+ rescue => e
827
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
828
+ val = optval
829
+ end
830
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
831
+ end
832
+
833
+ when /^(#{__item_methodcall_optkeys(tagid(tagOrId)).keys.join('|')})$/
834
+ method = _symbolkey2str(__item_methodcall_optkeys(tagid(tagOrId)))[slot]
835
+ return {slot => ['', '', '', self.__send__(method, tagOrId)]}
836
+
837
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
838
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
839
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
840
+
841
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
842
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
843
+ begin
844
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
845
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
846
+ rescue
847
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
848
+ end
849
+ end
850
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
851
+ begin
852
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
853
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
854
+ rescue
855
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
856
+ end
857
+ end
858
+
859
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
860
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
861
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
862
+
863
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
864
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
865
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
866
+ num_or_stre(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
867
+ end
868
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
869
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
870
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
871
+ end
872
+
873
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
874
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
875
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
876
+
877
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
878
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
879
+ begin
880
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
881
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
882
+ rescue
883
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
884
+ end
885
+ end
886
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
887
+ begin
888
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
889
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
890
+ rescue
891
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
892
+ end
893
+ end
894
+
895
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
896
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
897
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
898
+
899
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
900
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
901
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
902
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
903
+ end
904
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
905
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
906
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
907
+ end
908
+
909
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
910
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
911
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
912
+
913
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
914
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
915
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
916
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
917
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
918
+ end
919
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
920
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
921
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
922
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
923
+ end
924
+
925
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
926
+ # conf = tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
927
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
928
+
929
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
930
+ conf = tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), false, true)
931
+
932
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
933
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
934
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
935
+ if v.empty?
936
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
937
+ else
938
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
939
+ end
940
+ end
941
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
942
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
943
+ if v.empty?
944
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
945
+ else
946
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
947
+ end
948
+ end
949
+
950
+ else
951
+ # conf = tk_split_list(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}"))))
952
+ conf = tk_split_list(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)) << "-#{slot}")), 0, false, true)
953
+ end
954
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
955
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
956
+
957
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
958
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
959
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?-
960
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
961
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
962
+ end
963
+ { conf[0] => conf[1] }
964
+ else
965
+ { conf.shift => conf }
966
+ end
967
+
968
+ else
969
+ ret = {}
970
+ # tk_split_simplelist(_fromUTF8(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))))).each{|conflist|
971
+ # conf = tk_split_simplelist(conflist)
972
+ tk_split_simplelist(tk_call_without_enc(*(__item_confinfo_cmd(tagid(tagOrId)))), false, false).each{|conflist|
973
+ conf = tk_split_simplelist(conflist, false, true)
974
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]] =
975
+ conf[__item_configinfo_struct(tagid(tagOrId))[:key]][1..-1]
976
+
977
+ optkey = conf[__item_configinfo_struct(tagid(tagOrId))[:key]]
978
+ case optkey
979
+ when /^(#{__item_val2ruby_optkeys(tagid(tagOrId)).keys.join('|')})$/
980
+ method = _symbolkey2str(__item_val2ruby_optkeys(tagid(tagOrId)))[optkey]
981
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
982
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
983
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
984
+ begin
985
+ val = method.call(tagOrId, optval)
986
+ rescue => e
987
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
988
+ val = optval
989
+ end
990
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = val
991
+ end
992
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
993
+ optval = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
994
+ begin
995
+ val = method.call(tagOrId, optval)
996
+ rescue => e
997
+ warn("Warning:: #{e.message} (when #{method}.call(#{tagOrId.inspect}, #{optval.inspect})") if $DEBUG
998
+ val = optval
999
+ end
1000
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = val
1001
+ end
1002
+
1003
+ when /^(#{__item_strval_optkeys(tagid(tagOrId)).join('|')})$/
1004
+ # do nothing
1005
+
1006
+ when /^(#{__item_numval_optkeys(tagid(tagOrId)).join('|')})$/
1007
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1008
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1009
+ begin
1010
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1011
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1012
+ rescue
1013
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
1014
+ end
1015
+ end
1016
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1017
+ begin
1018
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1019
+ number(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1020
+ rescue
1021
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
1022
+ end
1023
+ end
1024
+
1025
+ when /^(#{__item_numstrval_optkeys(tagid(tagOrId)).join('|')})$/
1026
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1027
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1028
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1029
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1030
+ end
1031
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1032
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1033
+ num_or_str(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1034
+ end
1035
+
1036
+ when /^(#{__item_boolval_optkeys(tagid(tagOrId)).join('|')})$/
1037
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1038
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1039
+ begin
1040
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1041
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1042
+ rescue
1043
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
1044
+ end
1045
+ end
1046
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1047
+ begin
1048
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1049
+ bool(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1050
+ rescue
1051
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
1052
+ end
1053
+ end
1054
+
1055
+ when /^(#{__item_listval_optkeys(tagid(tagOrId)).join('|')})$/
1056
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1057
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1058
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1059
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1060
+ end
1061
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1062
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1063
+ simplelist(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1064
+ end
1065
+
1066
+ when /^(#{__item_numlistval_optkeys(tagid(tagOrId)).join('|')})$/
1067
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1068
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] \
1069
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =~ /^[0-9]/ )
1070
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1071
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1072
+ end
1073
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] \
1074
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =~ /^[0-9]/ )
1075
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1076
+ list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1077
+ end
1078
+
1079
+ when /^(#{__item_tkvariable_optkeys(tagid(tagOrId)).join('|')})$/
1080
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1081
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1082
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
1083
+ if v.empty?
1084
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = nil
1085
+ else
1086
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkVarAccess.new(v)
1087
+ end
1088
+ end
1089
+ if ( conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] )
1090
+ v = conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
1091
+ if v.empty?
1092
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = nil
1093
+ else
1094
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = TkVarAccess.new(v)
1095
+ end
1096
+ end
1097
+
1098
+ else
1099
+ if ( __item_configinfo_struct(tagid(tagOrId))[:default_value] \
1100
+ && conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] )
1101
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]].index('{')
1102
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1103
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1104
+ else
1105
+ conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] =
1106
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:default_value]])
1107
+ end
1108
+ end
1109
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]]
1110
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]].index('{')
1111
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1112
+ tk_split_list(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1113
+ else
1114
+ conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] =
1115
+ tk_tcl2ruby(conf[__item_configinfo_struct(tagid(tagOrId))[:current_value]])
1116
+ end
1117
+ end
1118
+ end
1119
+
1120
+ if ( __item_configinfo_struct(tagid(tagOrId))[:alias] \
1121
+ && conf.size == __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
1122
+ if conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][0] == ?-
1123
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]] =
1124
+ conf[__item_configinfo_struct(tagid(tagOrId))[:alias]][1..-1]
1125
+ end
1126
+ ret[conf[0]] = conf[1]
1127
+ else
1128
+ ret[conf.shift] = conf
1129
+ end
1130
+ }
1131
+
1132
+ __item_font_optkeys(tagid(tagOrId)).each{|optkey|
1133
+ optkey = optkey.to_s
1134
+ fontconf = ret[optkey]
1135
+ if fontconf.kind_of?(Array)
1136
+ ret.delete(optkey)
1137
+ ret.delete('latin' << optkey)
1138
+ ret.delete('ascii' << optkey)
1139
+ ret.delete('kanji' << optkey)
1140
+ fnt = fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]]
1141
+ if TkFont.is_system_font?(fnt)
1142
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:default_value]] = TkNamedFont.new(fnt)
1143
+ end
1144
+ fontconf[__item_configinfo_struct(tagid(tagOrId))[:current_value]] = tagfontobj(tagid(tagOrId), optkey)
1145
+ ret[optkey] = fontconf
1146
+ end
1147
+ }
1148
+
1149
+ __item_methodcall_optkeys(tagid(tagOrId)).each{|optkey, method|
1150
+ ret[optkey.to_s] = ['', '', '', self.__send__(method, tagOrId)]
1151
+ }
1152
+
1153
+ ret
1154
+ end
1155
+ end
1156
+ end
1157
+ end
1158
+ private :__itemconfiginfo_core
1159
+
1160
+ def itemconfiginfo(tagOrId, slot = nil)
1161
+ if slot && TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
1162
+ begin
1163
+ __itemconfiginfo_core(tagOrId, slot)
1164
+ rescue => e
1165
+ begin
1166
+ __itemconfiginfo_core(tagOrId)
1167
+ # not tag error -> option is unknown
1168
+ Array.new(__item_configinfo_struct.values.max).unshift(slot.to_s)
1169
+ rescue
1170
+ fail e # tag error
1171
+ end
1172
+ end
1173
+ else
1174
+ __itemconfiginfo_core(tagOrId, slot)
1175
+ end
1176
+ end
1177
+
1178
+ def __current_itemconfiginfo(tagOrId, slot = nil)
1179
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
1180
+ if slot
1181
+ org_slot = slot
1182
+ begin
1183
+ conf = __itemconfiginfo_core(tagOrId, slot)
1184
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
1185
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
1186
+ return {conf[0] => conf[-1]}
1187
+ end
1188
+ slot = conf[__item_configinfo_struct(tagid(tagOrId))[:alias]]
1189
+ end while(org_slot != slot)
1190
+ fail RuntimeError,
1191
+ "there is a configure alias loop about '#{org_slot}'"
1192
+ else
1193
+ ret = {}
1194
+ __itemconfiginfo_core(tagOrId).each{|conf|
1195
+ if ( ! __item_configinfo_struct(tagid(tagOrId))[:alias] \
1196
+ || conf.size > __item_configinfo_struct(tagid(tagOrId))[:alias] + 1 )
1197
+ ret[conf[0]] = conf[-1]
1198
+ end
1199
+ }
1200
+
1201
+ ret
1202
+ end
1203
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
1204
+ ret = {}
1205
+ __itemconfiginfo_core(tagOrId, slot).each{|key, conf|
1206
+ ret[key] = conf[-1] if conf.kind_of?(Array)
1207
+ }
1208
+ ret
1209
+ end
1210
+ end
1211
+
1212
+ def current_itemconfiginfo(tagOrId, slot = nil)
1213
+ __current_itemconfiginfo(tagOrId, slot)
1214
+ end
1215
+ end