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,8 @@
1
+ #
2
+ # setup.rb -- setup script before calling TkPackage.require()
3
+ #
4
+ # If you need some setup operations (for example, add a library path
5
+ # to the library search path) before using Tcl/Tk library packages
6
+ # wrapped by Ruby scripts in this directory, please write the setup
7
+ # operations in this file.
8
+ #
@@ -0,0 +1,23 @@
1
+ #
2
+ # tkextlib/blt/spline.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 Spline
11
+ extend TkCore
12
+
13
+ TkCommandNames = ['::blt::spline'.freeze].freeze
14
+
15
+ def self.natural(x, y, sx, sy)
16
+ tk_call('::blt::spline', 'natural', x, y, sx, sy)
17
+ end
18
+
19
+ def self.quadratic(x, y, sx, sy)
20
+ tk_call('::blt::spline', 'quadratic', x, y, sx, sy)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,74 @@
1
+ #
2
+ # tkextlib/blt/stripchart.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 Stripchart < TkWindow
12
+ TkCommandNames = ['::blt::stripchart'.freeze].freeze
13
+ WidgetClassName = 'Stripchart'.freeze
14
+ WidgetClassNames[WidgetClassName] ||= self
15
+
16
+ include PlotComponent
17
+ include GraphCommand
18
+
19
+ def __boolval_optkeys
20
+ ['bufferelements', 'buffergraph', 'invertxy']
21
+ end
22
+ private :__boolval_optkeys
23
+
24
+ def __strval_optkeys
25
+ ['text', 'label', 'title', 'file',
26
+ 'background', 'plotbackground']
27
+ end
28
+ private :__strval_optkeys
29
+
30
+ =begin
31
+ BarElement_ID = ['blt_stripchart_bar'.freeze, TkUtil.untrust('00000')].freeze
32
+
33
+ def bar(elem=nil, keys={})
34
+ if elem.kind_of?(Hash)
35
+ keys = elem
36
+ elem = nil
37
+ end
38
+ unless elem
39
+ elem = BarElement_ID.join(TkCore::INTERP._ip_id_).freeze
40
+ BarElement_ID[1].succ!
41
+ end
42
+ tk_send('bar', elem, keys)
43
+ Element.new(self, elem, :without_creating=>true)
44
+ end
45
+ =end
46
+
47
+ def extents(item)
48
+ num_or_str(tk_send_without_enc('extents', item))
49
+ end
50
+
51
+ def invtransform(x, y)
52
+ list(tk_send_without_enc('invtransform', x, y))
53
+ end
54
+
55
+ def inside(x, y)
56
+ bool(tk_send_without_enc('inside', x, y))
57
+ end
58
+
59
+ def metafile(file=None)
60
+ # Windows only
61
+ tk_send('metafile', file)
62
+ self
63
+ end
64
+
65
+ def snap(output, keys={})
66
+ tk_send_without_enc('snap', *(hash_kv(keys, false) + output))
67
+ self
68
+ end
69
+
70
+ def transform(x, y)
71
+ list(tk_send_without_enc('transform', x, y))
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,412 @@
1
+ #
2
+ # tkextlib/blt/table.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
+ module Table
12
+ include Tk
13
+ extend Tk
14
+ extend TkItemConfigMethod
15
+
16
+ TkCommandNames = ['::blt::table'.freeze].freeze
17
+
18
+ module TableContainer
19
+ def blt_table_add(*args)
20
+ Tk::BLT::Table.add(self, *args)
21
+ self
22
+ end
23
+
24
+ def blt_table_arrange()
25
+ Tk::BLT::Table.arrange(self)
26
+ self
27
+ end
28
+
29
+ def blt_table_cget_tkstring(*args)
30
+ Tk::BLT::Table.cget_tkstring(self, *args)
31
+ end
32
+ def blt_table_cget(*args)
33
+ Tk::BLT::Table.cget(self, *args)
34
+ end
35
+ def blt_table_cget_strict(*args)
36
+ Tk::BLT::Table.cget_strict(self, *args)
37
+ end
38
+
39
+ def blt_table_configure(*args)
40
+ Tk::BLT::Table.configure(self, *args)
41
+ self
42
+ end
43
+
44
+ def blt_table_configinfo(*args)
45
+ Tk::BLT::Table.configinfo(self, *args)
46
+ end
47
+
48
+ def blt_table_current_configinfo(*args)
49
+ Tk::BLT::Table.current_configinfo(self, *args)
50
+ end
51
+
52
+ def blt_table_locate(x, y)
53
+ Tk::BLT::Table.locate(self, x, y)
54
+ end
55
+
56
+ def blt_table_delete(*args)
57
+ Tk::BLT::Table.delete(self, *args)
58
+ self
59
+ end
60
+
61
+ def blt_table_extents(item)
62
+ Tk::BLT::Table.extents(self, item)
63
+ end
64
+
65
+ def blt_table_insert(*args)
66
+ Tk::BLT::Table.insert(self, *args)
67
+ self
68
+ end
69
+
70
+ def blt_table_insert_before(*args)
71
+ Tk::BLT::Table.insert_before(self, *args)
72
+ self
73
+ end
74
+
75
+ def blt_table_insert_after(*args)
76
+ Tk::BLT::Table.insert_after(self, *args)
77
+ self
78
+ end
79
+
80
+ def blt_table_join(first, last)
81
+ Tk::BLT::Table.join(self, first, last)
82
+ self
83
+ end
84
+
85
+ def blt_table_save()
86
+ Tk::BLT::Table.save(self)
87
+ end
88
+
89
+ def blt_table_search(*args)
90
+ Tk::BLT::Table.search(self, *args)
91
+ end
92
+
93
+ def blt_table_split(*args)
94
+ Tk::BLT::Table.split(self, *args)
95
+ self
96
+ end
97
+
98
+ def blt_table_itemcget_tkstring(*args)
99
+ Tk::BLT::Table.itemcget_tkstring(self, *args)
100
+ end
101
+ def blt_table_itemcget(*args)
102
+ Tk::BLT::Table.itemcget(self, *args)
103
+ end
104
+ def blt_table_itemcget_strict(*args)
105
+ Tk::BLT::Table.itemcget_strict(self, *args)
106
+ end
107
+
108
+ def blt_table_itemconfigure(*args)
109
+ Tk::BLT::Table.itemconfigure(self, *args)
110
+ self
111
+ end
112
+
113
+ def blt_table_itemconfiginfo(*args)
114
+ Tk::BLT::Table.itemconfiginfo(self, *args)
115
+ end
116
+
117
+ def blt_table_current_itemconfiginfo(*args)
118
+ Tk::BLT::Table.current_itemconfiginfo(self, *args)
119
+ end
120
+
121
+ def blt_table_iteminfo(item)
122
+ Tk::BLT::Table.iteminfo(self, item)
123
+ end
124
+ end
125
+ end
126
+ end
127
+
128
+
129
+ ############################################
130
+ class << Tk::BLT::Table
131
+ def __item_cget_cmd(id) # id := [ container, item ]
132
+ win = (id[0].kind_of?(TkWindow))? id[0].path: id[0].to_s
133
+ ['::blt::table', 'cget', win, id[1]]
134
+ end
135
+ private :__item_cget_cmd
136
+
137
+ def __item_config_cmd(id) # id := [ container, item, ... ]
138
+ container, *items = id
139
+ win = (container.kind_of?(TkWindow))? container.path: container.to_s
140
+ ['::blt::table', 'configure', win, *items]
141
+ end
142
+ private :__item_config_cmd
143
+
144
+ def __item_pathname(id)
145
+ win = (id[0].kind_of?(TkWindow))? id[0].path: id[0].to_s
146
+ win + ';'
147
+ end
148
+ private :__item_pathname
149
+
150
+ alias __itemcget_tkstring itemcget_tkstring
151
+ alias __itemcget itemcget
152
+ alias __itemcget_strict itemcget_strict
153
+ alias __itemconfigure itemconfigure
154
+ alias __itemconfiginfo itemconfiginfo
155
+ alias __current_itemconfiginfo current_itemconfiginfo
156
+
157
+ private :__itemcget_tkstring, :__itemcget, :__itemcget_strict
158
+ private :__itemconfigure, :__itemconfiginfo, :__current_itemconfiginfo
159
+
160
+ def __boolval_optkeys
161
+ super() << 'propagate'
162
+ end
163
+ private :__boolval_optkeys
164
+
165
+ def tagid(tag)
166
+ if tag.kind_of?(Array)
167
+ case tag[0]
168
+ when Integer
169
+ # [row, col]
170
+ tag.join(',')
171
+ when :c, :C, 'c', 'C', :r, :R, 'r', 'R'
172
+ # c0 or r1 or C*, and so on
173
+ tag.collect{|elem| elem.to_s}.join('')
174
+ else
175
+ tag
176
+ end
177
+ elsif tag.kind_of?(TkWindow)
178
+ _epath(tag)
179
+ else
180
+ tag
181
+ end
182
+ end
183
+
184
+ def tagid2obj(tagid)
185
+ tagid
186
+ end
187
+
188
+ ############################################
189
+
190
+ def cget_tkstring(container, option)
191
+ __itemcget_tkstring([container], option)
192
+ end
193
+ def cget(container, option)
194
+ __itemcget([container], option)
195
+ end
196
+ def cget_strict(container, option)
197
+ __itemcget_strict([container], option)
198
+ end
199
+
200
+ def configure(container, *args)
201
+ __itemconfigure([container], *args)
202
+ end
203
+
204
+ def configinfo(container, *args)
205
+ __itemconfiginfo([container], *args)
206
+ end
207
+
208
+ def current_configinfo(container, *args)
209
+ __current_itemconfiginfo([container], *args)
210
+ end
211
+
212
+ def itemcget_tkstring(container, item, option)
213
+ __itemcget_tkstring([container, tagid(item)], option)
214
+ end
215
+ def itemcget(container, item, option)
216
+ __itemcget([container, tagid(item)], option)
217
+ end
218
+ def itemcget_strict(container, item, option)
219
+ __itemcget_strict([container, tagid(item)], option)
220
+ end
221
+
222
+ def itemconfigure(container, *args)
223
+ if args[-1].kind_of?(Hash)
224
+ # container, item, item, ... , hash_optkeys
225
+ keys = args.pop
226
+ fail ArgumentError, 'no item is given' if args.empty?
227
+ id = [container]
228
+ args.each{|item| id << tagid(item)}
229
+ __itemconfigure(id, keys)
230
+ else
231
+ # container, item, item, ... , option, value
232
+ val = args.pop
233
+ opt = args.pop
234
+ fail ArgumentError, 'no item is given' if args.empty?
235
+ id = [container]
236
+ args.each{|item| id << tagid(item)}
237
+ __itemconfigure(id, opt, val)
238
+ end
239
+ container
240
+ end
241
+
242
+ def itemconfiginfo(container, *args)
243
+ slot = args[-1]
244
+ if slot.kind_of?(String) || slot.kind_of?(Symbol)
245
+ slot = slot.to_s
246
+ if slot[0] == ?. || slot =~ /^\d+,\d+$/ || slot =~ /^(c|C|r|R)(\*|\d+)/
247
+ # widget || row,col || Ci or Ri
248
+ slot = nil
249
+ else
250
+ # option
251
+ slot = args.pop
252
+ end
253
+ else
254
+ slot = nil
255
+ end
256
+
257
+ fail ArgumentError, 'no item is given' if args.empty?
258
+
259
+ id = [container]
260
+ args.each{|item| id << tagid(item)}
261
+ __itemconfiginfo(id, slot)
262
+ end
263
+
264
+ def current_itemconfiginfo(container, *args)
265
+ slot = args[-1]
266
+ if slot.kind_of?(String) || slot.kind_of?(Symbol)
267
+ slot = slot.to_s
268
+ if slot[0] == ?. || slot =~ /^\d+,\d+$/ || slot =~ /^(c|C|r|R)(\*|\d+)/
269
+ # widget || row,col || Ci or Ri
270
+ slot = nil
271
+ else
272
+ # option
273
+ slot = args.pop
274
+ end
275
+ else
276
+ slot = nil
277
+ end
278
+
279
+ fail ArgumentError, 'no item is given' if args.empty?
280
+
281
+ id = [container]
282
+ args.each{|item| id << tagid(item)}
283
+ __current_itemconfiginfo(id, slot)
284
+ end
285
+
286
+ def info(container)
287
+ ret = {}
288
+ inf = list(tk_call('::blt::table', 'info', container))
289
+ until inf.empty?
290
+ opt = inf.slice!(0..1)
291
+ ret[opt[1..-1]] = opt[1]
292
+ end
293
+ ret
294
+ end
295
+
296
+ def iteminfo(container, item)
297
+ inf = list(tk_call('::blt::table', 'info', container, tagid(item)).chomp)
298
+
299
+ ret = []
300
+ until inf.empty? || (inf[0].kind_of?(String) && inf[0] =~ /^-/)
301
+ ret << inf.shift
302
+ end
303
+
304
+ if inf.length > 1
305
+ keys = {}
306
+ while inf.length > 1
307
+ opt = inf.slice!(0..1)
308
+ keys[opt[0][1..-1]] = opt[1]
309
+ end
310
+ ret << keys
311
+ end
312
+
313
+ ret
314
+ end
315
+
316
+ ############################################
317
+
318
+ def create_container(container)
319
+ tk_call('::blt::table', container)
320
+ begin
321
+ class << container
322
+ include Tk::BLT::Table::TableContainer
323
+ end
324
+ rescue
325
+ warn('fail to include TableContainer methods (frozen object?)')
326
+ end
327
+ container
328
+ end
329
+
330
+ def add(container, *args)
331
+ if args.empty?
332
+ tk_call('::blt::table', container)
333
+ else
334
+ args = args.collect{|arg|
335
+ if arg.kind_of?(TkWindow)
336
+ _epath(arg)
337
+ elsif arg.kind_of?(Array) # index
338
+ arg.join(',')
339
+ else
340
+ arg
341
+ end
342
+ }
343
+ tk_call('::blt::table', container, *args)
344
+ end
345
+ container
346
+ end
347
+
348
+ def arrange(container)
349
+ tk_call('::blt::table', 'arrange', container)
350
+ container
351
+ end
352
+
353
+ def delete(container, *args)
354
+ tk_call('::blt::table', 'delete', container, *args)
355
+ end
356
+
357
+ def extents(container, item)
358
+ ret = []
359
+ inf = list(tk_call('::blt::table', 'extents', container, item))
360
+ ret << inf.slice!(0..4) until inf.empty?
361
+ ret
362
+ end
363
+
364
+ def forget(*wins)
365
+ wins = wins.collect{|win| _epath(win)}
366
+ tk_call('::blt::table', 'forget', *wins)
367
+ end
368
+
369
+ def insert(container, *args)
370
+ tk_call('::blt::table', 'insert', container, *args)
371
+ end
372
+
373
+ def insert_before(container, *args)
374
+ tk_call('::blt::table', 'insert', container, '-before', *args)
375
+ end
376
+
377
+ def insert_after(container, *args)
378
+ tk_call('::blt::table', 'insert', container, '-after', *args)
379
+ end
380
+
381
+ def join(container, first, last)
382
+ tk_call('::blt::table', 'join', container, first, last)
383
+ end
384
+
385
+ def locate(container, x, y)
386
+ tk_call('::blt::table', 'locate', container, x, y)
387
+ end
388
+
389
+ def containers(arg={})
390
+ list(tk_call('::blt::table', 'containers', *hash_kv(arg)))
391
+ end
392
+
393
+ def containers_pattern(pat)
394
+ list(tk_call('::blt::table', 'containers', '-pattern', pat))
395
+ end
396
+
397
+ def containers_slave(win)
398
+ list(tk_call('::blt::table', 'containers', '-slave', win))
399
+ end
400
+
401
+ def save(container)
402
+ tk_call('::blt::table', 'save', container)
403
+ end
404
+
405
+ def search(container, keys={})
406
+ list(tk_call('::blt::table', 'containers', *hash_kv(keys)))
407
+ end
408
+
409
+ def split(container, *args)
410
+ tk_call('::blt::table', 'split', container, *args)
411
+ end
412
+ end