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,56 @@
1
+ #
2
+ # tscale & tprogress widget
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+ require 'tkextlib/tile.rb'
7
+
8
+ module Tk
9
+ module Tile
10
+ class TScale < Tk::Scale
11
+ end
12
+ Scale = TScale
13
+
14
+ class TProgress < TScale
15
+ end
16
+ Progress = TProgress
17
+ end
18
+ end
19
+
20
+ class Tk::Tile::TScale < Tk::Scale
21
+ include Tk::Tile::TileWidget
22
+
23
+ if Tk::Tile::USE_TTK_NAMESPACE
24
+ TkCommandNames = ['::ttk::scale'.freeze].freeze
25
+ else
26
+ TkCommandNames = ['::tscale'.freeze].freeze
27
+ end
28
+ WidgetClassName = 'TScale'.freeze
29
+ WidgetClassNames[WidgetClassName] ||= self
30
+
31
+ def self.style(*args)
32
+ [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
33
+ end
34
+
35
+ alias identify ttk_identify
36
+ end
37
+
38
+ class Tk::Tile::TProgress < Tk::Tile::TScale
39
+ include Tk::Tile::TileWidget
40
+
41
+ if Tk::Tile::USE_TTK_NAMESPACE
42
+ TkCommandNames = ['::ttk::progress'.freeze].freeze
43
+ else
44
+ TkCommandNames = ['::tprogress'.freeze].freeze
45
+ end
46
+ WidgetClassName = 'TProgress'.freeze
47
+ WidgetClassNames[WidgetClassName] ||= self
48
+
49
+ def self.style(*args)
50
+ [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
51
+ end
52
+ end
53
+
54
+ #Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Scale, :TkScale)
55
+ Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tscale.rb',
56
+ :Ttk, Tk::Tile::Scale, :TkScale)
@@ -0,0 +1,63 @@
1
+ #
2
+ # tscrollbar widget
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+ require 'tkextlib/tile.rb'
7
+
8
+ module Tk
9
+ module Tile
10
+ class TScrollbar < Tk::Scrollbar
11
+ end
12
+ Scrollbar = TScrollbar
13
+ end
14
+ end
15
+
16
+ class Tk::Tile::TScrollbar < Tk::Scrollbar
17
+ include Tk::Tile::TileWidget
18
+
19
+ if Tk::Tile::USE_TTK_NAMESPACE
20
+ TkCommandNames = ['::ttk::scrollbar'.freeze].freeze
21
+ else
22
+ TkCommandNames = ['::tscrollbar'.freeze].freeze
23
+ end
24
+ WidgetClassName = 'TScrollbar'.freeze
25
+ WidgetClassNames[WidgetClassName] ||= self
26
+
27
+ def self.style(*args)
28
+ [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
29
+ end
30
+
31
+ alias identify ttk_identify
32
+ end
33
+
34
+ #Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Scrollbar, :TkScrollbar)
35
+ Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tscrollbar.rb',
36
+ :Ttk, Tk::Tile::Scrollbar, :TkScrollbar)
37
+
38
+ #######################################################################
39
+
40
+ class Tk::Tile::XScrollbar < Tk::Tile::TScrollbar
41
+ def create_self(keys)
42
+ keys = {} unless keys
43
+ keys['orient'] = 'horizontal'
44
+ super(keys)
45
+ end
46
+ private :create_self
47
+ end
48
+
49
+ class Tk::Tile::YScrollbar < Tk::Tile::TScrollbar
50
+ def create_self(keys)
51
+ keys = {} unless keys
52
+ keys['orient'] = 'vertical'
53
+ super(keys)
54
+ end
55
+ private :create_self
56
+ end
57
+
58
+ #Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::XScrollbar, :TkXScrollbar)
59
+ #Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::YScrollbar, :TkYScrollbar)
60
+ Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tscrollbar.rb',
61
+ :Ttk, Tk::Tile::XScrollbar, :TkXScrollbar)
62
+ Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tscrollbar.rb',
63
+ :Ttk, Tk::Tile::YScrollbar, :TkYScrollbar)
@@ -0,0 +1,34 @@
1
+ #
2
+ # tseparator widget
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+ require 'tkextlib/tile.rb'
7
+
8
+ module Tk
9
+ module Tile
10
+ class TSeparator < TkWindow
11
+ end
12
+ Separator = TSeparator
13
+ end
14
+ end
15
+
16
+ class Tk::Tile::TSeparator < TkWindow
17
+ include Tk::Tile::TileWidget
18
+
19
+ if Tk::Tile::USE_TTK_NAMESPACE
20
+ TkCommandNames = ['::ttk::separator'.freeze].freeze
21
+ else
22
+ TkCommandNames = ['::tseparator'.freeze].freeze
23
+ end
24
+ WidgetClassName = 'TSeparator'.freeze
25
+ WidgetClassNames[WidgetClassName] ||= self
26
+
27
+ def self.style(*args)
28
+ [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
29
+ end
30
+ end
31
+
32
+ #Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Separator, :TkSeparator)
33
+ Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tseparator.rb',
34
+ :Ttk, Tk::Tile::Separator, :TkSeparator)
@@ -0,0 +1,30 @@
1
+ #
2
+ # tsquare widget
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+ require 'tkextlib/tile.rb'
7
+
8
+ module Tk
9
+ module Tile
10
+ class TSquare < TkWindow
11
+ end
12
+ Square = TSquare
13
+ end
14
+ end
15
+
16
+ class Tk::Tile::TSquare < TkWindow
17
+ include Tk::Tile::TileWidget
18
+
19
+ if Tk::Tile::USE_TTK_NAMESPACE
20
+ TkCommandNames = ['::ttk::square'.freeze].freeze
21
+ else
22
+ TkCommandNames = ['::tsquare'.freeze].freeze
23
+ end
24
+ WidgetClassName = 'TSquare'.freeze
25
+ WidgetClassNames[WidgetClassName] ||= self
26
+
27
+ def self.style(*args)
28
+ [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
29
+ end
30
+ end
@@ -0,0 +1,18 @@
1
+ #
2
+ # TkDND (Tk Drag & Drop Extension) support
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+
7
+ # call setup script for general 'tkextlib' libraries
8
+ require 'tkextlib/setup.rb'
9
+
10
+ # call setup script
11
+ require 'tkextlib/tkDND/setup.rb'
12
+
13
+ module Tk
14
+ module TkDND
15
+ autoload :DND, 'tkextlib/tkDND/tkdnd'
16
+ autoload :Shape, 'tkextlib/tkDND/shape'
17
+ end
18
+ end
@@ -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,125 @@
1
+ #
2
+ # tkextlib/tkDND/shape.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/tkDND/setup.rb'
13
+
14
+ # TkPackage.require('Shape', '0.3')
15
+ TkPackage.require('Shape')
16
+
17
+ module Tk
18
+ module TkDND
19
+ module Shape
20
+ extend TkCore
21
+
22
+ PACKAGE_NAME = 'Shape'.freeze
23
+ def self.package_name
24
+ PACKAGE_NAME
25
+ end
26
+
27
+ =begin
28
+ def self.package_version
29
+ begin
30
+ TkPackage.require('Shape')
31
+ rescue
32
+ ''
33
+ end
34
+ end
35
+ =end
36
+ class << self
37
+ def package_version
38
+ Tk.tk_call('set', 'shape_version')
39
+ end
40
+ alias shape_version package_version
41
+
42
+ def package_patchlevel
43
+ Tk.tk_call('set', 'shape_patchLevel')
44
+ end
45
+ alias shape_patchlevel package_patchlevel
46
+
47
+ def version
48
+ tk_call('shape', 'version')
49
+ end
50
+ alias xshape_version version
51
+ end
52
+
53
+ ############################
54
+
55
+ def shape_bounds(kind=nil)
56
+ if kind
57
+ ret = tk_call('shape', 'bounds', @path, "-#{kind}")
58
+ else
59
+ ret = tk_call('shape', 'bounds', @path)
60
+ end
61
+ if ret == ""
62
+ nil
63
+ else
64
+ list(ret)
65
+ end
66
+ end
67
+
68
+ def shape_get(kind=nil)
69
+ if kind
70
+ list(tk_call('shape', 'get', @path, "-#{kind}"))
71
+ else
72
+ list(tk_call('shape', 'get', @path))
73
+ end
74
+ end
75
+
76
+ def shape_offset(x, y, kind=nil)
77
+ if kind
78
+ tk_call('shape', 'get', @path, "-#{kind}", x, y)
79
+ else
80
+ tk_call('shape', 'get', @path, x, y)
81
+ end
82
+ self
83
+ end
84
+
85
+ def _parse_shapespec_param(args)
86
+ cmd = []
87
+
88
+ kind_keys = ['bounding', 'clip', 'both']
89
+ offset_keys = ['offset']
90
+ srckind_keys = ['bitmap', 'rectangles', 'reset', 'test', 'window']
91
+
92
+ cmd << "-#{args.shift}" if kind_keys.member?(args[0].to_s)
93
+
94
+ if offset_keys.member?(args[0].to_s)
95
+ cmd << "-#{args.shift}"
96
+ cmd << args.shift # xOffset
97
+ cmd << args.shift # yOffset
98
+ end
99
+
100
+ if srckind_keys.member?(args[0].to_s)
101
+ cmd << "-#{args.shift}"
102
+ end
103
+
104
+ cmd.concat(args)
105
+
106
+ cmd
107
+ end
108
+ private :_parse_shapespec_param
109
+
110
+ def shape_set(*args) # ?kind? ?offset <x> <y>? srckind ?arg ...?
111
+ tk_call('shape', 'set', @path, *(_parse_shapespec_param(args)))
112
+ self
113
+ end
114
+
115
+ def shape_update(op, *args) # ?kind? ?offset <x> <y>? srckind ?arg ...?
116
+ tk_call('shape', 'update', @path, op, *(_parse_shapespec_param(args)))
117
+ self
118
+ end
119
+ end
120
+ end
121
+ end
122
+
123
+ class TkWindow
124
+ include Tk::TkDND::Shape
125
+ end
@@ -0,0 +1,182 @@
1
+ #
2
+ # tkextlib/tkDND/tkdnd.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/tkDND/setup.rb'
13
+
14
+ TkPackage.require('tkdnd')
15
+
16
+ module Tk
17
+ module TkDND
18
+ PACKAGE_NAME = 'tkdnd'.freeze
19
+ def self.package_name
20
+ PACKAGE_NAME
21
+ end
22
+
23
+ def self.package_version
24
+ begin
25
+ TkPackage.require('tkdnd')
26
+ rescue
27
+ ''
28
+ end
29
+ end
30
+
31
+ class DND_Subst < TkUtil::CallbackSubst
32
+ KEY_TBL = [
33
+ [ ?a, ?l, :actions ],
34
+ [ ?A, ?s, :action ],
35
+ [ ?b, ?L, :codes ],
36
+ [ ?c, ?s, :code ],
37
+ [ ?d, ?l, :descriptions ],
38
+ [ ?D, ?l, :data ],
39
+ [ ?L, ?l, :source_types ],
40
+ [ ?m, ?l, :modifiers ],
41
+ [ ?t, ?l, :types ],
42
+ [ ?T, ?s, :type ],
43
+ [ ?W, ?w, :widget ],
44
+ [ ?x, ?n, :x ],
45
+ [ ?X, ?n, :x_root ],
46
+ [ ?y, ?n, :y ],
47
+ [ ?Y, ?n, :y_root ],
48
+ nil
49
+ ]
50
+
51
+ PROC_TBL = [
52
+ [ ?n, TkComm.method(:num_or_str) ],
53
+ [ ?s, TkComm.method(:string) ],
54
+ [ ?l, TkComm.method(:list) ],
55
+ [ ?L, TkComm.method(:simplelist) ],
56
+ [ ?w, TkComm.method(:window) ],
57
+ nil
58
+ ]
59
+
60
+ =begin
61
+ # for Ruby m17n :: ?x --> String --> char-code ( getbyte(0) )
62
+ KEY_TBL.map!{|inf|
63
+ if inf.kind_of?(Array)
64
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
65
+ inf[1] = inf[1].getbyte(0) if inf[1].kind_of?(String)
66
+ end
67
+ inf
68
+ }
69
+
70
+ PROC_TBL.map!{|inf|
71
+ if inf.kind_of?(Array)
72
+ inf[0] = inf[0].getbyte(0) if inf[0].kind_of?(String)
73
+ end
74
+ inf
75
+ }
76
+ =end
77
+
78
+ # setup tables
79
+ _setup_subst_table(KEY_TBL, PROC_TBL);
80
+ end
81
+
82
+ module DND
83
+ def self.version
84
+ begin
85
+ TkPackage.require('tkdnd')
86
+ rescue
87
+ ''
88
+ end
89
+ end
90
+
91
+ def dnd_bindtarget_info(type=nil, event=nil)
92
+ if event
93
+ procedure(tk_call('dnd', 'bindtarget', @path, type, event))
94
+ elsif type
95
+ procedure(tk_call('dnd', 'bindtarget', @path, type))
96
+ else
97
+ simplelist(tk_call('dnd', 'bindtarget', @path))
98
+ end
99
+ end
100
+
101
+ #def dnd_bindtarget(type, event, cmd=Proc.new, prior=50, *args)
102
+ # event = tk_event_sequence(event)
103
+ # if prior.kind_of?(Numeric)
104
+ # tk_call('dnd', 'bindtarget', @path, type, event,
105
+ # install_bind_for_event_class(DND_Subst, cmd, *args),
106
+ # prior)
107
+ # else
108
+ # tk_call('dnd', 'bindtarget', @path, type, event,
109
+ # install_bind_for_event_class(DND_Subst, cmd, prior, *args))
110
+ # end
111
+ # self
112
+ #end
113
+ def dnd_bindtarget(type, event, *args)
114
+ # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
115
+ if TkComm._callback_entry?(args[0]) || !block_given?
116
+ cmd = args.shift
117
+ else
118
+ cmd = Proc.new
119
+ end
120
+
121
+ prior = 50
122
+ prior = args.shift unless args.empty?
123
+
124
+ event = tk_event_sequence(event)
125
+ if prior.kind_of?(Numeric)
126
+ tk_call('dnd', 'bindtarget', @path, type, event,
127
+ install_bind_for_event_class(DND_Subst, cmd, *args),
128
+ prior)
129
+ else
130
+ tk_call('dnd', 'bindtarget', @path, type, event,
131
+ install_bind_for_event_class(DND_Subst, cmd, prior, *args))
132
+ end
133
+ self
134
+ end
135
+
136
+ def dnd_cleartarget
137
+ tk_call('dnd', 'cleartarget', @path)
138
+ self
139
+ end
140
+
141
+ def dnd_bindsource_info(type=nil)
142
+ if type
143
+ procedure(tk_call('dnd', 'bindsource', @path, type))
144
+ else
145
+ simplelist(tk_call('dnd', 'bindsource', @path))
146
+ end
147
+ end
148
+
149
+ #def dnd_bindsource(type, cmd=Proc.new, prior=None)
150
+ # tk_call('dnd', 'bindsource', @path, type, cmd, prior)
151
+ # self
152
+ #end
153
+ def dnd_bindsource(type, *args)
154
+ # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
155
+ if TkComm._callback_entry?(args[0]) || !block_given?
156
+ cmd = args.shift
157
+ else
158
+ cmd = Proc.new
159
+ end
160
+
161
+ args = [None] if args.empty
162
+
163
+ tk_call('dnd', 'bindsource', @path, type, cmd, *args)
164
+ self
165
+ end
166
+
167
+ def dnd_clearsource()
168
+ tk_call('dnd', 'clearsource', @path)
169
+ self
170
+ end
171
+
172
+ def dnd_drag(keys=nil)
173
+ tk_call('dnd', 'drag', @path, *hash_kv(keys))
174
+ self
175
+ end
176
+ end
177
+ end
178
+ end
179
+
180
+ class TkWindow
181
+ include Tk::TkDND::DND
182
+ end