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,32 @@
1
+ #
2
+ # tk/checkbutton.rb : treat checkbutton widget
3
+ #
4
+ require 'tk'
5
+ require 'tk/radiobutton'
6
+
7
+ class Tk::CheckButton<Tk::RadioButton
8
+ TkCommandNames = ['checkbutton'.freeze].freeze
9
+ WidgetClassName = 'Checkbutton'.freeze
10
+ WidgetClassNames[WidgetClassName] ||= self
11
+ #def create_self(keys)
12
+ # if keys and keys != None
13
+ # tk_call_without_enc('checkbutton', @path, *hash_kv(keys, true))
14
+ # else
15
+ # tk_call_without_enc('checkbutton', @path)
16
+ # end
17
+ #end
18
+ #private :create_self
19
+
20
+ def toggle
21
+ tk_send_without_enc('toggle')
22
+ self
23
+ end
24
+ end
25
+
26
+ Tk::Checkbutton = Tk::CheckButton
27
+ #TkCheckButton = Tk::CheckButton unless Object.const_defined? :TkCheckButton
28
+ #TkCheckbutton = Tk::Checkbutton unless Object.const_defined? :TkCheckbutton
29
+ #Tk.__set_toplevel_aliases__(:Tk, Tk::CheckButton,
30
+ # :TkCheckButton, :TkCheckbutton)
31
+ Tk.__set_loaded_toplevel_aliases__('tk/checkbutton.rb', :Tk, Tk::CheckButton,
32
+ :TkCheckButton, :TkCheckbutton)
@@ -0,0 +1,75 @@
1
+ #
2
+ # tk/clipboard.rb : methods to treat clipboard
3
+ #
4
+ require 'tk'
5
+
6
+ module TkClipboard
7
+ include Tk
8
+ extend Tk
9
+
10
+ TkCommandNames = ['clipboard'.freeze].freeze
11
+
12
+ def self.clear(win=nil)
13
+ if win
14
+ tk_call_without_enc('clipboard', 'clear', '-displayof', win)
15
+ else
16
+ tk_call_without_enc('clipboard', 'clear')
17
+ end
18
+ end
19
+ def self.clear_on_display(win)
20
+ tk_call_without_enc('clipboard', 'clear', '-displayof', win)
21
+ end
22
+
23
+ def self.get(type=nil)
24
+ if type
25
+ tk_call_without_enc('clipboard', 'get', '-type', type)
26
+ else
27
+ tk_call_without_enc('clipboard', 'get')
28
+ end
29
+ end
30
+ def self.get_on_display(win, type=nil)
31
+ if type
32
+ tk_call_without_enc('clipboard', 'get', '-displayof', win, '-type', type)
33
+ else
34
+ tk_call_without_enc('clipboard', 'get', '-displayof', win)
35
+ end
36
+ end
37
+
38
+ def self.set(data, keys=nil)
39
+ clear
40
+ append(data, keys)
41
+ end
42
+ def self.set_on_display(win, data, keys=nil)
43
+ clear(win)
44
+ append_on_display(win, data, keys)
45
+ end
46
+
47
+ def self.append(data, keys=nil)
48
+ args = ['clipboard', 'append']
49
+ args.concat(hash_kv(keys))
50
+ args.concat(['--', data])
51
+ tk_call(*args)
52
+ end
53
+ def self.append_on_display(win, data, keys=nil)
54
+ args = ['clipboard', 'append', '-displayof', win]
55
+ args.concat(hash_kv(keys))
56
+ args.concat(['--', data])
57
+ tk_call(*args)
58
+ end
59
+
60
+ def clear
61
+ TkClipboard.clear_on_display(self)
62
+ self
63
+ end
64
+ def get(type=nil)
65
+ TkClipboard.get_on_display(self, type)
66
+ end
67
+ def set(data, keys=nil)
68
+ TkClipboard.set_on_display(self, data, keys)
69
+ self
70
+ end
71
+ def append(data, keys=nil)
72
+ TkClipboard.append_on_display(self, data, keys)
73
+ self
74
+ end
75
+ end
@@ -0,0 +1,71 @@
1
+ #
2
+ # tk/clock.rb : methods for clock command
3
+ #
4
+ require 'tk'
5
+
6
+ module Tk
7
+ module Clock
8
+ include Tk
9
+ extend TkCore
10
+
11
+ def self.add(clk, *args)
12
+ tk_call_without_enc('clock','add', clk, *args).to_i
13
+ end
14
+
15
+ def self.clicks(ms=nil)
16
+ ms = ms.to_s if ms.kind_of?(Symbol)
17
+ case ms
18
+ when nil, ''
19
+ tk_call_without_enc('clock','clicks').to_i
20
+ when /^mic/
21
+ tk_call_without_enc('clock','clicks','-microseconds').to_i
22
+ when /^mil/
23
+ tk_call_without_enc('clock','clicks','-milliseconds').to_i
24
+ else
25
+ tk_call_without_enc('clock','clicks','-milliseconds').to_i
26
+ end
27
+ end
28
+
29
+ def self.format(clk, form=nil)
30
+ if form
31
+ tk_call('clock','format',clk,'-format',form)
32
+ else
33
+ tk_call('clock','format',clk)
34
+ end
35
+ end
36
+
37
+ def self.formatGMT(clk, form=nil)
38
+ if form
39
+ tk_call('clock','format',clk,'-format',form,'-gmt','1')
40
+ else
41
+ tk_call('clock','format',clk,'-gmt','1')
42
+ end
43
+ end
44
+
45
+ def self.scan(str, base=nil)
46
+ if base
47
+ tk_call('clock','scan',str,'-base',base).to_i
48
+ else
49
+ tk_call('clock','scan',str).to_i
50
+ end
51
+ end
52
+
53
+ def self.scanGMT(str, base=nil)
54
+ if base
55
+ tk_call('clock','scan',str,'-base',base,'-gmt','1').to_i
56
+ else
57
+ tk_call('clock','scan',str,'-gmt','1').to_i
58
+ end
59
+ end
60
+
61
+ def self.seconds
62
+ tk_call_without_enc('clock','seconds').to_i
63
+ end
64
+ def self.milliseconds
65
+ tk_call_without_enc('clock','milliseconds').to_i
66
+ end
67
+ def self.microseconds
68
+ tk_call_without_enc('clock','microseconds').to_i
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,484 @@
1
+ #
2
+ # tk/composite.rb :
3
+ #
4
+ require 'tk'
5
+
6
+ module TkComposite
7
+ include Tk
8
+ extend Tk
9
+
10
+ =begin
11
+ def initialize(parent=nil, *args)
12
+ @delegates = {}
13
+ @option_methods = {}
14
+ @option_setting = {}
15
+
16
+ if parent.kind_of? Hash
17
+ keys = _symbolkey2str(parent)
18
+ parent = keys.delete('parent')
19
+ @frame = TkFrame.new(parent)
20
+ @path = @epath = @frame.path
21
+ initialize_composite(keys)
22
+ else
23
+ @frame = TkFrame.new(parent)
24
+ @path = @epath = @frame.path
25
+ initialize_composite(*args)
26
+ end
27
+ end
28
+ =end
29
+
30
+ def _choice_classname_of_baseframe
31
+ base_class_name = nil
32
+
33
+ klass = WidgetClassNames[self.class::WidgetClassName]
34
+
35
+ if klass
36
+ # WidgetClassName is a known class
37
+ #if klass <= TkFrame || klass < TkComposite
38
+ if klass <= TkFrame || klass < Tk::Frame || klass < TkComposite
39
+ # klass is valid for the base frame
40
+ if self.class <= klass
41
+ # use my classname
42
+ base_class_name = self.class.name
43
+ if base_class_name == ''
44
+ # anonymous class -> use ancestor's name
45
+ base_class_name = klass.name
46
+ end
47
+ else
48
+ # not subclass -> use WidgetClassName
49
+ base_class_name = klass.name
50
+ end
51
+
52
+ else
53
+ # klass is invalid for the base frame
54
+ #if self.class < TkFrame || self.class.superclass < TkComposite
55
+ if self.class < TkFrame || self.class.superclass < Tk::Frame || self.class.superclass < TkComposite
56
+ # my class name is valid for the base frame -> use my classname
57
+ base_class_name = self.class.name
58
+ if base_class_name == ''
59
+ # anonymous class -> use TkFrame
60
+ base_class_name = nil
61
+ end
62
+ else
63
+ # no idea for the base frame -> use TkFrame
64
+ base_class_name = nil
65
+ end
66
+ end
67
+
68
+ elsif self.class::WidgetClassName && ! self.class::WidgetClassName.empty?
69
+ # unknown WidgetClassName is defined -> use it for the base frame
70
+ base_class_name = self.class::WidgetClassName
71
+
72
+ else
73
+ # no valid WidgetClassName
74
+ #if self.class < TkFrame || self.class.superclass < TkComposite
75
+ if self.class < TkFrame || self.class.superclass < Tk::Frame || self.class.superclass < TkComposite
76
+ # my class name is valid for the base frame -> use my classname
77
+ base_class_name = self.class.name
78
+ if base_class_name == ''
79
+ # anonymous class -> use TkFrame
80
+ base_class_name = nil
81
+ end
82
+ else
83
+ # no idea for the base frame -> use TkFrame
84
+ base_class_name = nil
85
+ end
86
+ end
87
+
88
+ base_class_name
89
+ end
90
+ private :_choice_classname_of_baseframe
91
+
92
+ # def initialize(parent=nil, *args)
93
+ def initialize(*args)
94
+ @delegates = {}
95
+ @option_methods = {}
96
+ @option_setting = {}
97
+
98
+ if args[-1].kind_of?(Hash)
99
+ keys = _symbolkey2str(args.pop)
100
+ else
101
+ keys = {}
102
+ end
103
+ parent = args.shift
104
+ parent = keys.delete('parent') if keys.has_key?('parent')
105
+
106
+ if keys.key?('classname')
107
+ keys['class'] = keys.delete('classname')
108
+ end
109
+ if (base_class_name = (keys.delete('class')).to_s).empty?
110
+ base_class_name = _choice_classname_of_baseframe
111
+ end
112
+
113
+ if base_class_name
114
+ # @frame = Tk::Frame.new(parent, :class=>base_class_name)
115
+ # --> use current TkFrame class
116
+ @frame = TkFrame.new(parent, :class=>base_class_name)
117
+ else
118
+ # @frame = Tk::Frame.new(parent)
119
+ # --> use current TkFrame class
120
+ @frame = TkFrame.new(parent)
121
+ end
122
+ @path = @epath = @frame.path
123
+
124
+ args.push(keys) unless keys.empty?
125
+ initialize_composite(*args)
126
+ end
127
+
128
+ def database_classname
129
+ @frame.database_classname
130
+ end
131
+
132
+ def database_class
133
+ @frame.database_class
134
+ end
135
+
136
+ def epath
137
+ @epath
138
+ end
139
+
140
+ def initialize_composite(*args) end
141
+ private :initialize_composite
142
+
143
+ def inspect
144
+ str = super
145
+ str.chop << ' @epath=' << @epath.inspect << '>'
146
+ end
147
+
148
+ def _get_opt_method_list(arg)
149
+ m_set, m_cget, m_info = arg
150
+ m_set = m_set.to_s
151
+ m_cget = m_set if !m_cget && self.method(m_set).arity == -1
152
+ m_cget = m_cget.to_s if m_cget
153
+ m_info = m_info.to_s if m_info
154
+ [m_set, m_cget, m_info]
155
+ end
156
+ private :_get_opt_method_list
157
+
158
+ def option_methods(*opts)
159
+ if opts.size == 1 && opts[0].kind_of?(Hash)
160
+ # {name => [m_set, m_cget, m_info], name => method} style
161
+ opts[0].each{|name, arg|
162
+ m_set, m_cget, m_info = _get_opt_method_list(arg)
163
+ @option_methods[name.to_s] = {
164
+ :set => m_set, :cget => m_cget, :info => m_info
165
+ }
166
+ }
167
+ else
168
+ # [m_set, m_cget, m_info] or method style
169
+ opts.each{|arg|
170
+ m_set, m_cget, m_info = _get_opt_method_list(arg)
171
+ @option_methods[m_set] = {
172
+ :set => m_set, :cget => m_cget, :info => m_info
173
+ }
174
+ }
175
+ end
176
+ end
177
+
178
+ def delegate_alias(alias_opt, option, *wins)
179
+ if wins.length == 0
180
+ fail ArgumentError, "target widgets are not given"
181
+ end
182
+ if alias_opt != option && (alias_opt == 'DEFAULT' || option == 'DEFAULT')
183
+ fail ArgumentError, "cannot alias 'DEFAULT' option"
184
+ end
185
+ alias_opt = alias_opt.to_s
186
+ option = option.to_s
187
+ if @delegates[alias_opt].kind_of?(Array)
188
+ if (elem = @delegates[alias_opt].assoc(option))
189
+ wins.each{|w| elem[1].push(w)}
190
+ else
191
+ @delegates[alias_opt] << [option, wins]
192
+ end
193
+ else
194
+ @delegates[alias_opt] = [ [option, wins] ]
195
+ end
196
+ end
197
+
198
+ def delegate(option, *wins)
199
+ delegate_alias(option, option, *wins)
200
+ end
201
+
202
+ def __cget_delegates(slot)
203
+ slot = slot.to_s
204
+
205
+ if @option_methods.include?(slot)
206
+ if @option_methods[slot][:cget]
207
+ return self.__send__(@option_methods[slot][:cget])
208
+ else
209
+ if @option_setting[slot]
210
+ return @option_setting[slot]
211
+ else
212
+ return ''
213
+ end
214
+ end
215
+ end
216
+
217
+ tbl = @delegates[slot]
218
+ tbl = @delegates['DEFAULT'] unless tbl
219
+
220
+ begin
221
+ if tbl
222
+ opt, wins = tbl[-1]
223
+ opt = slot if opt == 'DEFAULT'
224
+ if wins && wins[-1]
225
+ # return wins[-1].cget(opt)
226
+ return wins[-1].cget_strict(opt)
227
+ end
228
+ end
229
+ rescue
230
+ end
231
+
232
+ return None
233
+ end
234
+ private :__cget_delegates
235
+
236
+ def cget_tkstring(slot)
237
+ if (ret = __cget_delegates(slot)) == None
238
+ super(slot)
239
+ else
240
+ _get_eval_string(ret)
241
+ end
242
+ end
243
+
244
+ def cget(slot)
245
+ if (ret = __cget_delegates(slot)) == None
246
+ super(slot)
247
+ else
248
+ ret
249
+ end
250
+ end
251
+
252
+ def cget_strict(slot)
253
+ if (ret = __cget_delegates(slot)) == None
254
+ super(slot)
255
+ else
256
+ ret
257
+ end
258
+ end
259
+
260
+ =begin
261
+ def cget(slot)
262
+ slot = slot.to_s
263
+
264
+ if @option_methods.include?(slot)
265
+ if @option_methods[slot][:cget]
266
+ return self.__send__(@option_methods[slot][:cget])
267
+ else
268
+ if @option_setting[slot]
269
+ return @option_setting[slot]
270
+ else
271
+ return ''
272
+ end
273
+ end
274
+ end
275
+
276
+ tbl = @delegates[slot]
277
+ tbl = @delegates['DEFAULT'] unless tbl
278
+
279
+ begin
280
+ if tbl
281
+ opt, wins = tbl[-1]
282
+ opt = slot if opt == 'DEFAULT'
283
+ if wins && wins[-1]
284
+ return wins[-1].cget(opt)
285
+ end
286
+ end
287
+ rescue
288
+ end
289
+
290
+ super(slot)
291
+ end
292
+ =end
293
+
294
+ def configure(slot, value=None)
295
+ if slot.kind_of? Hash
296
+ slot.each{|slot,value| configure slot, value}
297
+ return self
298
+ end
299
+
300
+ slot = slot.to_s
301
+
302
+ if @option_methods.include?(slot)
303
+ unless @option_methods[slot][:cget]
304
+ if value.kind_of?(Symbol)
305
+ @option_setting[slot] = value.to_s
306
+ else
307
+ @option_setting[slot] = value
308
+ end
309
+ end
310
+ return self.__send__(@option_methods[slot][:set], value)
311
+ end
312
+
313
+ tbl = @delegates[slot]
314
+ tbl = @delegates['DEFAULT'] unless tbl
315
+
316
+ begin
317
+ if tbl
318
+ last = nil
319
+ tbl.each{|opt, wins|
320
+ opt = slot if opt == 'DEFAULT'
321
+ wins.each{|w| last = w.configure(opt, value)}
322
+ }
323
+ return last
324
+ end
325
+ rescue
326
+ end
327
+
328
+ super(slot, value)
329
+ end
330
+
331
+ def configinfo(slot = nil)
332
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
333
+ if slot
334
+ slot = slot.to_s
335
+ if @option_methods.include?(slot)
336
+ if @option_methods[slot][:info]
337
+ return self.__send__(@option_methods[slot][:info])
338
+ else
339
+ return [slot, '', '', '', self.cget(slot)]
340
+ end
341
+ end
342
+
343
+ tbl = @delegates[slot]
344
+ tbl = @delegates['DEFAULT'] unless tbl
345
+
346
+ begin
347
+ if tbl
348
+ if tbl.length == 1
349
+ opt, wins = tbl[0]
350
+ if slot == opt || opt == 'DEFAULT'
351
+ return wins[-1].configinfo(slot)
352
+ else
353
+ info = wins[-1].configinfo(opt)
354
+ info[0] = slot
355
+ return info
356
+ end
357
+ else
358
+ opt, wins = tbl[-1]
359
+ return [slot, '', '', '', wins[-1].cget(opt)]
360
+ end
361
+ end
362
+ rescue
363
+ end
364
+
365
+ super(slot)
366
+
367
+ else # slot == nil
368
+ info_list = super(slot)
369
+
370
+ tbl = @delegates['DEFAULT']
371
+ if tbl
372
+ wins = tbl[0][1]
373
+ if wins && wins[-1]
374
+ wins[-1].configinfo.each{|info|
375
+ slot = info[0]
376
+ info_list.delete_if{|i| i[0] == slot} << info
377
+ }
378
+ end
379
+ end
380
+
381
+ @delegates.each{|slot, tbl|
382
+ next if slot == 'DEFAULT'
383
+ if tbl.length == 1
384
+ opt, wins = tbl[0]
385
+ next unless wins && wins[-1]
386
+ if slot == opt
387
+ info_list.delete_if{|i| i[0] == slot} <<
388
+ wins[-1].configinfo(slot)
389
+ else
390
+ info = wins[-1].configinfo(opt)
391
+ info[0] = slot
392
+ info_list.delete_if{|i| i[0] == slot} << info
393
+ end
394
+ else
395
+ opt, wins = tbl[-1]
396
+ info_list.delete_if{|i| i[0] == slot} <<
397
+ [slot, '', '', '', wins[-1].cget(opt)]
398
+ end
399
+ }
400
+
401
+ @option_methods.each{|slot, m|
402
+ if m[:info]
403
+ info = self.__send__(m[:info])
404
+ else
405
+ info = [slot, '', '', '', self.cget(slot)]
406
+ end
407
+ info_list.delete_if{|i| i[0] == slot} << info
408
+ }
409
+
410
+ info_list
411
+ end
412
+
413
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
414
+ if slot
415
+ slot = slot.to_s
416
+ if @option_methods.include?(slot)
417
+ if @option_methods[slot][:info]
418
+ return self.__send__(@option_methods[slot][:info])
419
+ else
420
+ return {slot => ['', '', '', self.cget(slot)]}
421
+ end
422
+ end
423
+
424
+ tbl = @delegates[slot]
425
+ tbl = @delegates['DEFAULT'] unless tbl
426
+
427
+ begin
428
+ if tbl
429
+ if tbl.length == 1
430
+ opt, wins = tbl[0]
431
+ if slot == opt || opt == 'DEFAULT'
432
+ return wins[-1].configinfo(slot)
433
+ else
434
+ return {slot => wins[-1].configinfo(opt)[opt]}
435
+ end
436
+ else
437
+ opt, wins = tbl[-1]
438
+ return {slot => ['', '', '', wins[-1].cget(opt)]}
439
+ end
440
+ end
441
+ rescue
442
+ end
443
+
444
+ super(slot)
445
+
446
+ else # slot == nil
447
+ info_list = super(slot)
448
+
449
+ tbl = @delegates['DEFAULT']
450
+ if tbl
451
+ wins = tbl[0][1]
452
+ info_list.update(wins[-1].configinfo) if wins && wins[-1]
453
+ end
454
+
455
+ @delegates.each{|slot, tbl|
456
+ next if slot == 'DEFAULT'
457
+ if tbl.length == 1
458
+ opt, wins = tbl[0]
459
+ next unless wins && wins[-1]
460
+ if slot == opt
461
+ info_list.update(wins[-1].configinfo(slot))
462
+ else
463
+ info_list.update({slot => wins[-1].configinfo(opt)[opt]})
464
+ end
465
+ else
466
+ opt, wins = tbl[-1]
467
+ info_list.update({slot => ['', '', '', wins[-1].cget(opt)]})
468
+ end
469
+ }
470
+
471
+ @option_methods.each{|slot, m|
472
+ if m[:info]
473
+ info = self.__send__(m[:info])
474
+ else
475
+ info = {slot => ['', '', '', self.cget(slot)]}
476
+ end
477
+ info_list.update(info)
478
+ }
479
+
480
+ info_list
481
+ end
482
+ end
483
+ end
484
+ end