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,28 @@
1
+ #
2
+ # tkextlib/blt/container.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/blt.rb'
8
+
9
+ module Tk::BLT
10
+ class Container < TkWindow
11
+ TkCommandNames = ['::blt::container'.freeze].freeze
12
+ WidgetClassName = 'Container'.freeze
13
+ WidgetClassNames[WidgetClassName] ||= self
14
+
15
+ def __strval_optkeys
16
+ super() << 'name'
17
+ end
18
+ private :__strval_optkeys
19
+
20
+ def find_command(pat)
21
+ Hash[*simplelist(tk_send_without_enc('find', '-command', pat))]
22
+ end
23
+
24
+ def find_name(pat)
25
+ Hash[*simplelist(tk_send_without_enc('find', '-name', pat))]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,23 @@
1
+ #
2
+ # tkextlib/blt/cutbuffer.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/blt.rb'
8
+
9
+ module Tk::BLT
10
+ module CutBuffer
11
+ TkCommandNames = ['::blt::cutbuffer'.freeze].freeze
12
+
13
+ def self.get(num = 0)
14
+ Tk.tk_call('::blt::cutbuffer', 'get', num)
15
+ end
16
+ def self.rotate(count = 1)
17
+ Tk.tk_call('::blt::cutbuffer', 'rotate', count)
18
+ end
19
+ def self.set(val, num = 0)
20
+ Tk.tk_call('::blt::cutbuffer', 'set', val, num)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,269 @@
1
+ #
2
+ # tkextlib/blt/dragdrop.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/itemconfig'
8
+ require 'tkextlib/blt.rb'
9
+
10
+ module Tk::BLT
11
+ module DragDrop
12
+ extend TkCore
13
+
14
+ TkCommandNames = ['::blt::drag&drop'.freeze].freeze
15
+
16
+ class Token < TkWindow
17
+ WidgetClassName = 'DragDropToken'.freeze
18
+ WidgetClassNames[WidgetClassName] ||= self
19
+
20
+ def initialize(arg)
21
+ if arg.kind_of?(Hash) # arg is a hash includes the widgetpath of token
22
+ arg = _symbolkey2str(arg)
23
+ install_win(nil, arg['widgetname'])
24
+ else # arg is a drag&drop source
25
+ tk_call('::blt::drag&drop', 'source', arg)
26
+ install_win(nil, tk_call('::blt::drag&drop', 'token', arg))
27
+ end
28
+ end
29
+ end
30
+
31
+ ###################################
32
+
33
+ extend TkItemConfigMethod
34
+ extend Tk::ValidateConfigure
35
+
36
+ class << self
37
+ def __item_config_cmd(id) # id := ['source'|'target', win]
38
+ ['::blt::drag&drop', id[0], id[1]]
39
+ end
40
+ private :__item_config_cmd
41
+
42
+ def __item_boolval_optkeys(id)
43
+ super(id) << 'selftarget'
44
+ end
45
+ private :__item_boolval_optkeys
46
+
47
+ def __item_listval_optkeys(id)
48
+ super(id) << 'send'
49
+ end
50
+ private :__item_listval_optkeys
51
+
52
+ def __item_strval_optkeys(id)
53
+ super(id) << 'rejectbg' << 'rejectfg' << 'tokenbg'
54
+ end
55
+ private :__item_strval_optkeys
56
+
57
+ undef itemcget
58
+ undef itemcget_tkstring
59
+ private :itemconfigure, :itemconfiginfo, :current_itemconfiginfo
60
+
61
+ def source_configure(win, slot, value=None)
62
+ itemconfigure(['source', win], slot, value)
63
+ end
64
+ def source_configinfo(win, slot=nil)
65
+ itemconfiginfo(['source', win], slot)
66
+ end
67
+ def current_source_configinfo(win, slot=nil)
68
+ current_itemconfiginfo(['source', win], slot)
69
+ end
70
+ end
71
+
72
+ class PackageCommand < TkValidateCommand
73
+ class ValidateArgs < TkUtil::CallbackSubst
74
+ KEY_TBL = [
75
+ [ ?t, ?w, :token ],
76
+ [ ?W, ?w, :widget ],
77
+ nil
78
+ ]
79
+
80
+ PROC_TBL = [
81
+ [ ?w, TkComm.method(:window) ],
82
+ nil
83
+ ]
84
+
85
+ =begin
86
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
87
+ KEY_TBL.map!{|inf|
88
+ if inf.kind_of?(Array)
89
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
90
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
91
+ end
92
+ inf
93
+ }
94
+
95
+ PROC_TBL.map!{|inf|
96
+ if inf.kind_of?(Array)
97
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
98
+ end
99
+ inf
100
+ }
101
+ =end
102
+
103
+ _setup_subst_table(KEY_TBL, PROC_TBL)
104
+
105
+ def self.ret_val(val)
106
+ val
107
+ end
108
+ end
109
+
110
+ def self._config_keys
111
+ ['packagecmd']
112
+ end
113
+ end
114
+
115
+ class SiteCommand < TkValidateCommand
116
+ class ValidateArgs < TkUtil::CallbackSubst
117
+ KEY_TBL = [
118
+ [ ?s, ?b, :compatible ],
119
+ [ ?t, ?w, :token ],
120
+ nil
121
+ ]
122
+
123
+ PROC_TBL = [
124
+ [ ?b, TkComm.method(:bool) ],
125
+ [ ?w, TkComm.method(:window) ],
126
+ nil
127
+ ]
128
+
129
+ =begin
130
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
131
+ KEY_TBL.map!{|inf|
132
+ if inf.kind_of?(Array)
133
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
134
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
135
+ end
136
+ inf
137
+ }
138
+
139
+ PROC_TBL.map!{|inf|
140
+ if inf.kind_of?(Array)
141
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
142
+ end
143
+ inf
144
+ }
145
+ =end
146
+
147
+ _setup_subst_table(KEY_TBL, PROC_TBL)
148
+
149
+ def self.ret_val(val)
150
+ val
151
+ end
152
+ end
153
+
154
+ def self._config_keys
155
+ ['sitecmd']
156
+ end
157
+ end
158
+
159
+ def self.__validation_class_list
160
+ super() << PackageCommand << SiteCommand
161
+ end
162
+
163
+ class << self
164
+ Tk::ValidateConfigure.__def_validcmd(binding, PackageCommand)
165
+ Tk::ValidateConfigure.__def_validcmd(binding, SiteCommand)
166
+ end
167
+
168
+ ###################################
169
+
170
+ class DnD_Handle < TkUtil::CallbackSubst
171
+ KEY_TBL = [
172
+ [ ?i, ?s, :ip_name ],
173
+ [ ?v, ?v, :value ],
174
+ [ ?W, ?w, :widget ],
175
+ nil
176
+ ]
177
+
178
+ PROC_TBL = [
179
+ [ ?i, TkComm.method(:string) ],
180
+ [ ?v, TkComm.method(:tk_tcl2ruby) ],
181
+ [ ?w, TkComm.method(:window) ],
182
+ nil
183
+ ]
184
+
185
+ =begin
186
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
187
+ KEY_TBL.map!{|inf|
188
+ if inf.kind_of?(Array)
189
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
190
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
191
+ end
192
+ inf
193
+ }
194
+
195
+ PROC_TBL.map!{|inf|
196
+ if inf.kind_of?(Array)
197
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
198
+ end
199
+ inf
200
+ }
201
+ =end
202
+
203
+ _setup_subst_table(KEY_TBL, PROC_TBL)
204
+ end
205
+
206
+ def self.source_handler(win, datatype, cmd=Proc.new, *args)
207
+ _bind_for_event_class(DnD_Handle,
208
+ ['::blt::drag&drop', 'source', win, 'handler'],
209
+ cmd, *args)
210
+ end
211
+
212
+ def self.target_handler(win, datatype, cmd=Proc.new, *args)
213
+ _bind_for_event_class(DnD_Handle,
214
+ ['::blt::drag&drop', 'target', win, 'handler'],
215
+ cmd, *args)
216
+ end
217
+
218
+ ###################################
219
+
220
+ def self.init_source(win)
221
+ tk_call('::blt::drag&drop', 'source', win)
222
+ end
223
+
224
+ def self.source()
225
+ list(tk_call('::blt::drag&drop', 'source'))
226
+ end
227
+
228
+ def self.source_handler_list(win)
229
+ simplelist(tk_call('::blt::drag&drop', 'source', win, 'handler'))
230
+ end
231
+ def self.source_handler_info(win, type)
232
+ tk_tcl2ruby(tk_call('::blt::drag&drop', 'source', win, 'handler', type))
233
+ end
234
+
235
+ def self.target
236
+ list(tk_call('::blt::drag&drop', 'target'))
237
+ end
238
+ def self.target_handler_list(win)
239
+ simplelist(tk_call('::blt::drag&drop', 'target', win, 'handler'))
240
+ end
241
+
242
+ def self.handle_target(win, type, val=None)
243
+ tk_call('::blt::drag&drop', 'target', win, 'handle', type, val)
244
+ end
245
+
246
+ def self.token(win)
247
+ window(tk_call('::blt::drag&drop', 'token', win))
248
+ end
249
+
250
+ def self.drag(win, x, y)
251
+ tk_call('::blt::drag&drop', 'drag', win, x, y)
252
+ end
253
+ def self.drop(win, x, y)
254
+ tk_call('::blt::drag&drop', 'drop', win, x, y)
255
+ end
256
+
257
+ def self.errors(cmd=Proc.new)
258
+ tk_call('::blt::drag&drop', 'errors', cmd)
259
+ end
260
+
261
+ def self.active
262
+ bool(tk_call('::blt::drag&drop', 'active'))
263
+ end
264
+
265
+ def self.location(x=None, y=None)
266
+ list(tk_call('::blt::drag&drop', 'location', x, y))
267
+ end
268
+ end
269
+ end
@@ -0,0 +1,32 @@
1
+ #
2
+ # tkextlib/blt/eps.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/canvas'
8
+ require 'tkextlib/blt.rb'
9
+
10
+ module Tk::BLT
11
+ class EPS < TkcItem
12
+ CItemTypeName = 'eps'.freeze
13
+ CItemTypeToClass[CItemTypeName] = self
14
+ end
15
+ end
16
+
17
+ class Tk::Canvas
18
+ alias __BLT_EPS_item_strval_optkeys __item_strval_optkeys
19
+ def __item_strval_optkeys(id)
20
+ __BLT_EPS_item_strval_optkeys(id) + [
21
+ 'shadowcolor', 'title', 'titlecolor'
22
+ ]
23
+ end
24
+ private :__item_strval_optkeys
25
+
26
+ alias __BLT_EPS_item_boolval_optkeys __item_boolval_optkeys
27
+ def __item_boolval_optkeys(id)
28
+ __BLT_EPS_item_boolval_optkeys(id) + ['showimage']
29
+ end
30
+ private :__item_boolval_optkeys
31
+ end
32
+
@@ -0,0 +1,67 @@
1
+ #
2
+ # tkextlib/blt/graph.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/blt.rb'
8
+ require 'tkextlib/blt/component.rb'
9
+
10
+ module Tk::BLT
11
+ class Graph < TkWindow
12
+ TkCommandNames = ['::blt::graph'.freeze].freeze
13
+ WidgetClassName = 'Graph'.freeze
14
+ WidgetClassNames[WidgetClassName] ||= self
15
+
16
+ include PlotComponent
17
+ include GraphCommand
18
+
19
+ def __boolval_optkeys
20
+ ['bufferelements', 'invertxy']
21
+ end
22
+ private :__boolval_optkeys
23
+
24
+ def __strval_optkeys
25
+ ['text', 'label', 'title', 'file', 'plotbackground']
26
+ end
27
+ private :__strval_optkeys
28
+
29
+ =begin
30
+ BarElement_ID = ['blt_graph_bar'.freeze, TkUtil.untrust('00000')].freeze
31
+
32
+ def bar(elem=nil, keys={})
33
+ if elem.kind_of?(Hash)
34
+ keys = elem
35
+ elem = nil
36
+ end
37
+ unless elem
38
+ elem = BarElement_ID.join(TkCore::INTERP._ip_id_).freeze
39
+ BarElement_ID[1].succ!
40
+ end
41
+ tk_send('bar', elem, keys)
42
+ Element.new(self, elem, :without_creating=>true)
43
+ end
44
+ =end
45
+
46
+ def extents(item)
47
+ num_or_str(tk_send_without_enc('extents', item))
48
+ end
49
+
50
+ def invtransform(x, y)
51
+ list(tk_send_without_enc('invtransform', x, y))
52
+ end
53
+
54
+ def inside(x, y)
55
+ bool(tk_send_without_enc('inside', x, y))
56
+ end
57
+
58
+ def snap(output, keys={})
59
+ tk_send_without_enc('snap', *(hash_kv(keys, false) + output))
60
+ self
61
+ end
62
+
63
+ def transform(x, y)
64
+ list(tk_send_without_enc('transform', x, y))
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,112 @@
1
+ #
2
+ # tkextlib/blt/htext.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/itemconfig.rb'
8
+ require 'tkextlib/blt.rb'
9
+
10
+ module Tk::BLT
11
+ class Htext<TkWindow
12
+ Htext_Var = TkVarAccess.new_hash('htext')
13
+ Htext_Widget = TkVarAccess.new('htext(widget)', :window)
14
+ Htext_File = TkVarAccess.new('htext(file)')
15
+ Htext_Line = TkVarAccess.new('htext(line)')
16
+
17
+ include TkItemConfigMethod
18
+ include Scrollable
19
+
20
+ TkCommandNames = ['::blt::htext'.freeze].freeze
21
+ WidgetClassName = 'Htext'.freeze
22
+ WidgetClassNames[WidgetClassName] ||= self
23
+
24
+ alias window_cget_tkstring itemcget_tkstring
25
+ alias window_cget itemcget
26
+ alias window_cget_strict itemcget_strict
27
+ alias window_configure itemconfigure
28
+ alias window_configuinfo itemconfiginfo
29
+ alias current_window_configuinfo current_itemconfiginfo
30
+
31
+ def __strval_optkeys
32
+ super() << 'filename'
33
+ end
34
+ private :__strval_optkeys
35
+
36
+ def append(win, keys={})
37
+ tk_send('append', _epath(win), keys)
38
+ self
39
+ end
40
+
41
+ def goto_line(idx)
42
+ tk_send_without_enc('gotoline', idx)
43
+ self
44
+ end
45
+ def current_line
46
+ number(tk_send_without_enc('gotoline'))
47
+ end
48
+
49
+ def index(str)
50
+ number(tk_send('index', str))
51
+ end
52
+
53
+ def line_pos(str)
54
+ tk_send('linepos', str)
55
+ end
56
+
57
+ def range(from=None, to=None)
58
+ tk_send_without_enc('range', from, to)
59
+ end
60
+
61
+ def scan_mark(pos)
62
+ tk_send_without_enc('scan', 'mark', pos)
63
+ self
64
+ end
65
+
66
+ def scan_dragto(pos)
67
+ tk_send_without_enc('scan', 'dragto', pos)
68
+ self
69
+ end
70
+
71
+ def search(pat, from=None, to=None)
72
+ num = number(tk_send('search', pat, from, to))
73
+ (num < 0)? nil: num
74
+ end
75
+
76
+ def selection_adjust(index)
77
+ tk_send_without_enc('selection', 'adjust', index)
78
+ self
79
+ end
80
+ def selection_clear()
81
+ tk_send_without_enc('selection', 'clear')
82
+ self
83
+ end
84
+ def selection_from(index)
85
+ tk_send_without_enc('selection', 'from', index)
86
+ self
87
+ end
88
+ def selection_line(index)
89
+ tk_send_without_enc('selection', 'line', index)
90
+ self
91
+ end
92
+ def selection_present()
93
+ bool(tk_send_without_enc('selection', 'present'))
94
+ end
95
+ def selection_range(first, last)
96
+ tk_send_without_enc('selection', 'range', first, last)
97
+ self
98
+ end
99
+ def selection_to(index)
100
+ tk_send_without_enc('selection', 'to', index)
101
+ self
102
+ end
103
+ def selection_word(index)
104
+ tk_send_without_enc('selection', 'word', index)
105
+ self
106
+ end
107
+
108
+ def windows(pat=None)
109
+ list(tk_send('windows', pat))
110
+ end
111
+ end
112
+ end