tk-win 0.2.0-x86-mingw32

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 (329) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +17 -0
  5. data/Rakefile +46 -0
  6. data/VERSION +1 -0
  7. data/lib/tcltk.rb +367 -0
  8. data/lib/tk.rb +5682 -0
  9. data/lib/tk/after.rb +6 -0
  10. data/lib/tk/autoload.rb +760 -0
  11. data/lib/tk/bgerror.rb +29 -0
  12. data/lib/tk/bindtag.rb +138 -0
  13. data/lib/tk/button.rb +31 -0
  14. data/lib/tk/canvas.rb +816 -0
  15. data/lib/tk/canvastag.rb +459 -0
  16. data/lib/tk/checkbutton.rb +32 -0
  17. data/lib/tk/clipboard.rb +75 -0
  18. data/lib/tk/clock.rb +71 -0
  19. data/lib/tk/composite.rb +484 -0
  20. data/lib/tk/console.rb +52 -0
  21. data/lib/tk/dialog.rb +326 -0
  22. data/lib/tk/encodedstr.rb +187 -0
  23. data/lib/tk/entry.rb +120 -0
  24. data/lib/tk/event.rb +562 -0
  25. data/lib/tk/font.rb +2351 -0
  26. data/lib/tk/frame.rb +132 -0
  27. data/lib/tk/grid.rb +279 -0
  28. data/lib/tk/image.rb +275 -0
  29. data/lib/tk/itemconfig.rb +1222 -0
  30. data/lib/tk/itemfont.rb +327 -0
  31. data/lib/tk/kinput.rb +71 -0
  32. data/lib/tk/label.rb +22 -0
  33. data/lib/tk/labelframe.rb +31 -0
  34. data/lib/tk/listbox.rb +284 -0
  35. data/lib/tk/macpkg.rb +80 -0
  36. data/lib/tk/menu.rb +718 -0
  37. data/lib/tk/menubar.rb +137 -0
  38. data/lib/tk/menuspec.rb +456 -0
  39. data/lib/tk/message.rb +24 -0
  40. data/lib/tk/mngfocus.rb +33 -0
  41. data/lib/tk/msgcat.rb +296 -0
  42. data/lib/tk/namespace.rb +551 -0
  43. data/lib/tk/optiondb.rb +377 -0
  44. data/lib/tk/optionobj.rb +212 -0
  45. data/lib/tk/pack.rb +107 -0
  46. data/lib/tk/package.rb +143 -0
  47. data/lib/tk/palette.rb +55 -0
  48. data/lib/tk/panedwindow.rb +260 -0
  49. data/lib/tk/place.rb +128 -0
  50. data/lib/tk/radiobutton.rb +73 -0
  51. data/lib/tk/root.rb +95 -0
  52. data/lib/tk/scale.rb +112 -0
  53. data/lib/tk/scrollable.rb +82 -0
  54. data/lib/tk/scrollbar.rb +183 -0
  55. data/lib/tk/scrollbox.rb +39 -0
  56. data/lib/tk/selection.rb +86 -0
  57. data/lib/tk/spinbox.rb +144 -0
  58. data/lib/tk/tagfont.rb +43 -0
  59. data/lib/tk/text.rb +1604 -0
  60. data/lib/tk/textimage.rb +88 -0
  61. data/lib/tk/textmark.rb +204 -0
  62. data/lib/tk/texttag.rb +321 -0
  63. data/lib/tk/textwindow.rb +154 -0
  64. data/lib/tk/timer.rb +669 -0
  65. data/lib/tk/toplevel.rb +264 -0
  66. data/lib/tk/ttk_selector.rb +98 -0
  67. data/lib/tk/txtwin_abst.rb +39 -0
  68. data/lib/tk/validation.rb +397 -0
  69. data/lib/tk/variable.rb +1799 -0
  70. data/lib/tk/virtevent.rb +139 -0
  71. data/lib/tk/winfo.rb +392 -0
  72. data/lib/tk/winpkg.rb +156 -0
  73. data/lib/tk/wm.rb +552 -0
  74. data/lib/tk/xim.rb +122 -0
  75. data/lib/tkafter.rb +4 -0
  76. data/lib/tkbgerror.rb +4 -0
  77. data/lib/tkcanvas.rb +4 -0
  78. data/lib/tkclass.rb +47 -0
  79. data/lib/tkconsole.rb +4 -0
  80. data/lib/tkdialog.rb +4 -0
  81. data/lib/tkentry.rb +4 -0
  82. data/lib/tkextlib/ICONS.rb +13 -0
  83. data/lib/tkextlib/ICONS/icons.rb +129 -0
  84. data/lib/tkextlib/ICONS/setup.rb +8 -0
  85. data/lib/tkextlib/SUPPORT_STATUS +198 -0
  86. data/lib/tkextlib/blt.rb +189 -0
  87. data/lib/tkextlib/blt/barchart.rb +79 -0
  88. data/lib/tkextlib/blt/bitmap.rb +112 -0
  89. data/lib/tkextlib/blt/busy.rb +83 -0
  90. data/lib/tkextlib/blt/component.rb +2218 -0
  91. data/lib/tkextlib/blt/container.rb +28 -0
  92. data/lib/tkextlib/blt/cutbuffer.rb +23 -0
  93. data/lib/tkextlib/blt/dragdrop.rb +269 -0
  94. data/lib/tkextlib/blt/eps.rb +32 -0
  95. data/lib/tkextlib/blt/graph.rb +67 -0
  96. data/lib/tkextlib/blt/htext.rb +112 -0
  97. data/lib/tkextlib/blt/setup.rb +8 -0
  98. data/lib/tkextlib/blt/spline.rb +23 -0
  99. data/lib/tkextlib/blt/stripchart.rb +74 -0
  100. data/lib/tkextlib/blt/table.rb +412 -0
  101. data/lib/tkextlib/blt/tabnotebook.rb +110 -0
  102. data/lib/tkextlib/blt/tabset.rb +504 -0
  103. data/lib/tkextlib/blt/ted.rb +68 -0
  104. data/lib/tkextlib/blt/tile.rb +25 -0
  105. data/lib/tkextlib/blt/tile/button.rb +16 -0
  106. data/lib/tkextlib/blt/tile/checkbutton.rb +17 -0
  107. data/lib/tkextlib/blt/tile/frame.rb +16 -0
  108. data/lib/tkextlib/blt/tile/label.rb +16 -0
  109. data/lib/tkextlib/blt/tile/radiobutton.rb +17 -0
  110. data/lib/tkextlib/blt/tile/scrollbar.rb +16 -0
  111. data/lib/tkextlib/blt/tile/toplevel.rb +16 -0
  112. data/lib/tkextlib/blt/tree.rb +1058 -0
  113. data/lib/tkextlib/blt/treeview.rb +1287 -0
  114. data/lib/tkextlib/blt/unix_dnd.rb +141 -0
  115. data/lib/tkextlib/blt/vector.rb +256 -0
  116. data/lib/tkextlib/blt/watch.rb +175 -0
  117. data/lib/tkextlib/blt/win_printer.rb +61 -0
  118. data/lib/tkextlib/blt/winop.rb +107 -0
  119. data/lib/tkextlib/bwidget.rb +153 -0
  120. data/lib/tkextlib/bwidget/arrowbutton.rb +21 -0
  121. data/lib/tkextlib/bwidget/bitmap.rb +21 -0
  122. data/lib/tkextlib/bwidget/button.rb +31 -0
  123. data/lib/tkextlib/bwidget/buttonbox.rb +90 -0
  124. data/lib/tkextlib/bwidget/combobox.rb +62 -0
  125. data/lib/tkextlib/bwidget/dialog.rb +194 -0
  126. data/lib/tkextlib/bwidget/dragsite.rb +31 -0
  127. data/lib/tkextlib/bwidget/dropsite.rb +39 -0
  128. data/lib/tkextlib/bwidget/dynamichelp.rb +63 -0
  129. data/lib/tkextlib/bwidget/entry.rb +43 -0
  130. data/lib/tkextlib/bwidget/label.rb +41 -0
  131. data/lib/tkextlib/bwidget/labelentry.rb +80 -0
  132. data/lib/tkextlib/bwidget/labelframe.rb +52 -0
  133. data/lib/tkextlib/bwidget/listbox.rb +361 -0
  134. data/lib/tkextlib/bwidget/mainframe.rb +132 -0
  135. data/lib/tkextlib/bwidget/messagedlg.rb +192 -0
  136. data/lib/tkextlib/bwidget/notebook.rb +166 -0
  137. data/lib/tkextlib/bwidget/pagesmanager.rb +73 -0
  138. data/lib/tkextlib/bwidget/panedwindow.rb +42 -0
  139. data/lib/tkextlib/bwidget/panelframe.rb +67 -0
  140. data/lib/tkextlib/bwidget/passwddlg.rb +44 -0
  141. data/lib/tkextlib/bwidget/progressbar.rb +20 -0
  142. data/lib/tkextlib/bwidget/progressdlg.rb +58 -0
  143. data/lib/tkextlib/bwidget/scrollableframe.rb +40 -0
  144. data/lib/tkextlib/bwidget/scrolledwindow.rb +48 -0
  145. data/lib/tkextlib/bwidget/scrollview.rb +25 -0
  146. data/lib/tkextlib/bwidget/selectcolor.rb +73 -0
  147. data/lib/tkextlib/bwidget/selectfont.rb +91 -0
  148. data/lib/tkextlib/bwidget/separator.rb +20 -0
  149. data/lib/tkextlib/bwidget/setup.rb +8 -0
  150. data/lib/tkextlib/bwidget/spinbox.rb +98 -0
  151. data/lib/tkextlib/bwidget/statusbar.rb +62 -0
  152. data/lib/tkextlib/bwidget/titleframe.rb +33 -0
  153. data/lib/tkextlib/bwidget/tree.rb +500 -0
  154. data/lib/tkextlib/bwidget/widget.rb +129 -0
  155. data/lib/tkextlib/itcl.rb +13 -0
  156. data/lib/tkextlib/itcl/incr_tcl.rb +178 -0
  157. data/lib/tkextlib/itcl/setup.rb +13 -0
  158. data/lib/tkextlib/itk.rb +13 -0
  159. data/lib/tkextlib/itk/incr_tk.rb +446 -0
  160. data/lib/tkextlib/itk/setup.rb +13 -0
  161. data/lib/tkextlib/iwidgets.rb +94 -0
  162. data/lib/tkextlib/iwidgets/buttonbox.rb +121 -0
  163. data/lib/tkextlib/iwidgets/calendar.rb +125 -0
  164. data/lib/tkextlib/iwidgets/canvasprintbox.rb +53 -0
  165. data/lib/tkextlib/iwidgets/canvasprintdialog.rb +38 -0
  166. data/lib/tkextlib/iwidgets/checkbox.rb +130 -0
  167. data/lib/tkextlib/iwidgets/combobox.rb +104 -0
  168. data/lib/tkextlib/iwidgets/dateentry.rb +20 -0
  169. data/lib/tkextlib/iwidgets/datefield.rb +58 -0
  170. data/lib/tkextlib/iwidgets/dialog.rb +20 -0
  171. data/lib/tkextlib/iwidgets/dialogshell.rb +121 -0
  172. data/lib/tkextlib/iwidgets/disjointlistbox.rb +50 -0
  173. data/lib/tkextlib/iwidgets/entryfield.rb +185 -0
  174. data/lib/tkextlib/iwidgets/extbutton.rb +40 -0
  175. data/lib/tkextlib/iwidgets/extfileselectionbox.rb +46 -0
  176. data/lib/tkextlib/iwidgets/extfileselectiondialog.rb +33 -0
  177. data/lib/tkextlib/iwidgets/feedback.rb +35 -0
  178. data/lib/tkextlib/iwidgets/fileselectionbox.rb +46 -0
  179. data/lib/tkextlib/iwidgets/fileselectiondialog.rb +33 -0
  180. data/lib/tkextlib/iwidgets/finddialog.rb +42 -0
  181. data/lib/tkextlib/iwidgets/hierarchy.rb +365 -0
  182. data/lib/tkextlib/iwidgets/hyperhelp.rb +50 -0
  183. data/lib/tkextlib/iwidgets/labeledframe.rb +39 -0
  184. data/lib/tkextlib/iwidgets/labeledwidget.rb +45 -0
  185. data/lib/tkextlib/iwidgets/mainwindow.rb +67 -0
  186. data/lib/tkextlib/iwidgets/menubar.rb +212 -0
  187. data/lib/tkextlib/iwidgets/messagebox.rb +93 -0
  188. data/lib/tkextlib/iwidgets/messagedialog.rb +20 -0
  189. data/lib/tkextlib/iwidgets/notebook.rb +175 -0
  190. data/lib/tkextlib/iwidgets/optionmenu.rb +92 -0
  191. data/lib/tkextlib/iwidgets/panedwindow.rb +134 -0
  192. data/lib/tkextlib/iwidgets/promptdialog.rb +131 -0
  193. data/lib/tkextlib/iwidgets/pushbutton.rb +35 -0
  194. data/lib/tkextlib/iwidgets/radiobox.rb +121 -0
  195. data/lib/tkextlib/iwidgets/scopedobject.rb +24 -0
  196. data/lib/tkextlib/iwidgets/scrolledcanvas.rb +353 -0
  197. data/lib/tkextlib/iwidgets/scrolledframe.rb +59 -0
  198. data/lib/tkextlib/iwidgets/scrolledhtml.rb +58 -0
  199. data/lib/tkextlib/iwidgets/scrolledlistbox.rb +207 -0
  200. data/lib/tkextlib/iwidgets/scrolledtext.rb +568 -0
  201. data/lib/tkextlib/iwidgets/scrolledwidget.rb +20 -0
  202. data/lib/tkextlib/iwidgets/selectionbox.rb +102 -0
  203. data/lib/tkextlib/iwidgets/selectiondialog.rb +92 -0
  204. data/lib/tkextlib/iwidgets/setup.rb +8 -0
  205. data/lib/tkextlib/iwidgets/shell.rb +38 -0
  206. data/lib/tkextlib/iwidgets/spindate.rb +48 -0
  207. data/lib/tkextlib/iwidgets/spinint.rb +30 -0
  208. data/lib/tkextlib/iwidgets/spinner.rb +169 -0
  209. data/lib/tkextlib/iwidgets/spintime.rb +48 -0
  210. data/lib/tkextlib/iwidgets/tabnotebook.rb +181 -0
  211. data/lib/tkextlib/iwidgets/tabset.rb +145 -0
  212. data/lib/tkextlib/iwidgets/timeentry.rb +25 -0
  213. data/lib/tkextlib/iwidgets/timefield.rb +58 -0
  214. data/lib/tkextlib/iwidgets/toolbar.rb +112 -0
  215. data/lib/tkextlib/iwidgets/watch.rb +56 -0
  216. data/lib/tkextlib/pkg_checker.rb +184 -0
  217. data/lib/tkextlib/setup.rb +8 -0
  218. data/lib/tkextlib/tcllib.rb +105 -0
  219. data/lib/tkextlib/tcllib/autoscroll.rb +158 -0
  220. data/lib/tkextlib/tcllib/ctext.rb +160 -0
  221. data/lib/tkextlib/tcllib/cursor.rb +97 -0
  222. data/lib/tkextlib/tcllib/datefield.rb +57 -0
  223. data/lib/tkextlib/tcllib/dialog.rb +84 -0
  224. data/lib/tkextlib/tcllib/getstring.rb +134 -0
  225. data/lib/tkextlib/tcllib/history.rb +73 -0
  226. data/lib/tkextlib/tcllib/ico.rb +146 -0
  227. data/lib/tkextlib/tcllib/ip_entry.rb +75 -0
  228. data/lib/tkextlib/tcllib/panelframe.rb +78 -0
  229. data/lib/tkextlib/tcllib/plotchart.rb +1404 -0
  230. data/lib/tkextlib/tcllib/ruler.rb +65 -0
  231. data/lib/tkextlib/tcllib/screenruler.rb +68 -0
  232. data/lib/tkextlib/tcllib/scrollwin.rb +61 -0
  233. data/lib/tkextlib/tcllib/setup.rb +8 -0
  234. data/lib/tkextlib/tcllib/style.rb +61 -0
  235. data/lib/tkextlib/tcllib/superframe.rb +51 -0
  236. data/lib/tkextlib/tcllib/swaplist.rb +150 -0
  237. data/lib/tkextlib/tcllib/tablelist.rb +28 -0
  238. data/lib/tkextlib/tcllib/tablelist_core.rb +1072 -0
  239. data/lib/tkextlib/tcllib/tablelist_tile.rb +43 -0
  240. data/lib/tkextlib/tcllib/tkpiechart.rb +314 -0
  241. data/lib/tkextlib/tcllib/tooltip.rb +104 -0
  242. data/lib/tkextlib/tcllib/widget.rb +82 -0
  243. data/lib/tkextlib/tclx.rb +13 -0
  244. data/lib/tkextlib/tclx/setup.rb +8 -0
  245. data/lib/tkextlib/tclx/tclx.rb +74 -0
  246. data/lib/tkextlib/tile.rb +449 -0
  247. data/lib/tkextlib/tile/dialog.rb +102 -0
  248. data/lib/tkextlib/tile/setup.rb +8 -0
  249. data/lib/tkextlib/tile/sizegrip.rb +32 -0
  250. data/lib/tkextlib/tile/style.rb +336 -0
  251. data/lib/tkextlib/tile/tbutton.rb +34 -0
  252. data/lib/tkextlib/tile/tcheckbutton.rb +38 -0
  253. data/lib/tkextlib/tile/tcombobox.rb +55 -0
  254. data/lib/tkextlib/tile/tentry.rb +49 -0
  255. data/lib/tkextlib/tile/tframe.rb +34 -0
  256. data/lib/tkextlib/tile/tlabel.rb +34 -0
  257. data/lib/tkextlib/tile/tlabelframe.rb +38 -0
  258. data/lib/tkextlib/tile/tmenubutton.rb +38 -0
  259. data/lib/tkextlib/tile/tnotebook.rb +147 -0
  260. data/lib/tkextlib/tile/tpaned.rb +245 -0
  261. data/lib/tkextlib/tile/tprogressbar.rb +57 -0
  262. data/lib/tkextlib/tile/tradiobutton.rb +38 -0
  263. data/lib/tkextlib/tile/treeview.rb +1306 -0
  264. data/lib/tkextlib/tile/tscale.rb +56 -0
  265. data/lib/tkextlib/tile/tscrollbar.rb +63 -0
  266. data/lib/tkextlib/tile/tseparator.rb +34 -0
  267. data/lib/tkextlib/tile/tsquare.rb +30 -0
  268. data/lib/tkextlib/tkDND.rb +18 -0
  269. data/lib/tkextlib/tkDND/setup.rb +8 -0
  270. data/lib/tkextlib/tkDND/shape.rb +125 -0
  271. data/lib/tkextlib/tkDND/tkdnd.rb +182 -0
  272. data/lib/tkextlib/tkHTML.rb +13 -0
  273. data/lib/tkextlib/tkHTML/htmlwidget.rb +453 -0
  274. data/lib/tkextlib/tkHTML/setup.rb +8 -0
  275. data/lib/tkextlib/tkimg.rb +36 -0
  276. data/lib/tkextlib/tkimg/bmp.rb +33 -0
  277. data/lib/tkextlib/tkimg/gif.rb +33 -0
  278. data/lib/tkextlib/tkimg/ico.rb +33 -0
  279. data/lib/tkextlib/tkimg/jpeg.rb +33 -0
  280. data/lib/tkextlib/tkimg/pcx.rb +33 -0
  281. data/lib/tkextlib/tkimg/pixmap.rb +44 -0
  282. data/lib/tkextlib/tkimg/png.rb +33 -0
  283. data/lib/tkextlib/tkimg/ppm.rb +33 -0
  284. data/lib/tkextlib/tkimg/ps.rb +33 -0
  285. data/lib/tkextlib/tkimg/setup.rb +8 -0
  286. data/lib/tkextlib/tkimg/sgi.rb +33 -0
  287. data/lib/tkextlib/tkimg/sun.rb +33 -0
  288. data/lib/tkextlib/tkimg/tga.rb +33 -0
  289. data/lib/tkextlib/tkimg/tiff.rb +33 -0
  290. data/lib/tkextlib/tkimg/window.rb +33 -0
  291. data/lib/tkextlib/tkimg/xbm.rb +33 -0
  292. data/lib/tkextlib/tkimg/xpm.rb +33 -0
  293. data/lib/tkextlib/tktable.rb +14 -0
  294. data/lib/tkextlib/tktable/setup.rb +8 -0
  295. data/lib/tkextlib/tktable/tktable.rb +966 -0
  296. data/lib/tkextlib/tktrans.rb +14 -0
  297. data/lib/tkextlib/tktrans/setup.rb +8 -0
  298. data/lib/tkextlib/tktrans/tktrans.rb +64 -0
  299. data/lib/tkextlib/treectrl.rb +13 -0
  300. data/lib/tkextlib/treectrl/setup.rb +8 -0
  301. data/lib/tkextlib/treectrl/tktreectrl.rb +2522 -0
  302. data/lib/tkextlib/trofs.rb +13 -0
  303. data/lib/tkextlib/trofs/setup.rb +8 -0
  304. data/lib/tkextlib/trofs/trofs.rb +51 -0
  305. data/lib/tkextlib/version.rb +6 -0
  306. data/lib/tkextlib/vu.rb +48 -0
  307. data/lib/tkextlib/vu/bargraph.rb +61 -0
  308. data/lib/tkextlib/vu/charts.rb +53 -0
  309. data/lib/tkextlib/vu/dial.rb +102 -0
  310. data/lib/tkextlib/vu/pie.rb +286 -0
  311. data/lib/tkextlib/vu/setup.rb +8 -0
  312. data/lib/tkextlib/vu/spinbox.rb +22 -0
  313. data/lib/tkextlib/winico.rb +14 -0
  314. data/lib/tkextlib/winico/setup.rb +8 -0
  315. data/lib/tkextlib/winico/winico.rb +224 -0
  316. data/lib/tkfont.rb +4 -0
  317. data/lib/tkmacpkg.rb +4 -0
  318. data/lib/tkmenubar.rb +4 -0
  319. data/lib/tkmngfocus.rb +4 -0
  320. data/lib/tkpalette.rb +4 -0
  321. data/lib/tkscrollbox.rb +4 -0
  322. data/lib/tktext.rb +4 -0
  323. data/lib/tkvirtevent.rb +4 -0
  324. data/lib/tkwinpkg.rb +4 -0
  325. data/spec/spec.opts +1 -0
  326. data/spec/spec_helper.rb +9 -0
  327. data/spec/tk-win_spec.rb +7 -0
  328. data/tk-win.gemspec +373 -0
  329. metadata +412 -0
@@ -0,0 +1,327 @@
1
+ #
2
+ # tk/itemfont.rb : control font of widget items
3
+ #
4
+ require 'tk'
5
+
6
+ module TkItemFontOptkeys
7
+ def __item_font_optkeys(id)
8
+ # maybe need to override
9
+ ['font']
10
+ end
11
+ private :__item_font_optkeys
12
+ end
13
+
14
+ module TkTreatItemFont
15
+ include TkItemFontOptkeys
16
+
17
+ def __item_pathname(id)
18
+ # maybe need to override
19
+ [self.path, id].join(';')
20
+ end
21
+ private :__item_pathname
22
+
23
+ ################################################
24
+
25
+ def tagfont_configinfo(tagOrId, key = nil)
26
+ optkeys = __item_font_optkeys(tagid(tagOrId))
27
+ if key && !optkeys.find{|opt| opt.to_s == key.to_s}
28
+ fail ArgumentError, "unknown font option name `#{key}'"
29
+ end
30
+
31
+ win, tag = __item_pathname(tagid(tagOrId)).split(';')
32
+
33
+ if key
34
+ pathname = [win, tag, key].join(';')
35
+ TkFont.used_on(pathname) ||
36
+ TkFont.init_widget_font(pathname,
37
+ *(__item_confinfo_cmd(tagid(tagOrId))))
38
+ elsif optkeys.size == 1
39
+ pathname = [win, tag, optkeys[0]].join(';')
40
+ TkFont.used_on(pathname) ||
41
+ TkFont.init_widget_font(pathname,
42
+ *(__item_confinfo_cmd(tagid(tagOrId))))
43
+ else
44
+ fonts = {}
45
+ optkeys.each{|key|
46
+ key = key.to_s
47
+ pathname = [win, tag, key].join(';')
48
+ fonts[key] =
49
+ TkFont.used_on(pathname) ||
50
+ TkFont.init_widget_font(pathname,
51
+ *(__item_confinfo_cmd(tagid(tagOrId))))
52
+ }
53
+ fonts
54
+ end
55
+ end
56
+ alias tagfontobj tagfont_configinfo
57
+
58
+ def tagfont_configure(tagOrId, slot)
59
+ pathname = __item_pathname(tagid(tagOrId))
60
+
61
+ slot = _symbolkey2str(slot)
62
+
63
+ __item_font_optkeys(tagid(tagOrId)).each{|optkey|
64
+ optkey = optkey.to_s
65
+ l_optkey = 'latin' << optkey
66
+ a_optkey = 'ascii' << optkey
67
+ k_optkey = 'kanji' << optkey
68
+
69
+ if slot.key?(optkey)
70
+ fnt = slot.delete(optkey)
71
+ if fnt.kind_of?(TkFont)
72
+ slot.delete(l_optkey)
73
+ slot.delete(a_optkey)
74
+ slot.delete(k_optkey)
75
+
76
+ fnt.call_font_configure([pathname, optkey],
77
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
78
+ next
79
+ else
80
+ if fnt
81
+ if (slot.key?(l_optkey) ||
82
+ slot.key?(a_optkey) ||
83
+ slot.key?(k_optkey))
84
+ fnt = TkFont.new(fnt)
85
+
86
+ lfnt = slot.delete(l_optkey)
87
+ lfnt = slot.delete(a_optkey) if slot.key?(a_optkey)
88
+ kfnt = slot.delete(k_optkey)
89
+
90
+ fnt.latin_replace(lfnt) if lfnt
91
+ fnt.kanji_replace(kfnt) if kfnt
92
+
93
+ fnt.call_font_configure([pathname, optkey],
94
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
95
+ next
96
+ else
97
+ fnt = hash_kv(fnt) if fnt.kind_of?(Hash)
98
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
99
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{optkey}" << fnt))
100
+ else
101
+ begin
102
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{optkey}" << fnt))
103
+ rescue => e
104
+ # ignore
105
+ end
106
+ end
107
+ end
108
+ end
109
+ next
110
+ end
111
+ end
112
+
113
+ lfnt = slot.delete(l_optkey)
114
+ lfnt = slot.delete(a_optkey) if slot.key?(a_optkey)
115
+ kfnt = slot.delete(k_optkey)
116
+
117
+ if lfnt && kfnt
118
+ TkFont.new(lfnt, kfnt).call_font_configure([pathname, optkey],
119
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
120
+ elsif lfnt
121
+ latintagfont_configure([lfnt, optkey])
122
+ elsif kfnt
123
+ kanjitagfont_configure([kfnt, optkey])
124
+ end
125
+ }
126
+
127
+ # configure other (without font) options
128
+ tk_call(*(__item_config_cmd(tagid(tagOrId)).concat(hash_kv(slot)))) if slot != {}
129
+ self
130
+ end
131
+
132
+ def latintagfont_configure(tagOrId, ltn, keys=nil)
133
+ if ltn.kind_of?(Array)
134
+ key = ltn[1]
135
+ ltn = ltn[0]
136
+ else
137
+ key = nil
138
+ end
139
+
140
+ optkeys = __item_font_optkeys(tagid(tagOrId))
141
+ if key && !optkeys.find{|opt| opt.to_s == key.to_s}
142
+ fail ArgumentError, "unknown font option name `#{key}'"
143
+ end
144
+
145
+ win, tag = __item_pathname(tagid(tagOrId)).split(';')
146
+
147
+ optkeys = [key] if key
148
+
149
+ optkeys.each{|optkey|
150
+ optkey = optkey.to_s
151
+
152
+ pathname = [win, tag, optkey].join(';')
153
+
154
+ if (fobj = TkFont.used_on(pathname))
155
+ fobj = TkFont.new(fobj) # create a new TkFont object
156
+ elsif Tk::JAPANIZED_TK
157
+ fobj = fontobj # create a new TkFont object
158
+ else
159
+ ltn = hash_kv(ltn) if ltn.kind_of?(Hash)
160
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
161
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{optkey}" << ltn))
162
+ else
163
+ begin
164
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{optkey}" << ltn))
165
+ rescue => e
166
+ # ignore
167
+ end
168
+ end
169
+ next
170
+ end
171
+
172
+ if fobj.kind_of?(TkFont)
173
+ if ltn.kind_of?(TkFont)
174
+ conf = {}
175
+ ltn.latin_configinfo.each{|key,val| conf[key] = val}
176
+ if keys
177
+ fobj.latin_configure(conf.update(keys))
178
+ else
179
+ fobj.latin_configure(conf)
180
+ end
181
+ else
182
+ fobj.latin_replace(ltn)
183
+ end
184
+ end
185
+
186
+ fobj.call_font_configure([pathname, optkey], *(__item_config_cmd(tagid(tagOrId)) << {}))
187
+ }
188
+ self
189
+ end
190
+ alias asciitagfont_configure latintagfont_configure
191
+
192
+ def kanjitagfont_configure(tagOrId, knj, keys=nil)
193
+ if knj.kind_of?(Array)
194
+ key = knj[1]
195
+ knj = knj[0]
196
+ else
197
+ key = nil
198
+ end
199
+
200
+ optkeys = __item_font_optkeys(tagid(tagOrId))
201
+ if key && !optkeys.find{|opt| opt.to_s == key.to_s}
202
+ fail ArgumentError, "unknown font option name `#{key}'"
203
+ end
204
+
205
+ win, tag = __item_pathname(tagid(tagOrId)).split(';')
206
+
207
+ optkeys = [key] if key
208
+
209
+ optkeys.each{|optkey|
210
+ optkey = optkey.to_s
211
+
212
+ pathname = [win, tag, optkey].join(';')
213
+
214
+ if (fobj = TkFont.used_on(pathname))
215
+ fobj = TkFont.new(fobj) # create a new TkFont object
216
+ elsif Tk::JAPANIZED_TK
217
+ fobj = fontobj # create a new TkFont object
218
+ else
219
+ knj = hash_kv(knj) if knj.kind_of?(Hash)
220
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
221
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{optkey}" << knj))
222
+ else
223
+ begin
224
+ tk_call(*(__item_config_cmd(tagid(tagOrId)) << "-#{optkey}" << knj))
225
+ rescue => e
226
+ # ignore
227
+ end
228
+ end
229
+ next
230
+ end
231
+
232
+ if fobj.kind_of?(TkFont)
233
+ if knj.kind_of?(TkFont)
234
+ conf = {}
235
+ knj.kanji_configinfo.each{|key,val| conf[key] = val}
236
+ if keys
237
+ fobj.kanji_configure(conf.update(keys))
238
+ else
239
+ fobj.kanji_configure(conf)
240
+ end
241
+ else
242
+ fobj.kanji_replace(knj)
243
+ end
244
+ end
245
+
246
+ fobj.call_font_configure([pathname, optkey], *(__item_config_cmd(tagid(tagOrId)) << {}))
247
+ }
248
+ self
249
+ end
250
+
251
+ def tagfont_copy(tagOrId, win, wintag=nil, winkey=nil, targetkey=nil)
252
+ if wintag
253
+ if winkey
254
+ fnt = win.tagfontobj(wintag, winkey).dup
255
+ else
256
+ fnt = win.tagfontobj(wintag).dup
257
+ end
258
+ else
259
+ if winkey
260
+ fnt = win.fontobj(winkey).dup
261
+ else
262
+ fnt = win.fontobj.dup
263
+ end
264
+ end
265
+
266
+ if targetkey
267
+ fnt.call_font_configure([__item_pathname(tagid(tagOrId)), targetkey],
268
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
269
+ else
270
+ fnt.call_font_configure(__item_pathname(tagid(tagOrId)),
271
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
272
+ end
273
+ self
274
+ end
275
+
276
+
277
+ def latintagfont_copy(tagOrId, win, wintag=nil, winkey=nil, targetkey=nil)
278
+ if targetkey
279
+ fontobj(targetkey).dup.call_font_configure([__item_pathname(tagid(tagOrId)), targetkey],
280
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
281
+ else
282
+ fontobj.dup.call_font_configure(__item_pathname(tagid(tagOrId)),
283
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
284
+ end
285
+
286
+ if wintag
287
+ if winkey
288
+ fontobj.latin_replace(win.tagfontobj(wintag, winkey).latin_font_id)
289
+ else
290
+ fontobj.latin_replace(win.tagfontobj(wintag).latin_font_id)
291
+ end
292
+ else
293
+ if winkey
294
+ fontobj.latin_replace(win.fontobj(winkey).latin_font_id)
295
+ else
296
+ fontobj.latin_replace(win.fontobj.latin_font_id)
297
+ end
298
+ end
299
+ self
300
+ end
301
+ alias asciitagfont_copy latintagfont_copy
302
+
303
+ def kanjifont_copy(tagOrId, win, wintag=nil, winkey=nil, targetkey=nil)
304
+ if targetkey
305
+ fontobj(targetkey).dup.call_font_configure([__item_pathname(tagid(tagOrId)), targetkey],
306
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
307
+ else
308
+ fontobj.dup.call_font_configure(__item_pathname(tagid(tagOrId)),
309
+ *(__item_config_cmd(tagid(tagOrId)) << {}))
310
+ end
311
+
312
+ if wintag
313
+ if winkey
314
+ fontobj.kanji_replace(win.tagfontobj(wintag, winkey).kanji_font_id)
315
+ else
316
+ fontobj.kanji_replace(win.tagfontobj(wintag).kanji_font_id)
317
+ end
318
+ else
319
+ if winkey
320
+ fontobj.kanji_replace(win.fontobj(winkey).kanji_font_id)
321
+ else
322
+ fontobj.kanji_replace(win.fontobj.kanji_font_id)
323
+ end
324
+ end
325
+ self
326
+ end
327
+ end
@@ -0,0 +1,71 @@
1
+ #
2
+ # tk/kinput.rb : control kinput
3
+ #
4
+ require 'tk'
5
+
6
+ module TkKinput
7
+ include Tk
8
+ extend Tk
9
+
10
+ TkCommandNames = [
11
+ 'kinput_start'.freeze,
12
+ 'kinput_send_spot'.freeze,
13
+ 'kanjiInput'.freeze
14
+ ].freeze
15
+
16
+ def TkKinput.start(win, style=None)
17
+ tk_call('kinput_start', win, style)
18
+ end
19
+ def kinput_start(style=None)
20
+ TkKinput.start(self, style)
21
+ end
22
+
23
+ def TkKinput.send_spot(win)
24
+ tk_call('kinput_send_spot', win)
25
+ end
26
+ def kinput_send_spot
27
+ TkKinput.send_spot(self)
28
+ end
29
+
30
+ def TkKinput.input_start(win, keys=nil)
31
+ tk_call('kanjiInput', 'start', win, *hash_kv(keys))
32
+ end
33
+ def kanji_input_start(keys=nil)
34
+ TkKinput.input_start(self, keys)
35
+ end
36
+
37
+ def TkKinput.attribute_config(win, slot, value=None)
38
+ if slot.kind_of? Hash
39
+ tk_call('kanjiInput', 'attribute', win, *hash_kv(slot))
40
+ else
41
+ tk_call('kanjiInput', 'attribute', win, "-#{slot}", value)
42
+ end
43
+ end
44
+ def kinput_attribute_config(slot, value=None)
45
+ TkKinput.attribute_config(self, slot, value)
46
+ end
47
+
48
+ def TkKinput.attribute_info(win, slot=nil)
49
+ if slot
50
+ conf = tk_split_list(tk_call('kanjiInput', 'attribute',
51
+ win, "-#{slot}"))
52
+ conf[0] = conf[0][1..-1]
53
+ conf
54
+ else
55
+ tk_split_list(tk_call('kanjiInput', 'attribute', win)).collect{|conf|
56
+ conf[0] = conf[0][1..-1]
57
+ conf
58
+ }
59
+ end
60
+ end
61
+ def kinput_attribute_info(slot=nil)
62
+ TkKinput.attribute_info(self, slot)
63
+ end
64
+
65
+ def TkKinput.input_end(win)
66
+ tk_call('kanjiInput', 'end', win)
67
+ end
68
+ def kanji_input_end
69
+ TkKinput.input_end(self)
70
+ end
71
+ end
@@ -0,0 +1,22 @@
1
+ #
2
+ # tk/label.rb : treat label widget
3
+ #
4
+ require 'tk'
5
+
6
+ class Tk::Label<TkWindow
7
+ TkCommandNames = ['label'.freeze].freeze
8
+ WidgetClassName = 'Label'.freeze
9
+ WidgetClassNames[WidgetClassName] ||= self
10
+ #def create_self(keys)
11
+ # if keys and keys != None
12
+ # tk_call_without_enc('label', @path, *hash_kv(keys, true))
13
+ # else
14
+ # tk_call_without_enc('label', @path)
15
+ # end
16
+ #end
17
+ #private :create_self
18
+ end
19
+
20
+ #TkLabel = Tk::Label unless Object.const_defined? :TkLabel
21
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::Label, :TkLabel)
22
+ Tk.__set_loaded_toplevel_aliases__('tk/label.rb', :Tk, Tk::Label, :TkLabel)
@@ -0,0 +1,31 @@
1
+ #
2
+ # tk/labelframe.rb : treat labelframe widget
3
+ #
4
+ require 'tk'
5
+ require 'tk/frame'
6
+
7
+ class Tk::LabelFrame<Tk::Frame
8
+ TkCommandNames = ['labelframe'.freeze].freeze
9
+ WidgetClassName = 'Labelframe'.freeze
10
+ WidgetClassNames[WidgetClassName] ||= self
11
+ #def create_self(keys)
12
+ # if keys and keys != None
13
+ # tk_call_without_enc('labelframe', @path, *hash_kv(keys, true))
14
+ # else
15
+ # tk_call_without_enc('labelframe', @path)
16
+ # end
17
+ #end
18
+ #private :create_self
19
+
20
+ def __val2ruby_optkeys # { key=>proc, ... }
21
+ super().update('labelwidget'=>proc{|v| window(v)})
22
+ end
23
+ private :__val2ruby_optkeys
24
+ end
25
+
26
+ Tk::Labelframe = Tk::LabelFrame
27
+ #TkLabelFrame = Tk::LabelFrame unless Object.const_defined? :TkLabelFrame
28
+ #TkLabelframe = Tk::Labelframe unless Object.const_defined? :TkLabelframe
29
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::LabelFrame, :TkLabelFrame, :TkLabelframe)
30
+ Tk.__set_loaded_toplevel_aliases__('tk/labelframe.rb', :Tk, Tk::LabelFrame,
31
+ :TkLabelFrame, :TkLabelframe)