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,156 @@
1
+ #
2
+ # tk/winpkg.rb : methods for Tcl/Tk packages for Microsoft Windows
3
+ # 2000/11/22 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
4
+ #
5
+ # ATTENTION !!
6
+ # This is NOT TESTED. Because I have no test-environment.
7
+ #
8
+ require 'tk'
9
+
10
+ module Tk::WinDDE
11
+ end
12
+ #TkWinDDE = Tk::WinDDE
13
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::WinDDE, :TkWinDDE)
14
+ Tk.__set_loaded_toplevel_aliases__('tk/winpkg.rb', :Tk, Tk::WinDDE, :TkWinDDE)
15
+
16
+ module Tk::WinDDE
17
+ extend Tk
18
+ extend Tk::WinDDE
19
+
20
+ TkCommandNames = ['dde'.freeze].freeze
21
+
22
+ PACKAGE_NAME = 'dde'.freeze
23
+ def self.package_name
24
+ PACKAGE_NAME
25
+ end
26
+
27
+ if self.const_defined? :FORCE_VERSION
28
+ tk_call_without_enc('package', 'require', 'dde', FORCE_VERSION)
29
+ else
30
+ tk_call_without_enc('package', 'require', 'dde')
31
+ end
32
+
33
+ #def servername(topic=None)
34
+ # tk_call('dde', 'servername', topic)
35
+ #end
36
+ def servername(*args)
37
+ if args.size == 0
38
+ tk_call('dde', 'servername')
39
+ else
40
+ if args[-1].kind_of?(Hash) # dde 1.2 +
41
+ keys = _symbolkey2str(args.pop)
42
+ force = (keys.delete('force'))? '-force': None
43
+ exact = (keys.delete('exact'))? '-exact': None
44
+ if keys.size == 0
45
+ tk_call('dde', 'servername', force, exact)
46
+ elsif args.size == 0
47
+ tk_call('dde', 'servername', force, exact, *hash_kv(keys))
48
+ else
49
+ tk_call('dde', 'servername', force, exact,
50
+ *((hash_kv(keys) << '--') + args))
51
+ end
52
+ else
53
+ tk_call('dde', 'servername', *args)
54
+ end
55
+ end
56
+ end
57
+
58
+ def execute(service, topic, data)
59
+ tk_call('dde', 'execute', service, topic, data)
60
+ end
61
+
62
+ def async_execute(service, topic, data)
63
+ tk_call('dde', '-async', 'execute', service, topic, data)
64
+ end
65
+
66
+ def poke(service, topic, item, data)
67
+ tk_call('dde', 'poke', service, topic, item, data)
68
+ end
69
+
70
+ def request(service, topic, item)
71
+ tk_call('dde', 'request', service, topic, item)
72
+ end
73
+
74
+ def binary_request(service, topic, item)
75
+ tk_call('dde', 'request', '-binary', service, topic, item)
76
+ end
77
+
78
+ def services(service, topic)
79
+ tk_call('dde', 'services', service, topic)
80
+ end
81
+
82
+ def eval(topic, cmd, *args)
83
+ tk_call('dde', 'eval', topic, cmd, *args)
84
+ end
85
+
86
+ def async_eval(topic, cmd, *args)
87
+ tk_call('dde', 'eval', -async, topic, cmd, *args)
88
+ end
89
+
90
+ module_function :servername, :execute, :async_execute,
91
+ :poke, :request, :services, :eval
92
+ end
93
+
94
+ module Tk::WinRegistry
95
+ end
96
+ #TkWinRegistry = Tk::WinRegistry
97
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::WinRegistry, :TkWinRegistry)
98
+ Tk.__set_loaded_toplevel_aliases__('tk/winpkg.rb', :Tk, Tk::WinRegistry,
99
+ :TkWinRegistry)
100
+
101
+ module Tk::WinRegistry
102
+ extend Tk
103
+ extend Tk::WinRegistry
104
+
105
+ TkCommandNames = ['registry'.freeze].freeze
106
+
107
+ if self.const_defined? :FORCE_VERSION
108
+ tk_call('package', 'require', 'registry', FORCE_VERSION)
109
+ else
110
+ tk_call('package', 'require', 'registry')
111
+ end
112
+
113
+ def broadcast(keynam, timeout=nil)
114
+ if timeout
115
+ tk_call('registry', 'broadcast', keynam, '-timeout', timeout)
116
+ else
117
+ tk_call('registry', 'broadcast', keynam)
118
+ end
119
+ end
120
+
121
+ def delete(keynam, valnam=None)
122
+ tk_call('registry', 'delete', keynam, valnam)
123
+ end
124
+
125
+ def get(keynam, valnam)
126
+ tk_call('registry', 'get', keynam, valnam)
127
+ end
128
+
129
+ def keys(keynam, pattern=nil)
130
+ lst = tk_split_simplelist(tk_call('registry', 'keys', keynam))
131
+ if pattern
132
+ lst.find_all{|key| key =~ pattern}
133
+ else
134
+ lst
135
+ end
136
+ end
137
+
138
+ def set(keynam, valnam=None, data=None, dattype=None)
139
+ tk_call('registry', 'set', keynam, valnam, data, dattype)
140
+ end
141
+
142
+ def type(keynam, valnam)
143
+ tk_call('registry', 'type', keynam, valnam)
144
+ end
145
+
146
+ def values(keynam, pattern=nil)
147
+ lst = tk_split_simplelist(tk_call('registry', 'values', keynam))
148
+ if pattern
149
+ lst.find_all{|val| val =~ pattern}
150
+ else
151
+ lst
152
+ end
153
+ end
154
+
155
+ module_function :delete, :get, :keys, :set, :type, :values
156
+ end
@@ -0,0 +1,552 @@
1
+ #
2
+ # tk/wm.rb : methods for wm command
3
+ #
4
+ require 'tk'
5
+
6
+ module Tk
7
+ module Wm
8
+ #include TkComm
9
+ extend TkCore
10
+
11
+ TkCommandNames = ['wm'.freeze].freeze
12
+
13
+ TOPLEVEL_METHODCALL_OPTKEYS = {}
14
+
15
+ def Wm.aspect(win, *args)
16
+ if args.length == 0
17
+ list(tk_call_without_enc('wm', 'aspect', win.epath))
18
+ else
19
+ args = args[0] if args.length == 1 && args[0].kind_of?(Array)
20
+ tk_call('wm', 'aspect', win.epath, *args)
21
+ win
22
+ end
23
+ end
24
+ def aspect(*args)
25
+ Wm.aspect(self, *args)
26
+ end
27
+ alias wm_aspect aspect
28
+ TOPLEVEL_METHODCALL_OPTKEYS['aspect'] = 'aspect'
29
+
30
+ def Wm.attributes(win, slot=nil,value=TkComm::None)
31
+ if slot == nil
32
+ lst = tk_split_list(tk_call('wm', 'attributes', win.epath))
33
+ info = {}
34
+ while key = lst.shift
35
+ info[key[1..-1]] = lst.shift
36
+ end
37
+ info
38
+ elsif slot.kind_of? Hash
39
+ tk_call('wm', 'attributes', win.epath, *hash_kv(slot))
40
+ win
41
+ elsif value == TkComm::None
42
+ tk_call('wm', 'attributes', win.epath, "-#{slot}")
43
+ else
44
+ tk_call('wm', 'attributes', win.epath, "-#{slot}", value)
45
+ win
46
+ end
47
+ end
48
+ def attributes(slot=nil,value=TkComm::None)
49
+ Wm.attributes(self, slot, value)
50
+ end
51
+ alias wm_attributes attributes
52
+ TOPLEVEL_METHODCALL_OPTKEYS['attributes'] = 'attributes'
53
+
54
+ def Wm.client(win, name=TkComm::None)
55
+ if name == TkComm::None
56
+ tk_call('wm', 'client', win.epath)
57
+ else
58
+ name = '' if name == nil
59
+ tk_call('wm', 'client', win.epath, name)
60
+ win
61
+ end
62
+ end
63
+ def client(name=TkComm::None)
64
+ Wm.client(self, name)
65
+ end
66
+ alias wm_client client
67
+ TOPLEVEL_METHODCALL_OPTKEYS['client'] = 'client'
68
+
69
+ def Wm.colormapwindows(win, *args)
70
+ if args.size == 0
71
+ list(tk_call_without_enc('wm', 'colormapwindows', win.epath))
72
+ else
73
+ args = args[0] if args.length == 1 && args[0].kind_of?(Array)
74
+ tk_call_without_enc('wm', 'colormapwindows', win.epath, *args)
75
+ win
76
+ end
77
+ end
78
+ def colormapwindows(*args)
79
+ Wm.colormapwindows(self, *args)
80
+ end
81
+ alias wm_colormapwindows colormapwindows
82
+ TOPLEVEL_METHODCALL_OPTKEYS['colormapwindows'] = 'colormapwindows'
83
+
84
+ def Wm.command(win, value=nil)
85
+ if value
86
+ tk_call('wm', 'command', epath, value)
87
+ win
88
+ else
89
+ #procedure(tk_call('wm', 'command', epath))
90
+ tk_call('wm', 'command', epath)
91
+ end
92
+ end
93
+ def wm_command(value=nil)
94
+ Wm.command(self, value)
95
+ end
96
+ TOPLEVEL_METHODCALL_OPTKEYS['wm_command'] = 'wm_command'
97
+
98
+ def Wm.deiconify(win, ex = true)
99
+ if ex
100
+ tk_call_without_enc('wm', 'deiconify', win.epath)
101
+ else
102
+ Wm.iconify(win)
103
+ end
104
+ win
105
+ end
106
+ def deiconify(ex = true)
107
+ Wm.deiconify(self, ex)
108
+ end
109
+ alias wm_deiconify deiconify
110
+
111
+ def Wm.focusmodel(win, mode = nil)
112
+ if mode
113
+ tk_call_without_enc('wm', 'focusmodel', win.epath, mode)
114
+ win
115
+ else
116
+ tk_call_without_enc('wm', 'focusmodel', win.epath)
117
+ end
118
+ end
119
+ def focusmodel(mode = nil)
120
+ Wm.focusmodel(self, mode)
121
+ end
122
+ alias wm_focusmodel focusmodel
123
+ TOPLEVEL_METHODCALL_OPTKEYS['focusmodel'] = 'focusmodel'
124
+
125
+ def Wm.forget(win)
126
+ # Tcl/Tk 8.5+
127
+ # work with dockable frames
128
+ tk_call_without_enc('wm', 'forget', win.epath)
129
+ win
130
+ end
131
+ def wm_forget
132
+ Wm.forget(self)
133
+ end
134
+
135
+ def Wm.frame(win)
136
+ tk_call_without_enc('wm', 'frame', win.epath)
137
+ end
138
+ def frame
139
+ Wm.frame(self)
140
+ end
141
+ alias wm_frame frame
142
+
143
+ def Wm.geometry(win, geom=nil)
144
+ if geom
145
+ tk_call_without_enc('wm', 'geometry', win.epath, geom)
146
+ win
147
+ else
148
+ tk_call_without_enc('wm', 'geometry', win.epath)
149
+ end
150
+ end
151
+ def geometry(geom=nil)
152
+ Wm.geometry(self, geom)
153
+ end
154
+ alias wm_geometry geometry
155
+ TOPLEVEL_METHODCALL_OPTKEYS['geometry'] = 'geometry'
156
+
157
+ def Wm.grid(win, *args)
158
+ if args.size == 0
159
+ list(tk_call_without_enc('wm', 'grid', win.epath))
160
+ else
161
+ args = args[0] if args.length == 1 && args[0].kind_of?(Array)
162
+ tk_call_without_enc('wm', 'grid', win.epath, *args)
163
+ win
164
+ end
165
+ end
166
+ def wm_grid(*args)
167
+ Wm.grid(self, *args)
168
+ end
169
+ TOPLEVEL_METHODCALL_OPTKEYS['wm_grid'] = 'wm_grid'
170
+
171
+ def Wm.group(win, leader = nil)
172
+ if leader
173
+ tk_call('wm', 'group', win.epath, leader)
174
+ win
175
+ else
176
+ window(tk_call('wm', 'group', win.epath))
177
+ end
178
+ end
179
+ def group(leader = nil)
180
+ Wm.group(self, leader)
181
+ end
182
+ alias wm_group group
183
+ TOPLEVEL_METHODCALL_OPTKEYS['group'] = 'group'
184
+
185
+ def Wm.iconbitmap(win, bmp=nil)
186
+ if bmp
187
+ tk_call_without_enc('wm', 'iconbitmap', win.epath, bmp)
188
+ win
189
+ else
190
+ image_obj(tk_call_without_enc('wm', 'iconbitmap', win.epath))
191
+ end
192
+ end
193
+ def iconbitmap(bmp=nil)
194
+ Wm.iconbitmap(self, bmp)
195
+ end
196
+ alias wm_iconbitmap iconbitmap
197
+ TOPLEVEL_METHODCALL_OPTKEYS['iconbitmap'] = 'iconbitmap'
198
+
199
+ def Wm.iconphoto(win, *imgs)
200
+ if imgs.empty?
201
+ win.instance_eval{
202
+ @wm_iconphoto = nil unless defined? @wm_iconphoto
203
+ return @wm_iconphoto
204
+ }
205
+ end
206
+
207
+ imgs = imgs[0] if imgs.length == 1 && imgs[0].kind_of?(Array)
208
+ tk_call_without_enc('wm', 'iconphoto', win.epath, *imgs)
209
+ win.instance_eval{ @wm_iconphoto = imgs }
210
+ win
211
+ end
212
+ def iconphoto(*imgs)
213
+ Wm.iconphoto(self, *imgs)
214
+ end
215
+ alias wm_iconphoto iconphoto
216
+ TOPLEVEL_METHODCALL_OPTKEYS['iconphoto'] = 'iconphoto'
217
+
218
+ def Wm.iconphoto_default(win, *imgs)
219
+ imgs = imgs[0] if imgs.length == 1 && imgs[0].kind_of?(Array)
220
+ tk_call_without_enc('wm', 'iconphoto', win.epath, '-default', *imgs)
221
+ win
222
+ end
223
+ def iconphoto_default(*imgs)
224
+ Wm.iconphoto_default(self, *imgs)
225
+ end
226
+ alias wm_iconphoto_default iconphoto_default
227
+
228
+ def Wm.iconify(win, ex = true)
229
+ if ex
230
+ tk_call_without_enc('wm', 'iconify', win.epath)
231
+ else
232
+ Wm.deiconify(win)
233
+ end
234
+ win
235
+ end
236
+ def iconify(ex = true)
237
+ Wm.iconify(self, ex)
238
+ end
239
+ alias wm_iconify iconify
240
+
241
+ def Wm.iconmask(win, bmp=nil)
242
+ if bmp
243
+ tk_call_without_enc('wm', 'iconmask', win.epath, bmp)
244
+ win
245
+ else
246
+ image_obj(tk_call_without_enc('wm', 'iconmask', win.epath))
247
+ end
248
+ end
249
+ def iconmask(bmp=nil)
250
+ Wm.iconmask(self, bmp)
251
+ end
252
+ alias wm_iconmask iconmask
253
+ TOPLEVEL_METHODCALL_OPTKEYS['iconmask'] = 'iconmask'
254
+
255
+ def Wm.iconname(win, name=nil)
256
+ if name
257
+ tk_call('wm', 'iconname', win.epath, name)
258
+ win
259
+ else
260
+ tk_call('wm', 'iconname', win.epath)
261
+ end
262
+ end
263
+ def iconname(name=nil)
264
+ Wm.iconname(self, name)
265
+ end
266
+ alias wm_iconname iconname
267
+ TOPLEVEL_METHODCALL_OPTKEYS['iconname'] = 'iconname'
268
+
269
+ def Wm.iconposition(win, *args)
270
+ if args.size == 0
271
+ list(tk_call_without_enc('wm', 'iconposition', win.epath))
272
+ else
273
+ args = args[0] if args.length == 1 && args[0].kind_of?(Array)
274
+ tk_call_without_enc('wm', 'iconposition', win.epath, *args)
275
+ win
276
+ end
277
+ end
278
+ def iconposition(*args)
279
+ Wm.iconposition(self, *args)
280
+ end
281
+ alias wm_iconposition iconposition
282
+ TOPLEVEL_METHODCALL_OPTKEYS['iconposition'] = 'iconposition'
283
+
284
+ def Wm.iconwindow(win, iconwin = nil)
285
+ if iconwin
286
+ tk_call_without_enc('wm', 'iconwindow', win.epath, iconwin)
287
+ win
288
+ else
289
+ w = tk_call_without_enc('wm', 'iconwindow', win.epath)
290
+ (w == '')? nil: window(w)
291
+ end
292
+ end
293
+ def iconwindow(iconwin = nil)
294
+ Wm.iconwindow(self, iconwin)
295
+ end
296
+ alias wm_iconwindow iconwindow
297
+ TOPLEVEL_METHODCALL_OPTKEYS['iconwindow'] = 'iconwindow'
298
+
299
+ def Wm.manage(win)
300
+ # Tcl/Tk 8.5+ feature
301
+ tk_call_without_enc('wm', 'manage', win.epath)
302
+ win
303
+ end
304
+ def wm_manage
305
+ Wm.manage(self)
306
+ end
307
+ =begin
308
+ def Wm.manage(win, use_id = nil)
309
+ # Tcl/Tk 8.5+ feature
310
+ # --------------------------------------------------------------
311
+ # In the future release, I want to support to embed the 'win'
312
+ # into the container which has window-id 'use-id'.
313
+ # It may give users frexibility on controlling their GUI.
314
+ # However, it may be difficult for current Tcl/Tk (Tcl/Tk8.5.1),
315
+ # because it seems to require to modify Tcl/Tk's source code.
316
+ # --------------------------------------------------------------
317
+ if use_id
318
+ tk_call_without_enc('wm', 'manage', win.epath, '-use', use_id)
319
+ else
320
+ tk_call_without_enc('wm', 'manage', win.epath)
321
+ end
322
+ win
323
+ end
324
+ =end
325
+
326
+ def Wm.maxsize(win, *args)
327
+ if args.size == 0
328
+ list(tk_call_without_enc('wm', 'maxsize', win.epath))
329
+ else
330
+ args = args[0] if args.length == 1 && args[0].kind_of?(Array)
331
+ tk_call_without_enc('wm', 'maxsize', win.epath, *args)
332
+ win
333
+ end
334
+ end
335
+ def maxsize(*args)
336
+ Wm.maxsize(self, *args)
337
+ end
338
+ alias wm_maxsize maxsize
339
+ TOPLEVEL_METHODCALL_OPTKEYS['maxsize'] = 'maxsize'
340
+
341
+ def Wm.minsize(win, *args)
342
+ if args.size == 0
343
+ list(tk_call_without_enc('wm', 'minsize', win.epath))
344
+ else
345
+ args = args[0] if args.length == 1 && args[0].kind_of?(Array)
346
+ tk_call_without_enc('wm', 'minsize', win.path, *args)
347
+ win
348
+ end
349
+ end
350
+ def minsize(*args)
351
+ Wm.minsize(self, *args)
352
+ end
353
+ alias wm_minsize minsize
354
+ TOPLEVEL_METHODCALL_OPTKEYS['minsize'] = 'minsize'
355
+
356
+ def Wm.overrideredirect(win, mode=TkComm::None)
357
+ if mode == TkComm::None
358
+ bool(tk_call_without_enc('wm', 'overrideredirect', win.epath))
359
+ else
360
+ tk_call_without_enc('wm', 'overrideredirect', win.epath, mode)
361
+ win
362
+ end
363
+ end
364
+ def overrideredirect(mode=TkComm::None)
365
+ Wm.overrideredirect(self, mode)
366
+ end
367
+ alias wm_overrideredirect overrideredirect
368
+ TOPLEVEL_METHODCALL_OPTKEYS['overrideredirect'] = 'overrideredirect'
369
+
370
+ def Wm.positionfrom(win, who=TkComm::None)
371
+ if who == TkComm::None
372
+ r = tk_call_without_enc('wm', 'positionfrom', win.epath)
373
+ (r == "")? nil: r
374
+ else
375
+ tk_call_without_enc('wm', 'positionfrom', win.epath, who)
376
+ win
377
+ end
378
+ end
379
+ def positionfrom(who=TkComm::None)
380
+ Wm.positionfrom(self, who)
381
+ end
382
+ alias wm_positionfrom positionfrom
383
+ TOPLEVEL_METHODCALL_OPTKEYS['positionfrom'] = 'positionfrom'
384
+
385
+ def Wm.protocol(win, name=nil, cmd=nil, &b)
386
+ if cmd
387
+ tk_call_without_enc('wm', 'protocol', win.epath, name, cmd)
388
+ win
389
+ elsif b
390
+ tk_call_without_enc('wm', 'protocol', win.epath, name, proc(&b))
391
+ win
392
+ elsif name
393
+ result = tk_call_without_enc('wm', 'protocol', win.epath, name)
394
+ (result == "")? nil : tk_tcl2ruby(result)
395
+ else
396
+ tk_split_simplelist(tk_call_without_enc('wm', 'protocol', win.epath))
397
+ end
398
+ end
399
+ def protocol(name=nil, cmd=nil, &b)
400
+ Wm.protocol(self, name, cmd, &b)
401
+ end
402
+ alias wm_protocol protocol
403
+
404
+ def Wm.protocols(win, kv=nil)
405
+ unless kv
406
+ ret = {}
407
+ Wm.protocol(win).each{|name|
408
+ ret[name] = Wm.protocol(win, name)
409
+ }
410
+ return ret
411
+ end
412
+
413
+ unless kv.kind_of?(Hash)
414
+ fail ArgumentError, 'expect a hash of protocol=>command'
415
+ end
416
+ kv.each{|k, v| Wm.protocol(win, k, v)}
417
+ win
418
+ end
419
+ def protocols(kv=nil)
420
+ Wm.protocols(self, kv)
421
+ end
422
+ alias wm_protocols protocols
423
+ TOPLEVEL_METHODCALL_OPTKEYS['protocols'] = 'protocols'
424
+
425
+ def Wm.resizable(win, *args)
426
+ if args.length == 0
427
+ list(tk_call_without_enc('wm', 'resizable', win.epath)).map!{|e| bool(e)}
428
+ else
429
+ args = args[0] if args.length == 1 && args[0].kind_of?(Array)
430
+ tk_call_without_enc('wm', 'resizable', win.epath, *args)
431
+ win
432
+ end
433
+ end
434
+ def resizable(*args)
435
+ Wm.resizable(self, *args)
436
+ end
437
+ alias wm_resizable resizable
438
+ TOPLEVEL_METHODCALL_OPTKEYS['resizable'] = 'resizable'
439
+
440
+ def Wm.sizefrom(win, who=TkComm::None)
441
+ if who == TkComm::None
442
+ r = tk_call_without_enc('wm', 'sizefrom', win.epath)
443
+ (r == "")? nil: r
444
+ else
445
+ tk_call_without_enc('wm', 'sizefrom', win.epath, who)
446
+ win
447
+ end
448
+ end
449
+ def sizefrom(who=TkComm::None)
450
+ Wm.sizefrom(self, who)
451
+ end
452
+ alias wm_sizefrom sizefrom
453
+ TOPLEVEL_METHODCALL_OPTKEYS['sizefrom'] = 'sizefrom'
454
+
455
+ def Wm.stackorder(win)
456
+ list(tk_call('wm', 'stackorder', win.epath))
457
+ end
458
+ def stackorder
459
+ Wm.stackorder(self)
460
+ end
461
+ alias wm_stackorder stackorder
462
+
463
+ def Wm.stackorder_isabove(win, target)
464
+ bool(tk_call('wm', 'stackorder', win.epath, 'isabove', target))
465
+ end
466
+ def Wm.stackorder_is_above(win, target)
467
+ Wm.stackorder_isabove(win, target)
468
+ end
469
+ def stackorder_isabove(target)
470
+ Wm.stackorder_isabove(self, target)
471
+ end
472
+ alias stackorder_is_above stackorder_isabove
473
+ alias wm_stackorder_isabove stackorder_isabove
474
+ alias wm_stackorder_is_above stackorder_isabove
475
+
476
+ def Wm.stackorder_isbelow(win, target)
477
+ bool(tk_call('wm', 'stackorder', win.epath, 'isbelow', target))
478
+ end
479
+ def Wm.stackorder_is_below(win, target)
480
+ Wm.stackorder_isbelow(win, target)
481
+ end
482
+ def stackorder_isbelow(target)
483
+ Wm.stackorder_isbelow(self, target)
484
+ end
485
+ alias stackorder_is_below stackorder_isbelow
486
+ alias wm_stackorder_isbelow stackorder_isbelow
487
+ alias wm_stackorder_is_below stackorder_isbelow
488
+
489
+ def Wm.state(win, st=nil)
490
+ if st
491
+ tk_call_without_enc('wm', 'state', win.epath, st)
492
+ win
493
+ else
494
+ tk_call_without_enc('wm', 'state', win.epath)
495
+ end
496
+ end
497
+ def state(st=nil)
498
+ Wm.state(self, st)
499
+ end
500
+ alias wm_state state
501
+ TOPLEVEL_METHODCALL_OPTKEYS['state'] = 'state'
502
+
503
+ def Wm.title(win, str=nil)
504
+ if str
505
+ tk_call('wm', 'title', win.epath, str)
506
+ win
507
+ else
508
+ tk_call('wm', 'title', win.epath)
509
+ end
510
+ end
511
+ def title(str=nil)
512
+ Wm.title(self, str)
513
+ end
514
+ alias wm_title title
515
+ TOPLEVEL_METHODCALL_OPTKEYS['title'] = 'title'
516
+
517
+ def Wm.transient(win, master=nil)
518
+ if master
519
+ tk_call_without_enc('wm', 'transient', win.epath, master)
520
+ win
521
+ else
522
+ window(tk_call_without_enc('wm', 'transient', win.epath))
523
+ end
524
+ end
525
+ def transient(master=nil)
526
+ Wm.transient(self, master)
527
+ end
528
+ alias wm_transient transient
529
+ TOPLEVEL_METHODCALL_OPTKEYS['transient'] = 'transient'
530
+
531
+ def Wm.withdraw(win, ex = true)
532
+ if ex
533
+ tk_call_without_enc('wm', 'withdraw', win.epath)
534
+ else
535
+ Wm.deiconify(win)
536
+ end
537
+ win
538
+ end
539
+ def withdraw(ex = true)
540
+ Wm.withdraw(self, ex)
541
+ end
542
+ alias wm_withdraw withdraw
543
+ end
544
+
545
+ module Wm_for_General
546
+ Wm.instance_methods.each{|m|
547
+ if (m = m.to_s) =~ /^wm_(.*)$/
548
+ eval "def #{m}(*args, &b); Tk::Wm.#{$1}(self, *args, &b); end"
549
+ end
550
+ }
551
+ end
552
+ end