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,13 @@
1
+ #
2
+ # TkHtml support
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ # call setup script for general 'tkextlib' libraries
7
+ require 'tkextlib/setup.rb'
8
+
9
+ # call setup script
10
+ require 'tkextlib/tkHTML/setup.rb'
11
+
12
+ # load library
13
+ require 'tkextlib/tkHTML/htmlwidget'
@@ -0,0 +1,453 @@
1
+ #
2
+ # tkextlib/tkHTML/htmlwidget.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+
8
+ # call setup script for general 'tkextlib' libraries
9
+ require 'tkextlib/setup.rb'
10
+
11
+ # call setup script
12
+ require 'tkextlib/tkHTML/setup.rb'
13
+
14
+ # TkPackage.require('Tkhtml', '2.0')
15
+ TkPackage.require('Tkhtml')
16
+
17
+ module Tk
18
+ class HTML_Widget < TkWindow
19
+ PACKAGE_NAME = 'Tkhtml'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('Tkhtml')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+
32
+ class ClippingWindow < TkWindow
33
+ end
34
+ end
35
+ end
36
+
37
+ class Tk::HTML_Widget::ClippingWindow
38
+ WidgetClassName = 'HtmlClip'.freeze
39
+ WidgetClassNames[WidgetClassName] ||= self
40
+
41
+ HtmlClip_TBL = TkCore::INTERP.create_table
42
+
43
+ TkCore::INTERP.init_ip_env{
44
+ HtmlClip_TBL.mutex.synchronize{ HtmlClip_TBL.clear }
45
+ }
46
+
47
+ def self.new(parent, keys={})
48
+ if parent.kind_of?(Hash)
49
+ keys = TkComm._symbolkey2str(parent)
50
+ parent = keys.delete('parent')
51
+ end
52
+
53
+ if parent.kind_of?(String)
54
+ ppath = parent.path
55
+ elsif parent
56
+ ppath = parent
57
+ else
58
+ ppath = ''
59
+ end
60
+ HtmlClip_TBL.mutex.synchronize{
61
+ return HtmlClip_TBL[ppath] if HtmlClip_TBL[ppath]
62
+ }
63
+
64
+ widgetname = keys.delete('widgetname')
65
+ if widgetname =~ /^(.*)\.[^.]+$/
66
+ ppath2 = $1
67
+ if ppath2[0] != ?.
68
+ ppath2 = ppath + '.' + ppath2
69
+ end
70
+ HtmlClip_TBL.mutex.synchronize{
71
+ return HtmlClip_TBL[ppath2] if HtmlClip_TBL[ppath2]
72
+ }
73
+
74
+ ppath = ppath2
75
+ end
76
+
77
+ parent = TkComm._genobj_for_tkwidget(ppath)
78
+ unless parent.kind_of?(Tk::HTML_Widget)
79
+ fail ArgumentError, "parent must be a Tk::HTML_Widget instance"
80
+ end
81
+
82
+ super(parent)
83
+ end
84
+
85
+ def initialize(parent)
86
+ @parent = parent
87
+ @ppath = parent.path
88
+ @path = @id = @ppath + '.x'
89
+ HtmlClip_TBL.mutex.synchronize{
90
+ HtmlClip_TBL[@ppath] = self
91
+ }
92
+ end
93
+
94
+ def method_missing(m, *args, &b)
95
+ @parent.__send__(m, *args, &b)
96
+ end
97
+ end
98
+
99
+ class Tk::HTML_Widget
100
+ include Scrollable
101
+
102
+ TkCommandNames = ['html'.freeze].freeze
103
+ WidgetClassName = 'Html'.freeze
104
+ WidgetClassNames[WidgetClassName] ||= self
105
+
106
+ def create_self(keys)
107
+ if keys and keys != None
108
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
109
+ *hash_kv(keys, true))
110
+ else
111
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
112
+ end
113
+ end
114
+ private :create_self
115
+
116
+ def __strval_optkeys
117
+ super() << 'base' << 'selectioncolor' << 'unvisitedcolor' << 'visitedcolor'
118
+ end
119
+ private :__strval_optkeys
120
+
121
+ ###################################
122
+ # class methods
123
+ ###################################
124
+ def self.reformat(src, dst, txt)
125
+ tk_call('html', 'reformat', src, dst, txt)
126
+ end
127
+
128
+ def self.url_join(*args) # args := sheme authority path query fragment
129
+ tk_call('html', 'urljoin', *args)
130
+ end
131
+
132
+ def self.url_split(uri)
133
+ tk_call('html', 'urlsplit', uri)
134
+ end
135
+
136
+ def self.lockcopy(src, dst)
137
+ tk_call('html', 'lockcopy', src, dst)
138
+ end
139
+
140
+ def self.gzip_file(file, dat)
141
+ tk_call('html', 'gzip', 'file', file, dat)
142
+ end
143
+
144
+ def self.gunzip_file(file, dat)
145
+ tk_call('html', 'gunzip', 'file', filet)
146
+ end
147
+
148
+ def self.gzip_data(dat)
149
+ tk_call('html', 'gzip', 'data', file, dat)
150
+ end
151
+
152
+ def self.gunzip_data(dat)
153
+ tk_call('html', 'gunzip', 'data', filet)
154
+ end
155
+
156
+ def self.base64_encode(dat)
157
+ tk_call('html', 'base64', 'encode', dat)
158
+ end
159
+
160
+ def self.base64_decode(dat)
161
+ tk_call('html', 'base64', 'encode', dat)
162
+ end
163
+
164
+ def self.text_format(dat, len)
165
+ tk_call('html', 'text', 'format', dat, len)
166
+ end
167
+
168
+ def self.xor(cmd, *args)
169
+ tk_call('html', 'xor', cmd, *args)
170
+ end
171
+
172
+ def self.stdchan(cmd, channel)
173
+ tk_call('html', 'stdchan', cmd, channel)
174
+ end
175
+
176
+ def self.crc32(data)
177
+ tk_call('html', 'crc32', data)
178
+ end
179
+
180
+ ###################################
181
+ # instance methods
182
+ ###################################
183
+ def clipping_window
184
+ ClippingWindow.new(self)
185
+ end
186
+ alias clipwin clipping_window
187
+ alias htmlclip clipping_window
188
+
189
+ def bgimage(image, tid=None)
190
+ tk_send('bgimage', image, tid)
191
+ self
192
+ end
193
+
194
+ def clear()
195
+ tk_send('clear')
196
+ self
197
+ end
198
+
199
+ def coords(index=None, percent=None)
200
+ tk_send('coords', index, percent)
201
+ end
202
+
203
+ def forminfo(*args)
204
+ tk_send('forminfo', *args)
205
+ end
206
+ alias form_info forminfo
207
+
208
+ def href(x, y)
209
+ simplelist(tk_send('href', x, y))
210
+ end
211
+
212
+ def image_add(id, img)
213
+ tk_send('imageadd', id, img)
214
+ self
215
+ end
216
+
217
+ def image_at(x, y)
218
+ tk_send('imageat', x, y)
219
+ end
220
+
221
+ def images()
222
+ list(tk_send('images'))
223
+ end
224
+
225
+ def image_set(id, num)
226
+ tk_send('imageset', id, num)
227
+ self
228
+ end
229
+
230
+ def image_update(id, imgs)
231
+ tk_send('imageupdate', id, imgs)
232
+ self
233
+ end
234
+
235
+ def index(idx, count=None, unit=None)
236
+ tk_send('index', idx, count, unit)
237
+ end
238
+
239
+ def insert_cursor(idx)
240
+ tk_send('insert', idx)
241
+ end
242
+
243
+ def names()
244
+ simple_list(tk_send('names'))
245
+ end
246
+
247
+ def on_screen(id, x, y)
248
+ bool(tk_send('onscreen', id, x, y))
249
+ end
250
+
251
+ def over(x, y)
252
+ list(tk_send('over', x, y))
253
+ end
254
+
255
+ def over_markup(x, y)
256
+ list(tk_send('over', x, y, '-muponly'))
257
+ end
258
+
259
+ def over_attr(x, y, attrs)
260
+ list(tk_send('overattr', x, y, attrs))
261
+ end
262
+
263
+ def parse(txt)
264
+ tk_send('parse', txt)
265
+ self
266
+ end
267
+
268
+ def resolver(*uri_args)
269
+ tk_send('resolver', *uri_args)
270
+ end
271
+
272
+ def selection_clear()
273
+ tk_send('selection', 'clear')
274
+ self
275
+ end
276
+
277
+ def selection_set(first, last)
278
+ tk_send('selection', 'set', first, last)
279
+ self
280
+ end
281
+
282
+ def refresh(*opts)
283
+ tk_send('refresh', *opts)
284
+ end
285
+
286
+ def layout()
287
+ tk_send('layout')
288
+ end
289
+
290
+ def sizewindow(*args)
291
+ tk_send('sizewindow', *args)
292
+ end
293
+
294
+ def postscript(*args)
295
+ tk_send('postscript', *args)
296
+ end
297
+
298
+ def source()
299
+ tk_send('source')
300
+ end
301
+
302
+ def plain_text(first, last)
303
+ tk_send('text', 'ascii', first, last)
304
+ end
305
+ alias ascii_text plain_text
306
+ alias text_ascii plain_text
307
+
308
+ def text_delete(first, last)
309
+ tk_send('text', 'delete', first, last)
310
+ self
311
+ end
312
+
313
+ def html_text(first, last)
314
+ tk_send('text', 'html', first, last)
315
+ end
316
+ alias text_html html_text
317
+
318
+ def text_insert(idx, txt)
319
+ tk_send('text', 'insert', idx, txt)
320
+ self
321
+ end
322
+
323
+ def break_text(idx)
324
+ tk_send('text', 'break', idx)
325
+ end
326
+ alias text_break break_text
327
+
328
+ def text_find(txt, *args)
329
+ tk_send('text', 'find', txt, *args)
330
+ end
331
+
332
+ def text_table(idx, imgs=None, attrs=None)
333
+ tk_send('text', 'table', idx, imgs, attrs)
334
+ end
335
+
336
+ def token_append(tag, *args)
337
+ tk_send('token', 'append', tag, *args)
338
+ self
339
+ end
340
+
341
+ def token_delete(first, last=None)
342
+ tk_send('token', 'delete', first, last)
343
+ self
344
+ end
345
+
346
+ def token_define(*args)
347
+ tk_send('token', 'defile', *args)
348
+ self
349
+ end
350
+
351
+ def token_find(tag, *args)
352
+ list(tk_send('token', 'find', tag, *args))
353
+ end
354
+
355
+ def token_get(first, last=None)
356
+ list(tk_send('token', 'get', first, last))
357
+ end
358
+
359
+ def token_list(first, last=None)
360
+ list(tk_send('token', 'list', first, last))
361
+ end
362
+
363
+ def token_markup(first, last=None)
364
+ list(tk_send('token', 'markup', first, last))
365
+ end
366
+
367
+ def token_DOM(first, last=None)
368
+ list(tk_send('token', 'domtokens', first, last))
369
+ end
370
+ alias token_dom token_DOM
371
+ alias token_domtokens token_DOM
372
+ alias token_dom_tokens token_DOM
373
+
374
+ def token_get_end(idx)
375
+ tk_send('token', 'getend', idx)
376
+ end
377
+ alias token_getend token_get_end
378
+
379
+ def token_offset(start, num1, num2)
380
+ list(tk_send('token', 'offset', start, num1, num2))
381
+ end
382
+
383
+ def token_get_attr(idx, name=None)
384
+ list(tk_send('token', 'attr', idx, name))
385
+ end
386
+
387
+ def token_set_attr(idx, name=None, val=None)
388
+ tk_send('token', 'attr', idx, name, val)
389
+ self
390
+ end
391
+
392
+ def token_handler(tag, cmd=nil, &b)
393
+ cmd = Proc.new(&b) if !cmd && b
394
+ if cmd
395
+ tk_send('token', 'handler', tag, cmd)
396
+ return self
397
+ else
398
+ return tk_send('token', 'handler', tag)
399
+ end
400
+ end
401
+
402
+ def token_insert(idx, tag, *args)
403
+ tk_send('token', 'insert', idx, tag, *args)
404
+ self
405
+ end
406
+
407
+ def token_attrs(*args)
408
+ list(tk_send('token', 'attrs', *args))
409
+ end
410
+
411
+ def token_unique(*args)
412
+ list(tk_send('token', 'unique', *args))
413
+ end
414
+
415
+ def token_on_events(*args)
416
+ list(tk_send('token', 'onEvents', *args))
417
+ end
418
+
419
+ def dom_nameidx(tag, name)
420
+ number(tk_send('dom', 'nameidx', tag, name))
421
+ end
422
+ alias dom_name_index dom_nameidx
423
+
424
+ def dom_radioidx(tag, name)
425
+ number(tk_send('dom', 'radioidx', tag, name))
426
+ end
427
+ alias dom_radio_index dom_radioidx
428
+
429
+ def dom_id(*spec)
430
+ tk_send('dom', 'id', *spec)
431
+ end
432
+
433
+ def dom_ids(*spec)
434
+ list(tk_send('dom', 'ids', *spec))
435
+ end
436
+
437
+ def dom_value(*spec)
438
+ list(tk_send('dom', 'value', *spec))
439
+ end
440
+
441
+ def dom_attr(idx)
442
+ tk_send('dom', 'attr', idx)
443
+ end
444
+
445
+ def dom_formel(name)
446
+ tk_send('dom', 'formel', name)
447
+ end
448
+ alias dom_form_element dom_formel
449
+
450
+ def dom_tree(idx, val)
451
+ list(tk_send('dom', 'tree', idx, val))
452
+ end
453
+ end