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,35 @@
1
+ #
2
+ # tkextlib/iwidgets/pushbutton.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/iwidgets.rb'
8
+
9
+ module Tk
10
+ module Iwidgets
11
+ class Pushbutton < Tk::Itk::Widget
12
+ end
13
+ end
14
+ end
15
+
16
+ class Tk::Iwidgets::Pushbutton
17
+ TkCommandNames = ['::iwidgets::pushbutton'.freeze].freeze
18
+ WidgetClassName = 'Pushbutton'.freeze
19
+ WidgetClassNames[WidgetClassName] ||= self
20
+
21
+ def __boolval_optkeys
22
+ super() << 'defaultring'
23
+ end
24
+ private :__boolval_optkeys
25
+
26
+ def invoke
27
+ tk_call_without_enc(@path, 'invoke')
28
+ self
29
+ end
30
+
31
+ def flash
32
+ tk_call_without_enc(@path, 'flash')
33
+ self
34
+ end
35
+ end
@@ -0,0 +1,121 @@
1
+ #
2
+ # tkextlib/iwidgets/radiobox.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/iwidgets.rb'
8
+
9
+ module Tk
10
+ module Iwidgets
11
+ class Radiobox < Tk::Iwidgets::Labeledframe
12
+ end
13
+ end
14
+ end
15
+
16
+ class Tk::Iwidgets::Radiobox
17
+ TkCommandNames = ['::iwidgets::radiobox'.freeze].freeze
18
+ WidgetClassName = 'Radiobox'.freeze
19
+ WidgetClassNames[WidgetClassName] ||= self
20
+
21
+ ####################################
22
+
23
+ include TkItemConfigMethod
24
+
25
+ def __item_cget_cmd(id)
26
+ [self.path, 'buttoncget', id]
27
+ end
28
+ private :__item_cget_cmd
29
+
30
+ def __item_config_cmd(id)
31
+ [self.path, 'buttonconfigure', id]
32
+ end
33
+ private :__item_config_cmd
34
+
35
+ def __item_boolval_optkeys(id)
36
+ super(id) << 'defaultring'
37
+ end
38
+ private :__item_boolval_optkeys
39
+
40
+ def tagid(tagOrId)
41
+ if tagOrId.kind_of?(Tk::Itk::Component)
42
+ tagOrId.name
43
+ else
44
+ #_get_eval_string(tagOrId)
45
+ tagOrId
46
+ end
47
+ end
48
+
49
+ alias buttoncget_tkstring itemcget_tkstring
50
+ alias buttoncget itemcget
51
+ alias buttoncget_strict itemcget_strict
52
+ alias buttonconfigure itemconfigure
53
+ alias buttonconfiginfo itemconfiginfo
54
+ alias current_buttonconfiginfo current_itemconfiginfo
55
+
56
+ private :itemcget_tkstring, :itemcget, :itemcget_strict
57
+ private :itemconfigure, :itemconfiginfo, :current_itemconfiginfo
58
+
59
+ ####################################
60
+
61
+ def add(tag=nil, keys={})
62
+ if tag.kind_of?(Hash)
63
+ keys = tag
64
+ tag = nil
65
+ end
66
+ if tag
67
+ tag = Tk::Itk::Component.new(self, tagid(tag))
68
+ else
69
+ tag = Tk::Itk::Component.new(self)
70
+ end
71
+ tk_call(@path, 'add', tagid(tag), *hash_kv(keys))
72
+ tag
73
+ end
74
+
75
+ def delete(idx)
76
+ tk_call(@path, 'delete', index(idx))
77
+ self
78
+ end
79
+
80
+ def deselect(idx)
81
+ tk_call(@path, 'deselect', index(idx))
82
+ self
83
+ end
84
+
85
+ def flash(idx)
86
+ tk_call(@path, 'flash', index(idx))
87
+ self
88
+ end
89
+
90
+ def get_tag
91
+ ((tag = tk_call_without_enc(@path, 'get')).empty?)? nil: tag
92
+ end
93
+ alias get get_tag
94
+
95
+ def get_obj
96
+ (tag = get_tag)? Tk::Itk::Component.id2obj(self, tag): nil
97
+ end
98
+
99
+ def index(idx)
100
+ number(tk_call(@path, 'index', tagid(idx)))
101
+ end
102
+
103
+ def insert(idx, tag=nil, keys={})
104
+ if tag.kind_of?(Hash)
105
+ keys = tag
106
+ tag = nil
107
+ end
108
+ if tag
109
+ tag = Tk::Itk::Component.new(self, tagid(tag))
110
+ else
111
+ tag = Tk::Itk::Component.new(self)
112
+ end
113
+ tk_call(@path, 'insert', index(idx), tagid(tag), *hash_kv(keys))
114
+ tag
115
+ end
116
+
117
+ def select(idx)
118
+ tk_call(@path, 'select', index(idx))
119
+ self
120
+ end
121
+ end
@@ -0,0 +1,24 @@
1
+ #
2
+ # tkextlib/iwidgets/buttonbox.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/iwidgets.rb'
8
+
9
+ module Tk
10
+ module Iwidgets
11
+ class Scopedobject < TkObject
12
+ end
13
+ end
14
+ end
15
+
16
+ class Tk::Iwidgets::Scopedobject
17
+ TkCommandNames = ['::iwidgets::scopedobject'.freeze].freeze
18
+ WidgetClassName = 'Scopedobject'.freeze
19
+ WidgetClassNames[WidgetClassName] ||= self
20
+
21
+ def initialize(obj_name, keys={})
22
+ @path = tk_call(self.class::TkCommandNames[0], obj_name, *hash_kv(keys))
23
+ end
24
+ end
@@ -0,0 +1,353 @@
1
+ #
2
+ # tkextlib/iwidgets/scrolledcanvas.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/canvas'
8
+ require 'tkextlib/iwidgets.rb'
9
+
10
+ module Tk
11
+ module Iwidgets
12
+ class Scrolledcanvas < Tk::Iwidgets::Scrolledwidget
13
+ end
14
+ end
15
+ end
16
+
17
+ class Tk::Iwidgets::Scrolledcanvas
18
+ TkCommandNames = ['::iwidgets::scrolledcanvas'.freeze].freeze
19
+ WidgetClassName = 'Scrolledcanvas'.freeze
20
+ WidgetClassNames[WidgetClassName] ||= self
21
+
22
+ ################################
23
+
24
+ def __boolval_optkeys
25
+ super() << 'autoresize'
26
+ end
27
+ private :__boolval_optkeys
28
+
29
+ def __strval_optkeys
30
+ super() << 'textbackground'
31
+ end
32
+ private :__strval_optkeys
33
+
34
+ def initialize(*args)
35
+ super(*args)
36
+ @canvas = component_widget('canvas')
37
+ end
38
+
39
+ def method_missing(id, *args)
40
+ if @canvas.respond_to?(id)
41
+ @canvas.__send__(id, *args)
42
+ else
43
+ super(id, *args)
44
+ end
45
+ end
46
+
47
+ ################################
48
+
49
+ def child_site
50
+ window(tk_call(@path, 'childsite'))
51
+ end
52
+
53
+ def justify(dir)
54
+ tk_call(@path, 'justify', dir)
55
+ self
56
+ end
57
+
58
+ ##########################
59
+ include TkCanvasItemConfig
60
+
61
+ def tagid(tag)
62
+ if tag.kind_of?(TkcItem) || tag.kind_of?(TkcTag)
63
+ tag.id
64
+ elsif tag.kind_of?(Tk::Itk::Component)
65
+ tag.name
66
+ else
67
+ tag # maybe an Array of configure paramters
68
+ end
69
+ end
70
+ private :tagid
71
+
72
+ # create a canvas item without creating a TkcItem object
73
+ def create(type, *args)
74
+ type.create(self, *args)
75
+ end
76
+
77
+ #######################
78
+
79
+ def addtag(tag, mode, *args)
80
+ tk_send_without_enc('addtag', tagid(tag), mode, *args)
81
+ self
82
+ end
83
+ def addtag_above(tagOrId, target)
84
+ addtag(tagOrId, 'above', tagid(target))
85
+ end
86
+ def addtag_all(tagOrId)
87
+ addtag(tagOrId, 'all')
88
+ end
89
+ def addtag_below(tagOrId, target)
90
+ addtag(tagOrId, 'below', tagid(target))
91
+ end
92
+ def addtag_closest(tagOrId, x, y, halo=None, start=None)
93
+ addtag(tagOrId, 'closest', x, y, halo, start)
94
+ end
95
+ def addtag_enclosed(tagOrId, x1, y1, x2, y2)
96
+ addtag(tagOrId, 'enclosed', x1, y1, x2, y2)
97
+ end
98
+ def addtag_overlapping(tagOrId, x1, y1, x2, y2)
99
+ addtag(tagOrId, 'overlapping', x1, y1, x2, y2)
100
+ end
101
+ def addtag_withtag(tagOrId, tag)
102
+ addtag(tagOrId, 'withtag', tagid(tag))
103
+ end
104
+
105
+ def bbox(tagOrId, *tags)
106
+ list(tk_send_without_enc('bbox', tagid(tagOrId),
107
+ *tags.collect{|t| tagid(t)}))
108
+ end
109
+
110
+ #def itembind(tag, context, cmd=Proc.new, *args)
111
+ # _bind([path, "bind", tagid(tag)], context, cmd, *args)
112
+ # self
113
+ #end
114
+ def itembind(tag, context, *args)
115
+ # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
116
+ if TkComm._callback_entry?(args[0]) || !block_given?
117
+ cmd = args.shift
118
+ else
119
+ cmd = Proc.new
120
+ end
121
+ _bind([path, "bind", tagid(tag)], context, cmd, *args)
122
+ self
123
+ end
124
+
125
+ #def itembind_append(tag, context, cmd=Proc.new, *args)
126
+ # _bind_append([path, "bind", tagid(tag)], context, cmd, *args)
127
+ # self
128
+ #end
129
+ def itembind_append(tag, context, *args)
130
+ # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
131
+ if TkComm._callback_entry?(args[0]) || !block_given?
132
+ cmd = args.shift
133
+ else
134
+ cmd = Proc.new
135
+ end
136
+ _bind_append([path, "bind", tagid(tag)], context, cmd, *args)
137
+ self
138
+ end
139
+
140
+ def itembind_remove(tag, context)
141
+ _bind_remove([path, "bind", tagid(tag)], context)
142
+ self
143
+ end
144
+
145
+ def itembindinfo(tag, context=nil)
146
+ _bindinfo([path, "bind", tagid(tag)], context)
147
+ end
148
+
149
+ def canvasx(screen_x, *args)
150
+ #tk_tcl2ruby(tk_send_without_enc('canvasx', screen_x, *args))
151
+ number(tk_send_without_enc('canvasx', screen_x, *args))
152
+ end
153
+ def canvasy(screen_y, *args)
154
+ #tk_tcl2ruby(tk_send_without_enc('canvasy', screen_y, *args))
155
+ number(tk_send_without_enc('canvasy', screen_y, *args))
156
+ end
157
+
158
+ def coords(tag, *args)
159
+ if args == []
160
+ tk_split_list(tk_send_without_enc('coords', tagid(tag)))
161
+ else
162
+ tk_send_without_enc('coords', tagid(tag), *(args.flatten))
163
+ self
164
+ end
165
+ end
166
+
167
+ def dchars(tag, first, last=None)
168
+ tk_send_without_enc('dchars', tagid(tag),
169
+ _get_eval_enc_str(first), _get_eval_enc_str(last))
170
+ self
171
+ end
172
+
173
+ def delete(*args)
174
+ tbl = nil
175
+ TkcItem::CItemID_TBL.mutex.synchronize{
176
+ tbl = TkcItem::CItemID_TBL[self.path]
177
+ }
178
+ if tbl
179
+ find('withtag', *args).each{|item|
180
+ if item.kind_of?(TkcItem)
181
+ TkcItem::CItemID_TBL.mutex.synchronize{
182
+ tbl.delete(item.id)
183
+ }
184
+ end
185
+ }
186
+ end
187
+ tk_send_without_enc('delete', *args.collect{|t| tagid(t)})
188
+ self
189
+ end
190
+ alias remove delete
191
+
192
+ def dtag(tag, tag_to_del=None)
193
+ tk_send_without_enc('dtag', tagid(tag), tag_to_del)
194
+ self
195
+ end
196
+
197
+ def find(mode, *args)
198
+ list(tk_send_without_enc('find', mode, *args)).collect!{|id|
199
+ TkcItem.id2obj(self, id)
200
+ }
201
+ end
202
+ def find_above(target)
203
+ find('above', tagid(target))
204
+ end
205
+ def find_all
206
+ find('all')
207
+ end
208
+ def find_below(target)
209
+ find('below', tagid(target))
210
+ end
211
+ def find_closest(x, y, halo=None, start=None)
212
+ find('closest', x, y, halo, start)
213
+ end
214
+ def find_enclosed(x1, y1, x2, y2)
215
+ find('enclosed', x1, y1, x2, y2)
216
+ end
217
+ def find_overlapping(x1, y1, x2, y2)
218
+ find('overlapping', x1, y1, x2, y2)
219
+ end
220
+ def find_withtag(tag)
221
+ find('withtag', tag)
222
+ end
223
+
224
+ def itemfocus(tagOrId=nil)
225
+ if tagOrId
226
+ tk_send_without_enc('focus', tagid(tagOrId))
227
+ self
228
+ else
229
+ ret = tk_send_without_enc('focus')
230
+ if ret == ""
231
+ nil
232
+ else
233
+ TkcItem.id2obj(self, ret)
234
+ end
235
+ end
236
+ end
237
+
238
+ def gettags(tagOrId)
239
+ list(tk_send_without_enc('gettags', tagid(tagOrId))).collect{|tag|
240
+ TkcTag.id2obj(self, tag)
241
+ }
242
+ end
243
+
244
+ def icursor(tagOrId, index)
245
+ tk_send_without_enc('icursor', tagid(tagOrId), index)
246
+ self
247
+ end
248
+
249
+ def index(tagOrId, idx)
250
+ number(tk_send_without_enc('index', tagid(tagOrId), idx))
251
+ end
252
+
253
+ def insert(tagOrId, index, string)
254
+ tk_send_without_enc('insert', tagid(tagOrId), index,
255
+ _get_eval_enc_str(string))
256
+ self
257
+ end
258
+
259
+ def lower(tag, below=nil)
260
+ if below
261
+ tk_send_without_enc('lower', tagid(tag), tagid(below))
262
+ else
263
+ tk_send_without_enc('lower', tagid(tag))
264
+ end
265
+ self
266
+ end
267
+
268
+ def move(tag, x, y)
269
+ tk_send_without_enc('move', tagid(tag), x, y)
270
+ self
271
+ end
272
+
273
+ def postscript(keys)
274
+ tk_send("postscript", *hash_kv(keys))
275
+ end
276
+
277
+ def raise(tag, above=nil)
278
+ if above
279
+ tk_send_without_enc('raise', tagid(tag), tagid(above))
280
+ else
281
+ tk_send_without_enc('raise', tagid(tag))
282
+ end
283
+ self
284
+ end
285
+
286
+ def scale(tag, x, y, xs, ys)
287
+ tk_send_without_enc('scale', tagid(tag), x, y, xs, ys)
288
+ self
289
+ end
290
+
291
+ def scan_mark(x, y)
292
+ tk_send_without_enc('scan', 'mark', x, y)
293
+ self
294
+ end
295
+ def scan_dragto(x, y)
296
+ tk_send_without_enc('scan', 'dragto', x, y)
297
+ self
298
+ end
299
+
300
+ def select(mode, *args)
301
+ r = tk_send_without_enc('select', mode, *args)
302
+ (mode == 'item')? TkcItem.id2obj(self, r): self
303
+ end
304
+ def select_adjust(tagOrId, index)
305
+ select('adjust', tagid(tagOrId), index)
306
+ end
307
+ def select_clear
308
+ select('clear')
309
+ end
310
+ def select_from(tagOrId, index)
311
+ select('from', tagid(tagOrId), index)
312
+ end
313
+ def select_item
314
+ select('item')
315
+ end
316
+ def select_to(tagOrId, index)
317
+ select('to', tagid(tagOrId), index)
318
+ end
319
+
320
+ def itemtype(tag)
321
+ TkcItem.type2class(tk_send('type', tagid(tag)))
322
+ end
323
+
324
+ def xview(*index)
325
+ if index.size == 0
326
+ list(tk_send_without_enc('xview'))
327
+ else
328
+ tk_send_without_enc('xview', *index)
329
+ self
330
+ end
331
+ end
332
+ def xview_moveto(*index)
333
+ xview('moveto', *index)
334
+ end
335
+ def xview_scroll(*index)
336
+ xview('scroll', *index)
337
+ end
338
+
339
+ def yview(*index)
340
+ if index.size == 0
341
+ list(tk_send_without_enc('yview'))
342
+ else
343
+ tk_send_without_enc('yview', *index)
344
+ self
345
+ end
346
+ end
347
+ def yview_moveto(*index)
348
+ yview('moveto', *index)
349
+ end
350
+ def yview_scroll(*index)
351
+ yview('scroll', *index)
352
+ end
353
+ end