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,158 @@
1
+ #
2
+ # tkextlib/tcllib/autoscroll.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Provides for a scrollbar to automatically mapped and unmapped as needed
7
+ #
8
+ # (The following is the original description of the library.)
9
+ #
10
+ # This package allows scrollbars to be mapped and unmapped as needed
11
+ # depending on the size and content of the scrollbars scrolled widget.
12
+ # The scrollbar must be managed by either pack or grid, other geometry
13
+ # managers are not supported.
14
+ #
15
+ # When managed by pack, any geometry changes made in the scrollbars parent
16
+ # between the time a scrollbar is unmapped, and when it is mapped will be
17
+ # lost. It is an error to destroy any of the scrollbars siblings while the
18
+ # scrollbar is unmapped. When managed by grid, if anything becomes gridded
19
+ # in the same row and column the scrollbar occupied it will be replaced by
20
+ # the scrollbar when remapped.
21
+ #
22
+ # This package may be used on any scrollbar-like widget as long as it
23
+ # supports the set subcommand in the same style as scrollbar. If the set
24
+ # subcommand is not used then this package will have no effect.
25
+ #
26
+
27
+ require 'tk'
28
+ require 'tk/scrollbar'
29
+ require 'tkextlib/tcllib.rb'
30
+
31
+ module Tk
32
+ module Tcllib
33
+ module Autoscroll
34
+ PACKAGE_NAME = 'autoscroll'.freeze
35
+ def self.package_name
36
+ PACKAGE_NAME
37
+ end
38
+
39
+ def self.package_version
40
+ begin
41
+ TkPackage.require('autoscroll')
42
+ rescue
43
+ ''
44
+ end
45
+ end
46
+
47
+ def self.not_available
48
+ fail RuntimeError, "'tkextlib/tcllib/autoscroll' extension is not available on your current environment."
49
+ end
50
+
51
+ def self.autoscroll(win)
52
+ Tk::Tcllib::Autoscroll.not_available
53
+ end
54
+
55
+ def self.unautoscroll(win)
56
+ Tk::Tcllib::Autoscroll.not_available
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ module Tk
63
+ module Scrollable
64
+ def autoscroll(mode = nil)
65
+ case mode
66
+ when :x, 'x'
67
+ if @xscrollbar
68
+ Tk::Tcllib::Autoscroll.autoscroll(@xscrollbar)
69
+ end
70
+ when :y, 'y'
71
+ if @yscrollbar
72
+ Tk::Tcllib::Autoscroll.autoscroll(@yscrollbar)
73
+ end
74
+ when nil, :both, 'both'
75
+ if @xscrollbar
76
+ Tk::Tcllib::Autoscroll.autoscroll(@xscrollbar)
77
+ end
78
+ if @yscrollbar
79
+ Tk::Tcllib::Autoscroll.autoscroll(@yscrollbar)
80
+ end
81
+ else
82
+ fail ArgumentError, "'x', 'y' or 'both' (String or Symbol) is expected"
83
+ end
84
+ self
85
+ end
86
+ def unautoscroll(mode = nil)
87
+ case mode
88
+ when :x, 'x'
89
+ if @xscrollbar
90
+ Tk::Tcllib::Autoscroll.unautoscroll(@xscrollbar)
91
+ end
92
+ when :y, 'y'
93
+ if @yscrollbar
94
+ Tk::Tcllib::Autoscroll.unautoscroll(@yscrollbar)
95
+ end
96
+ when nil, :both, 'both'
97
+ if @xscrollbar
98
+ Tk::Tcllib::Autoscroll.unautoscroll(@xscrollbar)
99
+ end
100
+ if @yscrollbar
101
+ Tk::Tcllib::Autoscroll.unautoscroll(@yscrollbar)
102
+ end
103
+ else
104
+ fail ArgumentError, "'x', 'y' or 'both' (String or Symbol) is expected"
105
+ end
106
+ self
107
+ end
108
+ end
109
+ end
110
+
111
+ class Tk::Scrollbar
112
+ def autoscroll
113
+ # Arranges for the already existing scrollbar to be mapped
114
+ # and unmapped as needed.
115
+ #tk_call_without_enc('::autoscroll::autoscroll', @path)
116
+ Tk::Tcllib::Autoscroll.autoscroll(self)
117
+ self
118
+ end
119
+ def unautoscroll
120
+ # Returns the scrollbar to its original static state.
121
+ #tk_call_without_enc('::autoscroll::unautoscroll', @path)
122
+ Tk::Tcllib::Autoscroll.unautoscroll(self)
123
+ self
124
+ end
125
+ end
126
+
127
+ # TkPackage.require('autoscroll', '1.0')
128
+ # TkPackage.require('autoscroll', '1.1')
129
+ TkPackage.require('autoscroll')
130
+
131
+ module Tk
132
+ module Tcllib
133
+ class << Autoscroll
134
+ undef not_available
135
+ end
136
+
137
+ module Autoscroll
138
+ extend TkCore
139
+ def self.autoscroll(win)
140
+ tk_call_without_enc('::autoscroll::autoscroll', win.path)
141
+ end
142
+
143
+ def self.unautoscroll(win)
144
+ tk_call_without_enc('::autoscroll::unautoscroll', win.path)
145
+ end
146
+
147
+ def self.wrap
148
+ # v1.1
149
+ tk_call_without_enc('::autoscroll::wrap')
150
+ end
151
+
152
+ def self.unwrap
153
+ # v1.1
154
+ tk_call_without_enc('::autoscroll::unwrap')
155
+ end
156
+ end
157
+ end
158
+ end
@@ -0,0 +1,160 @@
1
+ #
2
+ # tkextlib/tcllib/ctext.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Overloads the text widget and provides new commands
7
+ #
8
+
9
+ require 'tk'
10
+ require 'tk/text'
11
+ require 'tkextlib/tcllib.rb'
12
+
13
+ # TkPackage.require('ctext', '3.1')
14
+ TkPackage.require('ctext')
15
+
16
+ module Tk
17
+ module Tcllib
18
+ class CText < Tk::Text
19
+ PACKAGE_NAME = 'ctext'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('ctext')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ class Tk::Tcllib::CText
36
+ TkCommandNames = ['ctext'.freeze].freeze
37
+ WidgetClassName = 'Ctext'.freeze
38
+ WidgetClassNames[WidgetClassName] ||= self
39
+
40
+ def create_self(keys)
41
+ if keys and keys != None
42
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
43
+ *hash_kv(keys, true))
44
+ else
45
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
46
+ end
47
+ end
48
+ private :create_self
49
+
50
+ def __strval_optkeys
51
+ super() << 'linemapfg' << 'linemapbg' <<
52
+ 'linemap_select_fg' << 'linemap_select_bg'
53
+ end
54
+ private :__strval_optkeys
55
+
56
+ def __boolval_optkeys
57
+ super() << 'highlight' << 'linemap_markable'
58
+ end
59
+ private :__boolval_optkeys
60
+
61
+ def append(*args)
62
+ tk_send('append', *args)
63
+ end
64
+
65
+ def copy
66
+ tk_send('copy')
67
+ end
68
+
69
+ def cut
70
+ tk_send('cut')
71
+ end
72
+
73
+ def fast_delete(*args)
74
+ tk_send('fastdelete', *args)
75
+ end
76
+
77
+ def fast_insert(*args)
78
+ tk_send('fastinsert', *args)
79
+ end
80
+
81
+ def highlight(*args)
82
+ tk_send('highlight', *args)
83
+ end
84
+
85
+ def paste
86
+ tk_send('paste')
87
+ end
88
+
89
+ def edit(*args)
90
+ tk_send('edit', *args)
91
+ end
92
+
93
+ def add_highlight_class(klass, col, *keywords)
94
+ tk_call('ctext::addHighlightClass', @path, klass, col, keywords.flatten)
95
+ self
96
+ end
97
+
98
+ def add_highlight_class_for_special_chars(klass, col, *chrs)
99
+ tk_call('ctext::addHighlightClassForSpecialChars',
100
+ @path, klass, col, chrs.join(''))
101
+ self
102
+ end
103
+
104
+ def add_highlight_class_for_regexp(klass, col, tcl_regexp)
105
+ tk_call('ctext::addHighlightClassForRegexp',
106
+ @path, klass, col, tcl_regexp)
107
+ self
108
+ end
109
+
110
+ def add_highlight_class_with_only_char_start(klass, col, chr)
111
+ tk_call('ctext::addHighlightClassWithOnlyCharStart',
112
+ @path, klass, col, chr)
113
+ self
114
+ end
115
+
116
+ def clear_highlight_classes
117
+ tk_call('ctext::clearHighlightClasses', @path)
118
+ self
119
+ end
120
+
121
+ def get_highlight_classes
122
+ tk_split_simplelist(tk_call('ctext::getHighlightClasses', @path))
123
+ end
124
+
125
+ def delete_highlight_class(klass)
126
+ tk_call('ctext::deleteHighlightClass', @path, klass)
127
+ self
128
+ end
129
+
130
+ def enable_C_comments
131
+ tk_call('ctext::enableComments', @path)
132
+ self
133
+ end
134
+
135
+ def disable_C_comments
136
+ tk_call('ctext::disableComments', @path)
137
+ self
138
+ end
139
+
140
+ def find_next_char(idx, chr)
141
+ tk_call('ctext::findNextChar', @path, idx, chr)
142
+ end
143
+
144
+ def find_next_space(idx)
145
+ tk_call('ctext::findNextSpace', @path, idx)
146
+ end
147
+
148
+ def find_previous_space(idx)
149
+ tk_call('ctext::findPreviousSpace', @path, idx)
150
+ end
151
+
152
+ def set_update_proc(cmd=Proc.new)
153
+ tk_call('proc', 'ctext::update', '', cmd)
154
+ self
155
+ end
156
+
157
+ def modified?(mode)
158
+ bool(tk_call('ctext::modified', @path, mode))
159
+ end
160
+ end
@@ -0,0 +1,97 @@
1
+ #
2
+ # tkextlib/tcllib/cursor.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Procedures to handle CURSOR data
7
+ #
8
+
9
+ require 'tk'
10
+ require 'tkextlib/tcllib.rb'
11
+
12
+ module Tk
13
+ module Tcllib
14
+ module Cursor
15
+ PACKAGE_NAME = 'cursor'.freeze
16
+ def self.package_name
17
+ PACKAGE_NAME
18
+ end
19
+
20
+ def self.package_version
21
+ begin
22
+ TkPackage.require('cursor')
23
+ rescue
24
+ ''
25
+ end
26
+ end
27
+
28
+ def self.not_available
29
+ fail RuntimeError, "'tkextlib/tcllib/cursor' extension is not available on your current environment."
30
+ end
31
+
32
+ def self.cursor_display(win=None)
33
+ Tk::Tcllib::Cursor.not_available
34
+ end
35
+
36
+ def self.cursor_propagate(win, cursor)
37
+ Tk::Tcllib::Cursor.not_available
38
+ end
39
+
40
+ def self.cursor_restore(win, cursor = None)
41
+ Tk::Tcllib::Cursor.not_available
42
+ end
43
+ end
44
+ end
45
+
46
+ def self.cursor_display(parent=None)
47
+ # Pops up a dialog with a listbox containing all the cursor names.
48
+ # Selecting a cursor name will display it in that dialog.
49
+ # This is simply for viewing any available cursors on the platform .
50
+ #tk_call_without_enc('::cursor::display', parent)
51
+ Tk::Tcllib::Cursor.cursor_display(parent)
52
+ end
53
+ end
54
+
55
+ class TkWindow
56
+ def cursor_propagate(cursor)
57
+ # Sets the cursor for self and all its descendants to cursor.
58
+ #tk_call_without_enc('::cursor::propagate', @path, cursor)
59
+ Tk::Tcllib::Cursor.cursor_propagate(self, cursor)
60
+ end
61
+ def cursor_restore(cursor = None)
62
+ # Restore the original or previously set cursor for self and all its
63
+ # descendants. If cursor is specified, that will be used if on any
64
+ # widget that did not have a preset cursor (set by a previous call
65
+ # to TkWindow#cursor_propagate).
66
+ #tk_call_without_enc('::cursor::restore', @path, cursor)
67
+ Tk::Tcllib::Cursor.cursor_restore(self, cursor)
68
+ end
69
+ end
70
+
71
+ # TkPackage.require('cursor', '0.1')
72
+ TkPackage.require('cursor')
73
+
74
+ module Tk
75
+ module Tcllib
76
+ class << Cursor
77
+ undef not_available
78
+ end
79
+
80
+ module Cursor
81
+ extend TkCore
82
+ def self.cursor_display(win=None)
83
+ tk_call_without_enc('::cursor::display', _epath(win))
84
+ end
85
+
86
+ def self.cursor_propagate(win, cursor)
87
+ #tk_call_without_enc('::cursor::propagate', win.path, cursor)
88
+ tk_call_without_enc('::cursor::propagate', _epath(win), cursor)
89
+ end
90
+
91
+ def self.cursor_restore(win, cursor = None)
92
+ #tk_call_without_enc('::cursor::restore', win.path, cursor)
93
+ tk_call_without_enc('::cursor::restore', _epath(win), cursor)
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,57 @@
1
+ #
2
+ # tkextlib/tcllib/datefield.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Tk datefield widget
7
+ #
8
+ # (The following is the original description of the library.)
9
+ #
10
+ # The datefield package provides the datefield widget which is an enhanced
11
+ # text entry widget for the purpose of date entry. Only valid dates of the
12
+ # form MM/DD/YYYY can be entered.
13
+ #
14
+ # The datefield widget is, in fact, just an entry widget with specialized
15
+ # bindings. This means all the command and options for an entry widget apply
16
+ # equally here.
17
+
18
+ require 'tk'
19
+ require 'tk/entry'
20
+ require 'tkextlib/tcllib.rb'
21
+
22
+ # TkPackage.require('datefield', '0.1')
23
+ TkPackage.require('datefield')
24
+
25
+ module Tk
26
+ module Tcllib
27
+ class Datefield < Tk::Entry
28
+ PACKAGE_NAME = 'datefield'.freeze
29
+ def self.package_name
30
+ PACKAGE_NAME
31
+ end
32
+
33
+ def self.package_version
34
+ begin
35
+ TkPackage.require('datefield')
36
+ rescue
37
+ ''
38
+ end
39
+ end
40
+ end
41
+ DateField = Datefield
42
+ end
43
+ end
44
+
45
+ class Tk::Tcllib::Datefield
46
+ TkCommandNames = ['::datefield::datefield'.freeze].freeze
47
+
48
+ def create_self(keys)
49
+ if keys and keys != None
50
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
51
+ *hash_kv(keys, true))
52
+ else
53
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
54
+ end
55
+ end
56
+ private :create_self
57
+ end