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,189 @@
1
+ #
2
+ # BLT support
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/variable'
8
+
9
+ # call setup script for general 'tkextlib' libraries
10
+ require 'tkextlib/setup.rb'
11
+
12
+ # call setup script
13
+ require 'tkextlib/blt/setup.rb'
14
+
15
+ # load all image format handlers
16
+ #TkPackage.require('BLT', '2.4')
17
+ TkPackage.require('BLT')
18
+
19
+ module Tk
20
+ module BLT
21
+ TkComm::TkExtlibAutoloadModule.unshift(self)
22
+ # Require autoload-symbols which is a same name as widget classname.
23
+ # Those are used at TkComm._genobj_for_tkwidget method.
24
+
25
+ extend TkCore
26
+
27
+ VERSION = tk_call('set', 'blt_version')
28
+ PATCH_LEVEL = tk_call('set', 'blt_patchLevel')
29
+
30
+ begin
31
+ lib = TkCore::INTERP._invoke('set', 'blt_library')
32
+ rescue
33
+ lib = ''
34
+ end
35
+ LIBRARY = TkVarAccess.new('blt_library', lib)
36
+
37
+ begin
38
+ lib = TkCore::INTERP._invoke('set', 'blt_libPath')
39
+ rescue
40
+ lib = ''
41
+ end
42
+ LIB_PATH = TkVarAccess.new('blt_libPath', lib)
43
+
44
+ PACKAGE_NAME = 'BLT'.freeze
45
+ def self.package_name
46
+ PACKAGE_NAME
47
+ end
48
+
49
+ def self.package_version
50
+ begin
51
+ TkPackage.require('BLT')
52
+ rescue
53
+ ''
54
+ end
55
+ end
56
+
57
+ ####################################################
58
+
59
+ def self.beep(percent = 50)
60
+ tk_call('::blt::beep', percent)
61
+ end
62
+
63
+ def self.bgexec(*args)
64
+ if args[0].kind_of?(TkVariable)
65
+ var = args.shift
66
+ else
67
+ var = TkVariable.new
68
+ end
69
+ params = [var]
70
+
71
+ params.concat(hash_kv(args.shift, true)) if args[0].kind_of?(Hash)
72
+
73
+ params << '--' if args[0] =~ /^\s*-[^-]/
74
+ params.concat(args)
75
+
76
+ tk_call('::blt::bgexec', *params)
77
+ var
78
+ end
79
+
80
+ def self.detach_bgexec(*args)
81
+ if args[0].kind_of?(TkVariable)
82
+ var = args.shift
83
+ else
84
+ var = TkVariable.new
85
+ end
86
+ params = [var]
87
+
88
+ params.concat(hash_kv(args.shift, true)) if args[0].kind_of?(Hash)
89
+
90
+ params << '--' if args[0] =~ /^\s*-[^-]/
91
+ params.concat(args)
92
+ params << '&'
93
+
94
+ [var, tk_split_list(tk_call('::blt::bgexec', *params))]
95
+ end
96
+
97
+ def self.bltdebug(lvl = nil)
98
+ if lvl
99
+ tk_call('::blt::bltdebug', lvl)
100
+ else
101
+ number(tk_call('::blt::bltdebug'))
102
+ end
103
+ end
104
+
105
+ def self.crc32_file(name)
106
+ tk_call_without_enc('::blt::crc32', name)
107
+ end
108
+ def self.crc32_data(dat)
109
+ tk_call_without_enc('::blt::crc32', '-data', dat)
110
+ end
111
+
112
+ ####################################################
113
+
114
+ def self.active_legend(graph)
115
+ tk_call_without_enc('Blt_ActiveLegend', graph)
116
+ end
117
+ def self.crosshairs(graph)
118
+ tk_call_without_enc('Blt_Crosshairs', graph)
119
+ end
120
+ def self.zoom_stack(graph)
121
+ tk_call_without_enc('Blt_ZoomStack', graph)
122
+ end
123
+ def self.print_key(graph)
124
+ tk_call_without_enc('Blt_PrintKey', graph)
125
+ end
126
+ def self.closest_point(graph)
127
+ tk_call_without_enc('Blt_ClosestPoint', graph)
128
+ end
129
+
130
+ module GraphCommand
131
+ def active_legend
132
+ tk_call_without_enc('Blt_ActiveLegend', @path)
133
+ self
134
+ end
135
+ def crosshairs
136
+ tk_call_without_enc('Blt_Crosshairs', @path)
137
+ self
138
+ end
139
+ def zoom_stack
140
+ tk_call_without_enc('Blt_ZoomStack', @path)
141
+ self
142
+ end
143
+ def print_key
144
+ tk_call_without_enc('Blt_PrintKey', @path)
145
+ self
146
+ end
147
+ def closest_point
148
+ tk_call_without_enc('Blt_ClosestPoint', @path)
149
+ self
150
+ end
151
+ end
152
+
153
+ ####################################################
154
+
155
+ autoload :PlotComponent,'tkextlib/blt/component.rb'
156
+
157
+ autoload :Barchart, 'tkextlib/blt/barchart.rb'
158
+ autoload :Bitmap, 'tkextlib/blt/bitmap.rb'
159
+ autoload :Busy, 'tkextlib/blt/busy.rb'
160
+ autoload :Container, 'tkextlib/blt/container.rb'
161
+ autoload :CutBuffer, 'tkextlib/blt/cutbuffer.rb'
162
+ autoload :DragDrop, 'tkextlib/blt/dragdrop.rb'
163
+ autoload :EPS, 'tkextlib/blt/eps.rb'
164
+ autoload :Htext, 'tkextlib/blt/htext.rb'
165
+ autoload :Graph, 'tkextlib/blt/graph.rb'
166
+ autoload :Spline, 'tkextlib/blt/spline.rb'
167
+ autoload :Stripchart, 'tkextlib/blt/stripchart.rb'
168
+ autoload :Table, 'tkextlib/blt/table.rb'
169
+ autoload :Tabnotebook, 'tkextlib/blt/tabnotebook.rb'
170
+ autoload :Tabset, 'tkextlib/blt/tabset.rb'
171
+ autoload :Ted, 'tkextlib/blt/ted.rb'
172
+ autoload :Tile, 'tkextlib/blt/tile.rb'
173
+ autoload :Tree, 'tkextlib/blt/tree.rb'
174
+ autoload :TreeView, 'tkextlib/blt/treeview.rb'
175
+ autoload :Hiertable, 'tkextlib/blt/treeview.rb'
176
+ # Hierbox is obsolete
177
+ autoload :Vector, 'tkextlib/blt/vector.rb'
178
+ autoload :VectorAccess, 'tkextlib/blt/vector.rb'
179
+ autoload :Watch, 'tkextlib/blt/watch.rb'
180
+ autoload :Winop, 'tkextlib/blt/winop.rb'
181
+ autoload :WinOp, 'tkextlib/blt/winop.rb'
182
+
183
+ # Unix only
184
+ autoload :DnD, 'tkextlib/blt/unix_dnd.rb'
185
+
186
+ # Windows only
187
+ autoload :Printer, 'tkextlib/blt/win_printer.rb'
188
+ end
189
+ end
@@ -0,0 +1,79 @@
1
+ #
2
+ # tkextlib/blt/barchart.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 Barchart < TkWindow
12
+ TkCommandNames = ['::blt::barchart'.freeze].freeze
13
+ WidgetClassName = 'Barchart'.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
+ def __tkvariable_optkeys
31
+ super() << 'colormap' << 'fontmap'
32
+ end
33
+ private :__tkvariable_optkeys
34
+
35
+ =begin
36
+ BarElement_ID = ['blt_barchart_bar'.freeze, TkUtil.untrust('00000')].freeze
37
+
38
+ def bar(elem=nil, keys={})
39
+ if elem.kind_of?(Hash)
40
+ keys = elem
41
+ elem = nil
42
+ end
43
+ unless elem
44
+ elem = BarElement_ID.join(TkCore::INTERP._ip_id_).freeze
45
+ BarElement_ID[1].succ!
46
+ end
47
+ tk_send('bar', elem, keys)
48
+ Element.new(self, elem, :without_creating=>true)
49
+ end
50
+ =end
51
+
52
+ def extents(item)
53
+ num_or_str(tk_send_without_enc('extents', item))
54
+ end
55
+
56
+ def invtransform(x, y)
57
+ list(tk_send_without_enc('invtransform', x, y))
58
+ end
59
+
60
+ def inside(x, y)
61
+ bool(tk_send_without_enc('inside', x, y))
62
+ end
63
+
64
+ def metafile(file=None)
65
+ # Windows only
66
+ tk_send('metafile', file)
67
+ self
68
+ end
69
+
70
+ def snap(output, keys={})
71
+ tk_send_without_enc('snap', *(hash_kv(keys, false) + output))
72
+ self
73
+ end
74
+
75
+ def transform(x, y)
76
+ list(tk_send_without_enc('transform', x, y))
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,112 @@
1
+ #
2
+ # tkextlib/blt/bitmap.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 Bitmap < TkObject
11
+ extend TkCore
12
+
13
+ TkCommandNames = ['::blt::bitmap'.freeze].freeze
14
+
15
+ BITMAP_ID_TBL = TkCore::INTERP.create_table
16
+
17
+ (BITMAP_ID = ['blt_bitmap_id'.freeze, TkUtil.untrust('00000')]).instance_eval{
18
+ @mutex = Mutex.new
19
+ def mutex; @mutex; end
20
+ freeze
21
+ }
22
+
23
+ TkCore::INTERP.init_ip_env{
24
+ BITMAP_ID_TBL.mutex.synchronize{ BITMAP_ID_TBL.clear }
25
+ }
26
+
27
+ def self.data(name)
28
+ dat = tk_simple_list(tk_call('::blt::bitmap', 'data', name))
29
+ [ tk_split_list(dat[0]), tk_simple_list(dat[1]) ]
30
+ end
31
+
32
+ def self.exist?(name)
33
+ bool(tk_call('::blt::bitmap', 'exists', name))
34
+ end
35
+
36
+ def self.height(name)
37
+ number(tk_call('::blt::bitmap', 'height', name))
38
+ end
39
+
40
+ def self.width(name)
41
+ number(tk_call('::blt::bitmap', 'width', name))
42
+ end
43
+
44
+ def self.source(name)
45
+ tk_simple_list(tk_call('::blt::bitmap', 'source', name))
46
+ end
47
+
48
+ #################################
49
+
50
+ class << self
51
+ alias _new new
52
+
53
+ def new(data, keys={})
54
+ _new(:data, nil, data, keys)
55
+ end
56
+ alias define new
57
+
58
+ def new_with_name(name, data, keys={})
59
+ _new(:data, name, data, keys)
60
+ end
61
+ alias define_with_name new_with_name
62
+
63
+ def compose(text, keys={})
64
+ _new(:text, nil, text, keys)
65
+ end
66
+
67
+ def compose_with_name(name, text, keys={})
68
+ _new(:text, name, text, keys)
69
+ end
70
+ end
71
+
72
+ def initialize(type, name, data, keys = {})
73
+ if name
74
+ @id = name
75
+ else
76
+ BITMAP_ID.mutex.synchronize{
77
+ @id = BITMAP_ID.join(TkCore::INTERP._ip_id_)
78
+ BITMAP_ID[1].succ!
79
+ }
80
+ BITMAP_ID_TBL.mutex.synchronize{
81
+ BITMAP_ID_TBL[@id] = self
82
+ }
83
+ end
84
+
85
+ @path = @id
86
+
87
+ unless bool(tk_call('::blt::bitmap', 'exists', @id))
88
+ if type == :text
89
+ tk_call('::blt::bitmap', 'compose', @id, data, *hash_kv(keys))
90
+ else # :data
91
+ tk_call('::blt::bitmap', 'define', @id, data, *hash_kv(keys))
92
+ end
93
+ end
94
+ end
95
+
96
+ def exist?
97
+ bool(tk_call('::blt::bitmap', 'exists', @id))
98
+ end
99
+
100
+ def height
101
+ number(tk_call('::blt::bitmap', 'height', @id))
102
+ end
103
+
104
+ def width
105
+ number(tk_call('::blt::bitmap', 'width', @id))
106
+ end
107
+
108
+ def source
109
+ tk_simple_list(tk_call('::blt::bitmap', 'source', @id))
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,83 @@
1
+ #
2
+ # tkextlib/blt/busy.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 Busy
12
+ extend TkCore
13
+ extend TkItemConfigMethod
14
+
15
+ TkCommandNames = ['::blt::busy'.freeze].freeze
16
+
17
+ ###########################
18
+
19
+ class Shield < TkWindow
20
+ def self.shield_path(win)
21
+ win = window(win) unless win.kind_of?(TkWindow)
22
+ if win.kind_of?(Tk::Toplevel)
23
+ win.path + '._Busy'
24
+ else
25
+ win.path + '_Busy'
26
+ end
27
+ end
28
+
29
+ def initialize(win)
30
+ @path = self.class.shield_path(win)
31
+ end
32
+ end
33
+
34
+ def self.shield_path(win)
35
+ Tk::BLT::Busy::Shield.shield_path(win)
36
+ end
37
+ end
38
+ end
39
+
40
+ class << Tk::BLT::Busy
41
+ def __item_config_cmd(win)
42
+ ['::blt::busy', 'configure', win]
43
+ end
44
+ private :__item_config_cmd
45
+
46
+ undef itemcget
47
+ undef itemcget_tkstring
48
+ alias configure itemconfigure
49
+ alias configinfo itemconfiginfo
50
+ alias current_configinfo current_itemconfiginfo
51
+ private :itemconfigure, :itemconfiginfo, :current_itemconfiginfo
52
+
53
+ ##################################
54
+
55
+ def hold(win, keys={})
56
+ tk_call('::blt::busy', 'hold', win, *hash_kv(keys))
57
+ end
58
+
59
+ def release(*wins)
60
+ tk_call('::blt::busy', 'release', *wins)
61
+ end
62
+
63
+ def forget(*wins)
64
+ tk_call('::blt::busy', 'forget', *wins)
65
+ end
66
+
67
+ def is_busy(pat=None)
68
+ tk_split_list(tk_call('::blt::busy', 'isbusy', pat))
69
+ end
70
+
71
+ def names(pat=None)
72
+ tk_split_list(tk_call('::blt::busy', 'names', pat))
73
+ end
74
+ alias windows names
75
+
76
+ def check(win)
77
+ bool(tk_call('::blt::busy', 'check', win))
78
+ end
79
+
80
+ def status(win)
81
+ bool(tk_call('::blt::busy', 'status', win))
82
+ end
83
+ end