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,107 @@
1
+ #
2
+ # tk/pack.rb : control pack geometry manager
3
+ #
4
+ require 'tk'
5
+
6
+ module TkPack
7
+ include Tk
8
+ extend Tk
9
+
10
+ TkCommandNames = ['pack'.freeze].freeze
11
+
12
+ =begin
13
+ def configure(win, *args)
14
+ if args[-1].kind_of?(Hash)
15
+ opts = args.pop
16
+ else
17
+ opts = {}
18
+ end
19
+ params = []
20
+ # params.push((win.kind_of?(TkObject))? win.epath: win)
21
+ params.push(_epath(win))
22
+ args.each{|win|
23
+ # params.push((win.kind_of?(TkObject))? win.epath: win)
24
+ params.push(_epath(win))
25
+ }
26
+ opts.each{|k, v|
27
+ params.push("-#{k}")
28
+ # params.push((v.kind_of?(TkObject))? v.epath: v)
29
+ params.push(_epath(v))
30
+ }
31
+ tk_call_without_enc("pack", 'configure', *params)
32
+ end
33
+ =end
34
+ def configure(*args)
35
+ if args[-1].kind_of?(Hash)
36
+ opts = args.pop
37
+ else
38
+ opts = {}
39
+ end
40
+ fail ArgumentError, 'no widget is given' if args.empty?
41
+ params = []
42
+ args.flatten(1).each{|win| params.push(_epath(win))}
43
+ opts.each{|k, v|
44
+ params.push("-#{k}")
45
+ params.push(_epath(v)) # have to use 'epath' (hash_kv() is unavailable)
46
+ }
47
+ tk_call_without_enc("pack", 'configure', *params)
48
+ end
49
+ alias pack configure
50
+
51
+ def forget(*args)
52
+ return '' if args.size == 0
53
+ wins = args.collect{|win|
54
+ # (win.kind_of?(TkObject))? win.epath: win
55
+ _epath(win)
56
+ }
57
+ tk_call_without_enc('pack', 'forget', *wins)
58
+ end
59
+
60
+ def info(slave)
61
+ # slave = slave.epath if slave.kind_of?(TkObject)
62
+ slave = _epath(slave)
63
+ ilist = list(tk_call_without_enc('pack', 'info', slave))
64
+ info = {}
65
+ while key = ilist.shift
66
+ info[key[1..-1]] = ilist.shift
67
+ end
68
+ return info
69
+ end
70
+
71
+ def propagate(master, mode=None)
72
+ # master = master.epath if master.kind_of?(TkObject)
73
+ master = _epath(master)
74
+ if mode == None
75
+ bool(tk_call_without_enc('pack', 'propagate', master))
76
+ else
77
+ tk_call_without_enc('pack', 'propagate', master, mode)
78
+ end
79
+ end
80
+
81
+ def slaves(master)
82
+ # master = master.epath if master.kind_of?(TkObject)
83
+ master = _epath(master)
84
+ list(tk_call_without_enc('pack', 'slaves', master))
85
+ end
86
+
87
+ module_function :pack, :configure, :forget, :info, :propagate, :slaves
88
+ end
89
+ =begin
90
+ def TkPack(win, *args)
91
+ if args[-1].kind_of?(Hash)
92
+ opts = args.pop
93
+ else
94
+ opts = {}
95
+ end
96
+ params = []
97
+ params.push((win.kind_of?(TkObject))? win.epath: win)
98
+ args.each{|win|
99
+ params.push((win.kind_of?(TkObject))? win.epath: win)
100
+ }
101
+ opts.each{|k, v|
102
+ params.push("-#{k}")
103
+ params.push((v.kind_of?(TkObject))? v.epath: v)
104
+ }
105
+ tk_call_without_enc("pack", *params)
106
+ end
107
+ =end
@@ -0,0 +1,143 @@
1
+ #
2
+ # tk/package.rb : package command
3
+ #
4
+ require 'tk'
5
+
6
+ module TkPackage
7
+ include TkCore
8
+ extend TkPackage
9
+
10
+ TkCommandNames = ['package'.freeze].freeze
11
+
12
+ def add_path(path)
13
+ Tk::AUTO_PATH.value = Tk::AUTO_PATH.to_a << path
14
+ end
15
+
16
+ def forget(package)
17
+ tk_call('package', 'forget', package)
18
+ nil
19
+ end
20
+
21
+ def if_needed(pkg, ver, *arg, &b)
22
+ size = arg.size
23
+
24
+ if size==0 && !b
25
+ # proc info
26
+ procedure(tk_call('package', 'ifneeded', pkg, ver))
27
+
28
+ elsif size==0 && b
29
+ # set proc
30
+ cmd = proc(&b)
31
+ tk_call('package', 'ifneeded', pkg, ver, cmd)
32
+ cmd
33
+
34
+ elsif size==1 && !b
35
+ # set proc
36
+ cmd = arg[0]
37
+ if cmd
38
+ tk_call('package', 'ifneeded', pkg, ver, cmd)
39
+ cmd
40
+ else
41
+ # remove proc
42
+ tk_call('package', 'ifneeded', pkg, ver, '')
43
+ nil
44
+ end
45
+
46
+ else
47
+ fail ArgumentError, 'too many arguments'
48
+ end
49
+ end
50
+
51
+ def names
52
+ tk_split_simplelist(tk_call('package', 'names'))
53
+ end
54
+
55
+ def provide(package, version=nil)
56
+ if version
57
+ tk_call('package', 'provide', package, version)
58
+ end
59
+ if (ret = tk_call('package', 'provide', package)) == ''
60
+ nil
61
+ else
62
+ ret
63
+ end
64
+ end
65
+
66
+ def present(package, version=None)
67
+ begin
68
+ tk_call('package', 'present', package, version)
69
+ rescue => e
70
+ fail e.class, 'TkPackage ' << e.message
71
+ end
72
+ end
73
+
74
+ def present_exact(package, version)
75
+ begin
76
+ tk_call('package', 'present', '-exact', package, version)
77
+ rescue => e
78
+ fail e.class, 'TkPackage ' << e.message
79
+ end
80
+ end
81
+
82
+ def require(package, version=None)
83
+ begin
84
+ tk_call('package', 'require', package, version)
85
+ rescue => e
86
+ fail e.class, 'TkPackage ' << e.message
87
+ end
88
+ end
89
+
90
+ def require_exact(package, version)
91
+ begin
92
+ tk_call('package', 'require', '-exact', package, version)
93
+ rescue => e
94
+ fail e.class, 'TkPackage ' << e.message
95
+ end
96
+ end
97
+
98
+ def unknown_proc(*arg, &b)
99
+ size = arg.size
100
+
101
+ if size==0 && !b
102
+ # proc info
103
+ procedure(tk_call('package', 'unknown'))
104
+
105
+ elsif size==0 && b
106
+ # set proc
107
+ cmd = proc(&b)
108
+ tk_call('package', 'unknown', cmd)
109
+ cmd
110
+
111
+ elsif size==1 && !b
112
+ # set proc
113
+ cmd = arg[0]
114
+ if cmd
115
+ tk_call('package', 'unknown', cmd)
116
+ cmd
117
+ else
118
+ # remove proc
119
+ tk_call('package', 'unknown', '')
120
+ nil
121
+ end
122
+
123
+ else
124
+ fail ArgumentError, 'too many arguments'
125
+ end
126
+ end
127
+
128
+ def versions(package)
129
+ tk_split_simplelist(tk_call('package', 'versions', package))
130
+ end
131
+
132
+ def vcompare(version1, version2)
133
+ number(tk_call('package', 'vcompare', version1, version2))
134
+ end
135
+
136
+ def vsatisfies(version1, version2)
137
+ bool(tk_call('package', 'vsatisfies', version1, version2))
138
+ end
139
+
140
+ def prefer(setting = None)
141
+ tk_call('package', 'prefer', setting)
142
+ end
143
+ end
@@ -0,0 +1,55 @@
1
+ #
2
+ # tk/palette.rb : methods for Tcl/Tk standard library 'palette.tcl'
3
+ # 1998/06/21 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
4
+ #
5
+ require 'tk'
6
+
7
+ module TkPalette
8
+ include Tk
9
+ extend Tk
10
+
11
+ TkCommandNames = [
12
+ 'tk_setPalette'.freeze,
13
+ 'tk_bisque'.freeze,
14
+ 'tkDarken'.freeze
15
+ ].freeze
16
+
17
+ def TkPalette.set(*args)
18
+ args = args[0].to_a.flatten if args[0].kind_of? Hash
19
+ tk_call('tk_setPalette', *args)
20
+ end
21
+ def TkPalette.setPalette(*args)
22
+ TkPalette.set(*args)
23
+ end
24
+
25
+ def TkPalette.bisque
26
+ tk_call('tk_bisque')
27
+ end
28
+
29
+ def TkPalette.darken(color, percent)
30
+ tk_call('tkDarken', color, percent)
31
+ end
32
+
33
+ def TkPalette.recolorTree(win, colors)
34
+ if not colors.kind_of?(Hash)
35
+ fail "2nd arg need to be Hash"
36
+ end
37
+
38
+ tk_call('global', "tkPalette")
39
+ colors.each{|key, value|
40
+ begin
41
+ if win.cget(key) == tk_call('set', "tkPalette(#{key})")
42
+ win[key] = colors[key]
43
+ end
44
+ rescue
45
+ # ignore
46
+ end
47
+ }
48
+
49
+ TkWinfo.children(win).each{|w| TkPalette.recolorTree(w, colors)}
50
+ end
51
+
52
+ def recolorTree(colors)
53
+ TkPalette.recolorTree(self, colors)
54
+ end
55
+ end
@@ -0,0 +1,260 @@
1
+ #
2
+ # tk/panedwindow.rb : treat panedwindow
3
+ #
4
+ require 'tk'
5
+
6
+ class Tk::PanedWindow<TkWindow
7
+ TkCommandNames = ['panedwindow'.freeze].freeze
8
+ WidgetClassName = 'Panedwindow'.freeze
9
+ WidgetClassNames[WidgetClassName] ||= self
10
+ #def create_self(keys)
11
+ # if keys and keys != None
12
+ # tk_call_without_enc('panedwindow', @path, *hash_kv(keys, true))
13
+ # else
14
+ # tk_call_without_enc('panedwindow', @path)
15
+ # end
16
+ #end
17
+ #private :create_self
18
+
19
+ def add(*args)
20
+ keys = args.pop
21
+ fail ArgumentError, "no window in arguments" unless keys
22
+ if keys && keys.kind_of?(Hash)
23
+ fail ArgumentError, "no window in arguments" if args == []
24
+ # args = args.collect{|w| (w.kind_of?(TkObject))? w.epath: w }
25
+ args = args.collect{|w| _epath(w) }
26
+ #args.push(hash_kv(keys))
27
+ args.concat(hash_kv(keys))
28
+ else
29
+ args.push(keys) if keys
30
+ # args = args.collect{|w| (w.kind_of?(TkObject))? w.epath: w }
31
+ args = args.collect{|w| _epath(w) }
32
+ end
33
+ tk_send_without_enc('add', *args)
34
+ self
35
+ end
36
+
37
+ def forget(win, *wins)
38
+ wins.unshift(win)
39
+ # tk_send_without_enc('forget', *((w.kind_of?(TkObject))? w.epath: w))
40
+ tk_send_without_enc('forget', *(wins.collect{|w| _epath(w)}))
41
+ self
42
+ end
43
+ alias del forget
44
+ alias delete forget
45
+ alias remove forget
46
+
47
+ def identify(x, y)
48
+ list(tk_send_without_enc('identify', x, y))
49
+ end
50
+
51
+ def proxy_coord
52
+ list(tk_send_without_enc('proxy', 'coord'))
53
+ end
54
+ def proxy_forget
55
+ tk_send_without_enc('proxy', 'forget')
56
+ self
57
+ end
58
+ def proxy_place(x, y)
59
+ tk_send_without_enc('proxy', 'place', x, y)
60
+ self
61
+ end
62
+
63
+ def sash_coord(index)
64
+ list(tk_send('sash', 'coord', index))
65
+ end
66
+ def sash_dragto(index, x, y)
67
+ tk_send('sash', 'dragto', index, x, y)
68
+ self
69
+ end
70
+ def sash_mark(index, x, y)
71
+ tk_send('sash', 'mark', index, x, y)
72
+ self
73
+ end
74
+ def sash_place(index, x, y)
75
+ tk_send('sash', 'place', index, x, y)
76
+ self
77
+ end
78
+
79
+ def panecget_strict(win, key)
80
+ # win = win.epath if win.kind_of?(TkObject)
81
+ win = _epath(win)
82
+ tk_tcl2ruby(tk_send_without_enc('panecget', win, "-#{key}"))
83
+ end
84
+ def panecget(win, key)
85
+ unless TkItemConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
86
+ panecget_strict(win, key)
87
+ else
88
+ begin
89
+ panecget_strict(win, key)
90
+ rescue => e
91
+ begin
92
+ if current_paneconfiginfo(win).has_key?(option.to_s)
93
+ # not tag error & option is known -> error on known option
94
+ fail e
95
+ else
96
+ # not tag error & option is unknown
97
+ nil
98
+ end
99
+ rescue
100
+ fail e # tag error
101
+ end
102
+ end
103
+ end
104
+ end
105
+
106
+ def paneconfigure(win, key, value=nil)
107
+ # win = win.epath if win.kind_of?(TkObject)
108
+ win = _epath(win)
109
+ if key.kind_of? Hash
110
+ params = []
111
+ key.each{|k, v|
112
+ params.push("-#{k}")
113
+ # params.push((v.kind_of?(TkObject))? v.epath: v)
114
+ params.push(_epath(v))
115
+ }
116
+ tk_send_without_enc('paneconfigure', win, *params)
117
+ else
118
+ # value = value.epath if value.kind_of?(TkObject)
119
+ value = _epath(value)
120
+ tk_send_without_enc('paneconfigure', win, "-#{key}", value)
121
+ end
122
+ self
123
+ end
124
+ alias pane_config paneconfigure
125
+
126
+ def paneconfiginfo(win, key=nil)
127
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
128
+ # win = win.epath if win.kind_of?(TkObject)
129
+ win = _epath(win)
130
+ if key
131
+ #conf = tk_split_list(tk_send_without_enc('paneconfigure',
132
+ # win, "-#{key}"))
133
+ conf = tk_split_list(tk_send_without_enc('paneconfigure',
134
+ win, "-#{key}"),
135
+ false, true)
136
+ conf[0] = conf[0][1..-1]
137
+ if conf[0] == 'hide'
138
+ conf[3] = bool(conf[3]) unless conf[3].empty?
139
+ conf[4] = bool(conf[4]) unless conf[4].empty?
140
+ end
141
+ conf
142
+ else
143
+ #tk_split_simplelist(tk_send_without_enc('paneconfigure',
144
+ # win)).collect{|conflist|
145
+ # conf = tk_split_simplelist(conflist)
146
+ tk_split_simplelist(tk_send_without_enc('paneconfigure', win),
147
+ false, false).collect{|conflist|
148
+ conf = tk_split_simplelist(conflist, false, true)
149
+ conf[0] = conf[0][1..-1]
150
+ if conf[3]
151
+ if conf[0] == 'hide'
152
+ conf[3] = bool(conf[3]) unless conf[3].empty?
153
+ elsif conf[3].index('{')
154
+ conf[3] = tk_split_list(conf[3])
155
+ else
156
+ conf[3] = tk_tcl2ruby(conf[3])
157
+ end
158
+ end
159
+ if conf[4]
160
+ if conf[0] == 'hide'
161
+ conf[4] = bool(conf[4]) unless conf[4].empty?
162
+ elsif conf[4].index('{')
163
+ conf[4] = tk_split_list(conf[4])
164
+ else
165
+ conf[4] = tk_tcl2ruby(conf[4])
166
+ end
167
+ end
168
+ conf[1] = conf[1][1..-1] if conf.size == 2 # alias info
169
+ conf
170
+ }
171
+ end
172
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
173
+ # win = win.epath if win.kind_of?(TkObject)
174
+ win = _epath(win)
175
+ if key
176
+ #conf = tk_split_list(tk_send_without_enc('paneconfigure',
177
+ # win, "-#{key}"))
178
+ conf = tk_split_list(tk_send_without_enc('paneconfigure',
179
+ win, "-#{key}"),
180
+ false, true)
181
+ key = conf.shift[1..-1]
182
+ if key == 'hide'
183
+ conf[2] = bool(conf[2]) unless conf[2].empty?
184
+ conf[3] = bool(conf[3]) unless conf[3].empty?
185
+ end
186
+ { key => conf }
187
+ else
188
+ ret = {}
189
+ #tk_split_simplelist(tk_send_without_enc('paneconfigure',
190
+ # win)).each{|conflist|
191
+ # conf = tk_split_simplelist(conflist)
192
+ tk_split_simplelist(tk_send_without_enc('paneconfigure', win),
193
+ false, false).each{|conflist|
194
+ conf = tk_split_simplelist(conflist, false, true)
195
+ key = conf.shift[1..-1]
196
+ if key
197
+ if key == 'hide'
198
+ conf[2] = bool(conf[2]) unless conf[2].empty?
199
+ elsif conf[2].index('{')
200
+ conf[2] = tk_split_list(conf[2])
201
+ else
202
+ conf[2] = tk_tcl2ruby(conf[2])
203
+ end
204
+ end
205
+ if conf[3]
206
+ if key == 'hide'
207
+ conf[3] = bool(conf[3]) unless conf[3].empty?
208
+ elsif conf[3].index('{')
209
+ conf[3] = tk_split_list(conf[3])
210
+ else
211
+ conf[3] = tk_tcl2ruby(conf[3])
212
+ end
213
+ end
214
+ if conf.size == 1
215
+ ret[key] = conf[0][1..-1] # alias info
216
+ else
217
+ ret[key] = conf
218
+ end
219
+ }
220
+ ret
221
+ end
222
+ end
223
+ end
224
+ alias pane_configinfo paneconfiginfo
225
+
226
+ def current_paneconfiginfo(win, key=nil)
227
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
228
+ if key
229
+ conf = paneconfiginfo(win, key)
230
+ {conf[0] => conf[4]}
231
+ else
232
+ ret = {}
233
+ paneconfiginfo(win).each{|conf|
234
+ ret[conf[0]] = conf[4] if conf.size > 2
235
+ }
236
+ ret
237
+ end
238
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
239
+ ret = {}
240
+ paneconfiginfo(win, key).each{|k, conf|
241
+ ret[k] = conf[-1] if conf.kind_of?(Array)
242
+ }
243
+ ret
244
+ end
245
+ end
246
+
247
+ alias current_pane_configinfo current_paneconfiginfo
248
+
249
+ def panes
250
+ list(tk_send_without_enc('panes'))
251
+ end
252
+ end
253
+
254
+ Tk::Panedwindow = Tk::PanedWindow
255
+ #TkPanedWindow = Tk::PanedWindow unless Object.const_defined? :TkPanedWindow
256
+ #TkPanedwindow = Tk::Panedwindow unless Object.const_defined? :TkPanedwindow
257
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::PanedWindow,
258
+ # :TkPanedWindow, :TkPanedwindow)
259
+ Tk.__set_loaded_toplevel_aliases__('tk/panedwindow.rb', :Tk, Tk::PanedWindow,
260
+ :TkPanedWindow, :TkPanedwindow)