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,112 @@
1
+ #
2
+ # tkextlib/iwidgets/toolbar.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/iwidgets.rb'
8
+
9
+ module Tk
10
+ module Iwidgets
11
+ class Toolbar < Tk::Itk::Widget
12
+ end
13
+ end
14
+ end
15
+
16
+ class Tk::Iwidgets::Toolbar
17
+ TkCommandNames = ['::iwidgets::toolbar'.freeze].freeze
18
+ WidgetClassName = 'Toolbar'.freeze
19
+ WidgetClassNames[WidgetClassName] ||= self
20
+
21
+ def __tkvariable_optkeys
22
+ super() << 'helpvariable'
23
+ end
24
+ private :__tkvariable_optkeys
25
+
26
+ ####################################
27
+
28
+ include TkItemConfigMethod
29
+
30
+ def __item_cget_cmd(id)
31
+ [self.path, 'itemcget', self.index(id)]
32
+ end
33
+ private :__item_cget_cmd
34
+
35
+ def __item_config_cmd(id)
36
+ [self.path, 'itemconfigure', self.index(id)]
37
+ end
38
+ private :__item_config_cmd
39
+
40
+ def __item_strval_optkeys(id)
41
+ super(id) << 'helpstr' << 'balloonstr'
42
+ end
43
+ private :__item_strval_optkeys
44
+
45
+ def tagid(tagOrId)
46
+ if tagOrId.kind_of?(Tk::Itk::Component)
47
+ tagOrId.name
48
+ else
49
+ #_get_eval_string(tagOrId)
50
+ tagOrId
51
+ end
52
+ end
53
+
54
+ ####################################
55
+
56
+ def __strval_optkeys
57
+ super() << 'balloonbackground' << 'balloonforeground'
58
+ end
59
+ private :__strval_optkeys
60
+
61
+ def __tkvariable_optkeys
62
+ super() << 'helpvariable'
63
+ end
64
+ private :__tkvariable_optkeys
65
+
66
+ def __font_optkeys
67
+ super() << 'balloonfont'
68
+ end
69
+ private :__font_optkeys
70
+
71
+ def add(type, tag=nil, keys={})
72
+ if tag.kind_of?(Hash)
73
+ keys = tag
74
+ tag = nil
75
+ end
76
+ if tag
77
+ tag = Tk::Itk::Component.new(self, tagid(tag))
78
+ else
79
+ tag = Tk::Itk::Component.new(self)
80
+ end
81
+ window(tk_call(@path, 'add', type, tagid(tag), *hash_kv(keys)))
82
+ tag
83
+ end
84
+
85
+ def delete(idx1, idx2=nil)
86
+ if idx2
87
+ tk_call(@path, 'delete', index(idx1), index(idx2))
88
+ else
89
+ tk_call(@path, 'delete', index(idx1))
90
+ end
91
+ self
92
+ end
93
+
94
+ def index(idx)
95
+ number(tk_call(@path, 'index', tagid(idx)))
96
+ end
97
+
98
+ def insert(idx, type, tag=nil, keys={})
99
+ if tag.kind_of?(Hash)
100
+ keys = tag
101
+ tag = nil
102
+ end
103
+ if tag
104
+ tag = Tk::Itk::Component.new(self, tagid(tag))
105
+ else
106
+ tag = Tk::Itk::Component.new(self)
107
+ end
108
+ window(tk_call(@path, 'insert', index(idx), type,
109
+ tagid(tag), *hash_kv(keys)))
110
+ tag
111
+ end
112
+ end
@@ -0,0 +1,56 @@
1
+ #
2
+ # tkextlib/iwidgets/watch.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/iwidgets.rb'
8
+
9
+ module Tk
10
+ module Iwidgets
11
+ class Watch < Tk::Itk::Widget
12
+ end
13
+ end
14
+ end
15
+
16
+ class Tk::Iwidgets::Watch
17
+ TkCommandNames = ['::iwidgets::watch'.freeze].freeze
18
+ WidgetClassName = 'Watch'.freeze
19
+ WidgetClassNames[WidgetClassName] ||= self
20
+
21
+ def __boolval_optkeys
22
+ super() << 'showampm'
23
+ end
24
+ private :__boolval_optkeys
25
+
26
+ def __strval_optkeys
27
+ super() << 'clockcolor' << 'hourcolor' << 'minutecolor' <<
28
+ 'pivotcolor' << 'secondcolor' << 'tickcolor'
29
+ end
30
+ private :__strval_optkeys
31
+
32
+ def get_string
33
+ tk_call(@path, 'get', '-string')
34
+ end
35
+ alias get get_string
36
+
37
+ def get_clicks
38
+ number(tk_call(@path, 'get', '-clicks'))
39
+ end
40
+
41
+ def show(time=None)
42
+ tk_call(@path, 'show', time)
43
+ self
44
+ end
45
+ def show_now
46
+ tk_call(@path, 'show', 'now')
47
+ self
48
+ end
49
+
50
+ def watch(*args)
51
+ unless args.empty?
52
+ tk_call(@path, 'watch', *args)
53
+ end
54
+ component_path('canvas')
55
+ end
56
+ end
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Ruby/Tk extension library checker
4
+ #
5
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
6
+ #
7
+ require 'tk'
8
+
9
+ TkRoot.new.withdraw # hide root window
10
+
11
+ name = File.basename(__FILE__)
12
+
13
+ add_path = false
14
+ verbose = false
15
+
16
+ def help_msg
17
+ print "Usage: #{$0} [-l] [-v] [-h] [--] [dir]\n"
18
+ print "\tIf dir is omitted, check the directry that this command exists.\n"
19
+ print "\tAvailable options are \n"
20
+ print "\t -l : Add dir to $LOAD_PATH\n"
21
+ print "\t (If dir == '<parent>/tkextlib', add <parent> also.)\n"
22
+ print "\t -v : Verbose mode (show reason of fail)\n"
23
+ print "\t -h : Show this message\n"
24
+ print "\t -- : End of options\n"
25
+ end
26
+
27
+ while(ARGV[0] && ARGV[0][0] == ?-)
28
+ case ARGV[0]
29
+ when '--'
30
+ ARGV.shift
31
+ break;
32
+ when '-l'
33
+ ARGV.shift
34
+ add_path = true
35
+ when '-v'
36
+ ARGV.shift
37
+ verbose = true
38
+ when '-h'
39
+ help_msg
40
+ exit(0)
41
+ else
42
+ print "Argument Error!! : unknown option '#{ARGV[0]}'\n"
43
+ help_msg
44
+ exit(1)
45
+ end
46
+ end
47
+
48
+ if ARGV[0]
49
+ dir = File.expand_path(ARGV[0])
50
+ else
51
+ dir = File.dirname(File.expand_path(__FILE__))
52
+ end
53
+
54
+ if add_path
55
+ $LOAD_PATH.unshift(dir)
56
+ if File.basename(dir) == 'tkextlib'
57
+ $LOAD_PATH.unshift(File.dirname(dir))
58
+ end
59
+ end
60
+
61
+ print "\nRuby/Tk extension library checker\n"
62
+ print "( Note:: This check is very simple one. Shown status may be wrong. )\n"
63
+ print "\n check directory :: #{dir}"
64
+ print "\n $LOAD_PATH :: #{$LOAD_PATH.inspect}\n"
65
+
66
+ def get_pkg_list(file)
67
+ pkg_list = []
68
+
69
+ File.foreach(file){|l|
70
+ if l =~ /^(?:[^#]+\s|\s*)(?:|;\s*)TkPackage\s*\.\s*require\s*\(?\s*(["'])((\w|:)+)\1/
71
+ pkg = [$2, :package]
72
+ pkg_list << pkg unless pkg_list.member?(pkg)
73
+ end
74
+ if l =~ /^(?:[^#]+\s|\s*)(?:|;\s*)Tk\s*\.\s*load_tcllibrary\s*\(?\s*(["'])((\w|:)+)\1/
75
+ pkg = [$2, :library]
76
+ pkg_list << pkg unless pkg_list.member?(pkg)
77
+ end
78
+ if l =~ /^(?:[^#]+\s|\s*)(?:|;\s*)Tk\s*\.\s*load_tclscript\s*\(?\s*(["'])((\w|:)+)\1/
79
+ pkg = [$2, :script]
80
+ pkg_list << pkg unless pkg_list.member?(pkg)
81
+ end
82
+ if l =~ /^(?:[^#]+\s|\s*)(?:|;\s*)require\s*\(?\s*(["'])((\w|\/|:)+)\1/
83
+ pkg = [$2, :require_ruby_lib]
84
+ pkg_list << pkg unless pkg_list.member?(pkg)
85
+ end
86
+ }
87
+
88
+ pkg_list
89
+ end
90
+
91
+ def check_pkg(file, verbose=false)
92
+ pkg_list = get_pkg_list(file)
93
+
94
+ error_list = []
95
+ success_list = {}
96
+
97
+ pkg_list.each{|name, type|
98
+ next if success_list[name]
99
+
100
+ begin
101
+ case type
102
+ when :package
103
+ ver = TkPackage.require(name)
104
+ success_list[name] = ver
105
+ error_list.delete_if{|n, t| n == name}
106
+
107
+ when :library
108
+ Tk.load_tcllibrary(name)
109
+ success_list[name] = :library
110
+ error_list.delete_if{|n, t| n == name}
111
+
112
+ when :script
113
+ Tk.load_tclscript(name)
114
+ success_list[name] = :script
115
+ error_list.delete_if{|n, t| n == name}
116
+
117
+ when :require_ruby_lib
118
+ require name
119
+
120
+ end
121
+ rescue => e
122
+ if verbose
123
+ error_list << [name, type, e.message]
124
+ else
125
+ error_list << [name, type]
126
+ end
127
+ end
128
+ }
129
+
130
+ success_list.dup.each{|name, ver|
131
+ unless ver.kind_of?(String)
132
+ begin
133
+ ver = TkPackage.require(name)
134
+ sccess_list[name] = ver
135
+ rescue
136
+ end
137
+ end
138
+ }
139
+
140
+ [success_list, error_list]
141
+ end
142
+
143
+ def subdir_check(dir, verbose=false)
144
+ Dir.foreach(dir){|f|
145
+ next if f == '.' || f == '..'
146
+ if File.directory?(f)
147
+ subdir_check(File.join(dir, f))
148
+ elsif File.extname(f) == '.rb'
149
+ path = File.join(dir, f)
150
+ suc, err = check_pkg(path, verbose)
151
+ if err.empty?
152
+ print 'Ready : ', path, ' : require->', suc.inspect, "\n"
153
+ else
154
+ print '*LACK : ', path, ' : require->', suc.inspect,
155
+ ' FAIL->', err.inspect, "\n"
156
+ end
157
+ end
158
+ }
159
+ end
160
+
161
+ Dir.chdir(dir)
162
+
163
+ (Dir['*.rb'] - ['setup.rb', name]).each{|f|
164
+ subdir = File.basename(f, '.*')
165
+ =begin
166
+ begin
167
+ # read 'setup.rb' as if the library has standard structure
168
+ require File.join(subdir, 'setup.rb')
169
+ rescue LoadError
170
+ # ignore error
171
+ end
172
+ =end
173
+ print "\n"
174
+
175
+ suc, err = check_pkg(f, verbose)
176
+ if err.empty?
177
+ print 'Ready : ', f, ' : require->', suc.inspect, "\n"
178
+ else
179
+ print '*LACK : ', f, ' : require->', suc.inspect,
180
+ ' FAIL->', err.inspect, "\n"
181
+ end
182
+
183
+ subdir_check(subdir, verbose) if File.directory?(subdir)
184
+ }
@@ -0,0 +1,8 @@
1
+ #
2
+ # setup.rb -- setup script before using Tk extension libraries
3
+ #
4
+ # If you need some setup operations for Tk extensions (for example,
5
+ # modify the dynamic library path) required, please write the setup
6
+ # operations in this file. This file is required at the last of
7
+ # "require 'tk'".
8
+ #
@@ -0,0 +1,105 @@
1
+ #
2
+ # tcllib extension support
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/tcllib/setup.rb'
13
+
14
+ err = ''
15
+
16
+ # package:: autoscroll
17
+ target = 'tkextlib/tcllib/autoscroll'
18
+ begin
19
+ require target
20
+ rescue => e
21
+ err << "\n ['" << target << "'] " << e.class.name << ' : ' << e.message
22
+ end
23
+
24
+ # package:: cursor
25
+ target = 'tkextlib/tcllib/cursor'
26
+ begin
27
+ require target
28
+ rescue => e
29
+ err << "\n ['" << target << "'] " << e.class.name << ' : ' << e.message
30
+ end
31
+
32
+ # package:: style
33
+ target = 'tkextlib/tcllib/style'
34
+ begin
35
+ require target
36
+ rescue => e
37
+ err << "\n ['" << target << "'] " << e.class.name << ' : ' << e.message
38
+ end
39
+
40
+ # autoload
41
+ module Tk
42
+ module Tcllib
43
+ TkComm::TkExtlibAutoloadModule.unshift(self)
44
+
45
+ # package:: autoscroll
46
+ autoload :Autoscroll, 'tkextlib/tcllib/autoscroll'
47
+
48
+ # package:: ctext
49
+ autoload :CText, 'tkextlib/tcllib/ctext'
50
+
51
+ # package:: cursor
52
+ autoload :Cursor, 'tkextlib/tcllib/cursor'
53
+
54
+ # package:: datefield
55
+ autoload :Datefield, 'tkextlib/tcllib/datefield'
56
+ autoload :DateField, 'tkextlib/tcllib/datefield'
57
+
58
+ # package:: getstring
59
+ autoload :GetString_Dialog, 'tkextlib/tcllib/getstring'
60
+
61
+ # package:: history
62
+ autoload :History, 'tkextlib/tcllib/history'
63
+
64
+ # package:: ico
65
+ autoload :ICO, 'tkextlib/tcllib/ico'
66
+
67
+ # package:: ipentry
68
+ autoload :IP_Entry, 'tkextlib/tcllib/ip_entry'
69
+ autoload :IPEntry, 'tkextlib/tcllib/ip_entry'
70
+
71
+ # package:: khim
72
+ autoload :KHIM, 'tkextlib/tcllib/khim'
73
+
74
+ # package:: ntext
75
+ autoload :Ntext, 'tkextlib/tcllib/ntext'
76
+
77
+ # package:: Plotchart
78
+ autoload :Plotchart, 'tkextlib/tcllib/plotchart'
79
+
80
+ # package:: style
81
+ autoload :Style, 'tkextlib/tcllib/style'
82
+
83
+ # package:: swaplist
84
+ autoload :Swaplist_Dialog, 'tkextlib/tcllib/swaplist'
85
+
86
+ # package:: tablelist
87
+ autoload :Tablelist, 'tkextlib/tcllib/tablelist'
88
+ autoload :TableList, 'tkextlib/tcllib/tablelist'
89
+ autoload :Tablelist_Tile, 'tkextlib/tcllib/tablelist_tile'
90
+ autoload :TableList_Tile, 'tkextlib/tcllib/tablelist_tile'
91
+
92
+ # package:: tkpiechart
93
+ autoload :Tkpiechart, 'tkextlib/tcllib/tkpiechart'
94
+
95
+ # package:: tooltip
96
+ autoload :Tooltip, 'tkextlib/tcllib/tooltip'
97
+
98
+ # package:: widget
99
+ autoload :Widget, 'tkextlib/tcllib/widget'
100
+ end
101
+ end
102
+
103
+ if $VERBOSE && !err.empty?
104
+ warn("Warning: some sub-packages are failed to require : " + err)
105
+ end