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,128 @@
1
+ #
2
+ # tk/place.rb : control place geometry manager
3
+ #
4
+ require 'tk'
5
+
6
+ module TkPlace
7
+ include Tk
8
+ extend Tk
9
+
10
+ TkCommandNames = ['place'.freeze].freeze
11
+
12
+ def configure(win, slot, value=None)
13
+ # for >= Tk8.4a2 ?
14
+ # win = win.epath if win.kind_of?(TkObject)
15
+ win = _epath(win)
16
+ if slot.kind_of? Hash
17
+ params = []
18
+ slot.each{|k, v|
19
+ params.push("-#{k}")
20
+ # params.push((v.kind_of?(TkObject))? v.epath: v)
21
+ params.push(_epath(v))
22
+ }
23
+ tk_call_without_enc('place', 'configure', win, *params)
24
+ else
25
+ # value = value.epath if value.kind_of?(TkObject)
26
+ value = _epath(value)
27
+ tk_call_without_enc('place', 'configure', win, "-#{slot}", value)
28
+ end
29
+ end
30
+ alias place configure
31
+
32
+ def configinfo(win, slot = nil)
33
+ # for >= Tk8.4a2 ?
34
+ if TkComm::GET_CONFIGINFOwoRES_AS_ARRAY
35
+ # win = win.epath if win.kind_of?(TkObject)
36
+ win = _epath(win)
37
+ if slot
38
+ #conf = tk_split_list(tk_call_without_enc('place', 'configure',
39
+ # win, "-#{slot}") )
40
+ conf = tk_split_simplelist(tk_call_without_enc('place', 'configure',
41
+ win, "-#{slot}") )
42
+ conf[0] = conf[0][1..-1]
43
+ conf[1] = tk_tcl2ruby(conf[1])
44
+ conf[2] = tk_tcl2ruby(conf[1])
45
+ conf[3] = tk_tcl2ruby(conf[1])
46
+ conf[4] = tk_tcl2ruby(conf[1])
47
+ conf
48
+ else
49
+ tk_split_simplelist(tk_call_without_enc('place', 'configure',
50
+ win)).collect{|conflist|
51
+ #conf = list(conflist)
52
+ conf = simplelist(conflist).collect!{|inf| tk_tcl2ruby(inf)}
53
+ conf[0] = conf[0][1..-1]
54
+ conf
55
+ }
56
+ end
57
+ else # ! TkComm::GET_CONFIGINFOwoRES_AS_ARRAY
58
+ current_configinfo(win, slot)
59
+ end
60
+ end
61
+
62
+ def current_configinfo(win, slot = nil)
63
+ # win = win.epath if win.kind_of?(TkObject)
64
+ win = _epath(win)
65
+ if slot
66
+ #conf = tk_split_list(tk_call_without_enc('place', 'configure',
67
+ # win, "-#{slot}") )
68
+ conf = tk_split_simplelist(tk_call_without_enc('place', 'configure',
69
+ win, "-#{slot}") )
70
+ # { conf[0][1..-1] => conf[1] }
71
+ { conf[0][1..-1] => tk_tcl2ruby(conf[4]) }
72
+ else
73
+ ret = {}
74
+ #tk_split_list(tk_call_without_enc('place','configure',win)).each{|conf|
75
+ tk_split_simplelist(tk_call_without_enc('place', 'configure',
76
+ win)).each{|conf_list|
77
+ #ret[conf[0][1..-1]] = conf[1]
78
+ conf = simplelist(conf_list)
79
+ ret[conf[0][1..-1]] = tk_tcl2ruby(conf[4])
80
+ }
81
+ ret
82
+ end
83
+ end
84
+
85
+ def forget(win)
86
+ # win = win.epath if win.kind_of?(TkObject)
87
+ win = _epath(win)
88
+ tk_call_without_enc('place', 'forget', win)
89
+ end
90
+
91
+ def info(win)
92
+ # win = win.epath if win.kind_of?(TkObject)
93
+ win = _epath(win)
94
+ #ilist = list(tk_call_without_enc('place', 'info', win))
95
+ ilist = simplelist(tk_call_without_enc('place', 'info', win))
96
+ info = {}
97
+ while key = ilist.shift
98
+ #info[key[1..-1]] = ilist.shift
99
+ info[key[1..-1]] = tk_tcl2ruby(ilist.shift)
100
+ end
101
+ return info
102
+ end
103
+
104
+ def slaves(master)
105
+ # master = master.epath if master.kind_of?(TkObject)
106
+ master = _epath(master)
107
+ list(tk_call('place', 'slaves', master))
108
+ end
109
+
110
+ module_function :place, :configure, :configinfo, :current_configinfo
111
+ module_function :forget, :info, :slaves
112
+ end
113
+ =begin
114
+ def TkPlace(win, slot, value=None)
115
+ win = win.epath if win.kind_of?(TkObject)
116
+ if slot.kind_of? Hash
117
+ params = []
118
+ slot.each{|k, v|
119
+ params.push("-#{k}")
120
+ params.push((v.kind_of?(TkObject))? v.epath: v)
121
+ }
122
+ tk_call_without_enc('place', win, *params)
123
+ else
124
+ value = value.epath if value.kind_of?(TkObject)
125
+ tk_call_without_enc('place', win, "-#{slot}", value)
126
+ end
127
+ end
128
+ =end
@@ -0,0 +1,73 @@
1
+ #
2
+ # tk/radiobutton.rb : treat radiobutton widget
3
+ #
4
+ require 'tk'
5
+ require 'tk/button'
6
+
7
+ class Tk::RadioButton<Tk::Button
8
+ TkCommandNames = ['radiobutton'.freeze].freeze
9
+ WidgetClassName = 'Radiobutton'.freeze
10
+ WidgetClassNames[WidgetClassName] ||= self
11
+ #def create_self(keys)
12
+ # if keys and keys != None
13
+ # tk_call_without_enc('radiobutton', @path, *hash_kv(keys, true))
14
+ # else
15
+ # tk_call_without_enc('radiobutton', @path)
16
+ # end
17
+ #end
18
+ #private :create_self
19
+
20
+ def __boolval_optkeys
21
+ super() << 'indicatoron'
22
+ end
23
+ private :__boolval_optkeys
24
+
25
+ def __strval_optkeys
26
+ super() << 'selectcolor'
27
+ end
28
+ private :__strval_optkeys
29
+
30
+ def __ruby2val_optkeys # { key=>proc, ... }
31
+ {
32
+ 'variable'=>proc{|v| tk_trace_variable(v)} # for backward compatibility
33
+ }
34
+ end
35
+ private :__ruby2val_optkeys
36
+
37
+
38
+ def deselect
39
+ tk_send_without_enc('deselect')
40
+ self
41
+ end
42
+ def select
43
+ tk_send_without_enc('select')
44
+ self
45
+ end
46
+
47
+ def get_value
48
+ var = tk_send_without_enc('cget', '-variable')
49
+ if TkVariable::USE_TCLs_SET_VARIABLE_FUNCTIONS
50
+ _fromUTF8(INTERP._get_global_var(var))
51
+ else
52
+ INTERP._eval(Kernel.format('global %s; set %s', var, var))
53
+ end
54
+ end
55
+
56
+ def set_value(val)
57
+ var = tk_send_without_enc('cget', '-variable')
58
+ if TkVariable::USE_TCLs_SET_VARIABLE_FUNCTIONS
59
+ _fromUTF8(INTERP._set_global_var(var, _get_eval_string(val, true)))
60
+ else
61
+ s = '"' + _get_eval_string(val).gsub(/[\[\]$"\\]/, '\\\\\&') + '"'
62
+ INTERP._eval(Kernel.format('global %s; set %s %s', var, var, s))
63
+ end
64
+ end
65
+ end
66
+
67
+ Tk::Radiobutton = Tk::RadioButton
68
+ #TkRadioButton = Tk::RadioButton unless Object.const_defined? :TkRadioButton
69
+ #TkRadiobutton = Tk::Radiobutton unless Object.const_defined? :TkRadiobutton
70
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::RadioButton,
71
+ # :TkRadioButton, :TkRadiobutton)
72
+ Tk.__set_loaded_toplevel_aliases__('tk/radiobutton.rb', :Tk, Tk::RadioButton,
73
+ :TkRadioButton, :TkRadiobutton)
@@ -0,0 +1,95 @@
1
+ #
2
+ # tk/root.rb : treat root widget
3
+ #
4
+ require 'tk'
5
+ require 'tk/wm'
6
+ require 'tk/menuspec'
7
+
8
+ class Tk::Root<TkWindow
9
+ include Wm
10
+ include TkMenuSpec
11
+
12
+ def __methodcall_optkeys # { key=>method, ... }
13
+ TOPLEVEL_METHODCALL_OPTKEYS
14
+ end
15
+ private :__methodcall_optkeys
16
+
17
+ def Root.new(keys=nil, &b)
18
+ unless TkCore::INTERP.tk_windows['.']
19
+ TkCore::INTERP.tk_windows['.'] =
20
+ super(:without_creating=>true, :widgetname=>'.'){}
21
+ end
22
+ root = TkCore::INTERP.tk_windows['.']
23
+
24
+ keys = _symbolkey2str(keys)
25
+
26
+ # wm commands
27
+ root.instance_eval{
28
+ __methodcall_optkeys.each{|key, method|
29
+ value = keys.delete(key.to_s)
30
+ self.__send__(method, value) if value
31
+ }
32
+ }
33
+
34
+ if keys # wm commands ( for backward comaptibility )
35
+ keys.each{|k,v|
36
+ if v.kind_of? Array
37
+ root.__send__(k,*v)
38
+ else
39
+ root.__send__(k,v)
40
+ end
41
+ }
42
+ end
43
+
44
+ if block_given?
45
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
46
+ root.instance_exec(root, &b)
47
+ else
48
+ root.instance_eval(&b)
49
+ end
50
+ end
51
+ root
52
+ end
53
+
54
+ WidgetClassName = 'Tk'.freeze
55
+ WidgetClassNames[WidgetClassName] ||= self
56
+
57
+ def self.to_eval
58
+ # self::WidgetClassName
59
+ '.'
60
+ end
61
+
62
+ def create_self
63
+ @path = '.'
64
+ end
65
+ private :create_self
66
+
67
+ def path
68
+ "."
69
+ end
70
+
71
+ def add_menu(menu_info, tearoff=false, opts=nil)
72
+ # See tk/menuspec.rb for menu_info.
73
+ # opts is a hash of default configs for all of cascade menus.
74
+ # Configs of menu_info can override it.
75
+ if tearoff.kind_of?(Hash)
76
+ opts = tearoff
77
+ tearoff = false
78
+ end
79
+ _create_menubutton(self, menu_info, tearoff, opts)
80
+ end
81
+
82
+ def add_menubar(menu_spec, tearoff=false, opts=nil)
83
+ # See tk/menuspec.rb for menu_spec.
84
+ # opts is a hash of default configs for all of cascade menus.
85
+ # Configs of menu_spec can override it.
86
+ menu_spec.each{|info| add_menu(info, tearoff, opts)}
87
+ self.menu
88
+ end
89
+
90
+ def Root.destroy
91
+ TkCore::INTERP._invoke('destroy', '.')
92
+ end
93
+ end
94
+
95
+ TkRoot = Tk::Root unless Object.const_defined? :TkRoot
@@ -0,0 +1,112 @@
1
+ #
2
+ # tk/scale.rb : treat scale widget
3
+ #
4
+ require 'tk'
5
+
6
+ class Tk::Scale<TkWindow
7
+ TkCommandNames = ['scale'.freeze].freeze
8
+ WidgetClassName = 'Scale'.freeze
9
+ WidgetClassNames[WidgetClassName] ||= self
10
+
11
+ def create_self(keys)
12
+ if keys and keys != None
13
+ if keys.key?('command') && ! keys['command'].kind_of?(String)
14
+ cmd = keys.delete('command')
15
+ keys['command'] = proc{|val| cmd.call(val.to_f)}
16
+ end
17
+ unless TkConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
18
+ #tk_call_without_enc('scale', @path, *hash_kv(keys, true))
19
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
20
+ *hash_kv(keys, true))
21
+ else
22
+ begin
23
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
24
+ *hash_kv(keys, true))
25
+ rescue
26
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
27
+ keys = __check_available_configure_options(keys)
28
+ unless keys.empty?
29
+ begin
30
+ tk_call_without_enc('destroy', @path)
31
+ rescue
32
+ # cannot destroy
33
+ configure(keys)
34
+ else
35
+ # re-create widget
36
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
37
+ *hash_kv(keys, true))
38
+ end
39
+ end
40
+ end
41
+ end
42
+ else
43
+ #tk_call_without_enc('scale', @path)
44
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
45
+ end
46
+ end
47
+ private :create_self
48
+
49
+ def __strval_optkeys
50
+ super() << 'label'
51
+ end
52
+ private :__strval_optkeys
53
+
54
+ def _wrap_command_arg(cmd)
55
+ proc{|val|
56
+ if val.kind_of?(String)
57
+ cmd.call(number(val))
58
+ else
59
+ cmd.call(val)
60
+ end
61
+ }
62
+ end
63
+ private :_wrap_command_arg
64
+
65
+ def configure_cmd(slot, value)
66
+ configure(slot=>value)
67
+ end
68
+
69
+ def configure(slot, value=None)
70
+ if (slot == 'command' || slot == :command)
71
+ configure('command'=>value)
72
+ elsif slot.kind_of?(Hash) &&
73
+ (slot.key?('command') || slot.key?(:command))
74
+ slot = _symbolkey2str(slot)
75
+ slot['command'] = _wrap_command_arg(slot.delete('command'))
76
+ end
77
+ super(slot, value)
78
+ end
79
+
80
+ def command(cmd=Proc.new)
81
+ configure('command'=>cmd)
82
+ end
83
+
84
+ def get(x=None, y=None)
85
+ number(tk_send_without_enc('get', x, y))
86
+ end
87
+
88
+ def coords(val=None)
89
+ tk_split_list(tk_send_without_enc('coords', val))
90
+ end
91
+
92
+ def identify(x, y)
93
+ tk_send_without_enc('identify', x, y)
94
+ end
95
+
96
+ def set(val)
97
+ tk_send_without_enc('set', val)
98
+ end
99
+
100
+ def value
101
+ get
102
+ end
103
+
104
+ def value= (val)
105
+ set(val)
106
+ val
107
+ end
108
+ end
109
+
110
+ #TkScale = Tk::Scale unless Object.const_defined? :TkScale
111
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::Scale, :TkScale)
112
+ Tk.__set_loaded_toplevel_aliases__('tk/scale.rb', :Tk, Tk::Scale, :TkScale)
@@ -0,0 +1,82 @@
1
+ #
2
+ # tk/scrollable.rb : module for scrollable widget
3
+ #
4
+ require 'tk'
5
+
6
+ module Tk
7
+ module XScrollable
8
+ def xscrollcommand(cmd=Proc.new)
9
+ configure_cmd 'xscrollcommand', cmd
10
+ # Tk.update # avoid scrollbar trouble
11
+ self
12
+ end
13
+
14
+ def xview(*index)
15
+ if index.size == 0
16
+ list(tk_send_without_enc('xview'))
17
+ else
18
+ tk_send_without_enc('xview', *index)
19
+ self
20
+ end
21
+ end
22
+ def xview_moveto(*index)
23
+ xview('moveto', *index)
24
+ end
25
+ def xview_scroll(*index)
26
+ xview('scroll', *index)
27
+ end
28
+
29
+ def xscrollbar(bar=nil)
30
+ if bar
31
+ @xscrollbar = bar
32
+ @xscrollbar.orient 'horizontal'
33
+ self.xscrollcommand {|*arg| @xscrollbar.set(*arg)}
34
+ @xscrollbar.command {|*arg| self.xview(*arg)}
35
+ Tk.update # avoid scrollbar trouble
36
+ end
37
+ @xscrollbar
38
+ end
39
+ end
40
+
41
+ module YScrollable
42
+ def yscrollcommand(cmd=Proc.new)
43
+ configure_cmd 'yscrollcommand', cmd
44
+ # Tk.update # avoid scrollbar trouble
45
+ self
46
+ end
47
+
48
+ def yview(*index)
49
+ if index.size == 0
50
+ list(tk_send_without_enc('yview'))
51
+ else
52
+ tk_send_without_enc('yview', *index)
53
+ self
54
+ end
55
+ end
56
+ def yview_moveto(*index)
57
+ yview('moveto', *index)
58
+ end
59
+ def yview_scroll(*index)
60
+ yview('scroll', *index)
61
+ end
62
+
63
+ def yscrollbar(bar=nil)
64
+ if bar
65
+ @yscrollbar = bar
66
+ @yscrollbar.orient 'vertical'
67
+ self.yscrollcommand {|*arg| @yscrollbar.set(*arg)}
68
+ @yscrollbar.command {|*arg| self.yview(*arg)}
69
+ Tk.update # avoid scrollbar trouble
70
+ end
71
+ @yscrollbar
72
+ end
73
+ end
74
+
75
+ X_Scrollable = XScrollable
76
+ Y_Scrollable = YScrollable
77
+
78
+ module Scrollable
79
+ include XScrollable
80
+ include YScrollable
81
+ end
82
+ end