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,43 @@
1
+ #
2
+ # tkextlib/tcllib/tablelist_tlie.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * A multi-column listbox
7
+
8
+ require 'tk'
9
+ require 'tkextlib/tcllib.rb'
10
+
11
+ # TkPackage.require('tablelist_tile', '4.2')
12
+ TkPackage.require('tablelist_tile')
13
+
14
+ unless defined? Tk::Tcllib::Tablelist_usingTile
15
+ Tk::Tcllib::Tablelist_usingTile = true
16
+ end
17
+
18
+ requrie 'tkextlib/tcllib/tablelist_core'
19
+
20
+ module Tk
21
+ module Tcllib
22
+ class Tablelist
23
+ # commands related to tile Themems
24
+ def self.set_theme(theme)
25
+ Tk.tk_call('::tablelist::setTheme', theme)
26
+ end
27
+
28
+ def self.get_current_theme
29
+ Tk.tk_call('::tablelist::getCurrentTheme')
30
+ end
31
+
32
+ def self.get_theme_list
33
+ TkComm.simplelist(Tk.tk_call('::tablelist::getThemes'))
34
+ end
35
+ def self.set_theme_defaults
36
+ Tk.tk_call('::tablelist::setThemeDefaults')
37
+ end
38
+ end
39
+
40
+ Tablelist_Tile = Tablelist
41
+ TableList_Tile = Tablelist
42
+ end
43
+ end
@@ -0,0 +1,314 @@
1
+ #
2
+ # tkextlib/tcllib/tkpiechart.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Create 2D or 3D pies with labels in Tcl canvases
7
+ #
8
+
9
+ require 'tk'
10
+ require 'tk/canvas'
11
+ require 'tkextlib/tcllib.rb'
12
+
13
+ # TkPackage.require('tkpiechart', '6.6')
14
+ TkPackage.require('tkpiechart')
15
+
16
+ module Tk
17
+ module Tcllib
18
+ module Tkpiechart
19
+ end
20
+ end
21
+ end
22
+
23
+ module Tk::Tcllib::Tkpiechart
24
+ PACKAGE_NAME = 'tkpiechart'.freeze
25
+ def self.package_name
26
+ PACKAGE_NAME
27
+ end
28
+
29
+ def self.package_version
30
+ begin
31
+ TkPackage.require('tkpiechart')
32
+ rescue
33
+ ''
34
+ end
35
+ end
36
+
37
+ module ConfigMethod
38
+ include TkConfigMethod
39
+
40
+ def __pathname
41
+ self.path + ';' + self.tag
42
+ end
43
+ private :__pathname
44
+
45
+ def __cget_cmd
46
+ ['::switched::cget', self.tag]
47
+ end
48
+
49
+ def __config_cmd
50
+ ['::switched::configure', self.tag]
51
+ end
52
+ private :__config_cmd
53
+
54
+ def __configinfo_struct
55
+ {:key=>0, :alias=>nil, :db_name=>nil, :db_class=>nil,
56
+ :default_value=>1, :current_value=>2}
57
+ end
58
+ private :__configinfo_struct
59
+
60
+ def __boolval_optkeys
61
+ super() << 'select' << 'autoupdate' << 'selectable'
62
+ end
63
+ private :__boolval_optkeys
64
+
65
+ def __strval_optkeys
66
+ super() << 'bordercolor' << 'textbackground' <<
67
+ 'widestvaluetext' << 'title'
68
+ end
69
+ private :__strval_optkeys
70
+
71
+ def __listval_optkeys
72
+ super() << 'colors'
73
+ end
74
+ private :__listval_optkeys
75
+ end
76
+
77
+ ####################################
78
+ class PieChartObj < TkcItem
79
+ include ConfigMethod
80
+
81
+ def __font_optkeys
82
+ ['titlefont']
83
+ end
84
+ private :__font_optkeys
85
+ end
86
+
87
+ ####################################
88
+ class Pie < TkcItem
89
+ include ConfigMethod
90
+
91
+ def create_self(x, y, width, height, keys=None)
92
+ if keys and keys != None
93
+ @tag_key = tk_call_without_enc('::stooop::new', 'pie',
94
+ @c, x, y, *hash_kv(keys, true))
95
+ else
96
+ @tag_key = tk_call_without_enc('::stooop::new', 'pie', @c, x, y)
97
+ end
98
+
99
+ @slice_tbl = {}
100
+
101
+ id = "pie(#{@tag_key})"
102
+
103
+ @tag = @tag_pie = TkcNamedTag(@c, id)
104
+ @tag_slices = TkcNamedTag(@c, "pieSlices(#{@tag_key})")
105
+
106
+ id
107
+ end
108
+ private :create_self
109
+
110
+ def tag_key
111
+ @tag_key
112
+ end
113
+ def tag
114
+ @tag
115
+ end
116
+ def canvas
117
+ @c
118
+ end
119
+ def _entry_slice(slice)
120
+ @slice_tbl[slice.to_eval] = slice
121
+ end
122
+ def _delete_slice(slice)
123
+ @slice_tbl.delete(slice.to_eval)
124
+ end
125
+
126
+ def delete
127
+ tk_call_without_enc('::stooop::delete', @tag_key)
128
+ CItemID_TBL.mutex.synchronize{
129
+ CItemID_TBL[@path].delete(@id) if CItemID_TBL[@path]
130
+ }
131
+ self
132
+ end
133
+
134
+ def new_slice(text=None)
135
+ Slice.new(self, text)
136
+ end
137
+
138
+ def delete_slice(slice)
139
+ unless slice.kind_of?(Slice)
140
+ unless (slice = @slice_tbl[slice])
141
+ return tk_call_without_enc('pie::deleteSlice', @tag_key, slice)
142
+ end
143
+ end
144
+ unless slice.kind_of?(Slice) && slice.pie == self
145
+ fail ArgumentError, "argument is not a slice of self"
146
+ end
147
+ slice.delete
148
+ end
149
+
150
+ def selected_slices
151
+ tk_split_simplelist(tk_call_without_enc('pie::selectedSlices',
152
+ @tag_key)).collect{|slice|
153
+ @slice_tbl[slice] || Slice.new(:no_create, self, slice)
154
+ }
155
+ end
156
+ end
157
+
158
+ ####################################
159
+ class Slice < TkcItem
160
+ include ConfigMethod
161
+
162
+ def __config_cmd
163
+ ['::switched::configure', self.tag]
164
+ end
165
+ private :__config_cmd
166
+
167
+ #------------------------
168
+
169
+ def initialize(pie, *args)
170
+ unless pie.kind_of?(Pie) && pie != :no_create
171
+ fail ArgumentError, "expects TkPiechart::Pie for 1st argument"
172
+ end
173
+
174
+ if pie == :no_create
175
+ @pie, @tag_key = args
176
+ else
177
+ text = args[0] || None
178
+ @pie = pie
179
+ @tag_key = tk_call_without_enc('pie::newSlice', @pie.tag_key, text)
180
+ end
181
+ @parent = @c = @pie.canvas
182
+ @path = @parent.path
183
+
184
+ @pie._entry_slice(self)
185
+
186
+ @id = "slices(#{@tag_key})"
187
+ @tag = TkcNamedTag.new(@pie.canvas, @id)
188
+
189
+ CItemID_TBL.mutex.synchronize{
190
+ CItemID_TBL[@path] = {} unless CItemID_TBL[@path]
191
+ CItemID_TBL[@path][@id] = self
192
+ }
193
+ end
194
+
195
+ def tag_key
196
+ @tag_key
197
+ end
198
+ def tag
199
+ @tag
200
+ end
201
+ def pie
202
+ @pie
203
+ end
204
+
205
+ def delete
206
+ tk_call_without_enc('pie::deleteSlice', @pie.tag_key, @tag_key)
207
+ CItemID_TBL.mutex.synchronize{
208
+ CItemID_TBL[@path].delete(@id) if CItemID_TBL[@path]
209
+ }
210
+ @pie._delete_slice(self)
211
+ self
212
+ end
213
+
214
+ def size(share, disp=None)
215
+ tk_call_without_enc('pie::sizeSlice',
216
+ @pie.tag_key, @tag_key, share, disp)
217
+ self
218
+ end
219
+
220
+ def label(text)
221
+ tk_call_without_enc('pie::labelSlice', @pie.tag_key, @tag_key, text)
222
+ self
223
+ end
224
+ end
225
+
226
+ ####################################
227
+ class BoxLabeler < TkcItem
228
+ include ConfigMethod
229
+
230
+ def __config_cmd
231
+ ['::switched::configure', self.tag]
232
+ end
233
+ private :__config_cmd
234
+
235
+ #------------------------
236
+
237
+ def create_self(keys=None)
238
+ if keys and keys != None
239
+ @tag_key = tk_call_without_enc('::stooop::new', 'pieBoxLabeler',
240
+ *hash_kv(keys, true))
241
+ else
242
+ @tag_key = tk_call_without_enc('::stooop::new', 'pieBoxLabeler')
243
+ end
244
+
245
+ id = "pieBoxLabeler(#{@tag_key})"
246
+ @tag = TkcNamedTag(@c, id)
247
+
248
+ id
249
+ end
250
+ private :create_self
251
+ end
252
+
253
+ ####################################
254
+ class PeripheralLabeler < TkcItem
255
+ include ConfigMethod
256
+
257
+ def __font_optkeys
258
+ ['font', 'smallfont']
259
+ end
260
+ private :__font_optkeys
261
+
262
+ def __config_cmd
263
+ ['::switched::configure', self.tag]
264
+ end
265
+ private :__config_cmd
266
+
267
+ #------------------------
268
+
269
+ def create_self(keys=None)
270
+ if keys and keys != None
271
+ @tag_key = tk_call_without_enc('::stooop::new',
272
+ 'piePeripheralLabeler',
273
+ *hash_kv(keys, true))
274
+ else
275
+ @tag_key = tk_call_without_enc('::stooop::new', 'piePeripheralLabeler')
276
+ end
277
+
278
+ id = "piePeripheralLabeler(#{@tag_key})"
279
+ @tag = TkcNamedTag(@c, id)
280
+
281
+ id
282
+ end
283
+ private :create_self
284
+ end
285
+
286
+ ####################################
287
+ class Label < TkcItem
288
+ include ConfigMethod
289
+
290
+ def __config_cmd
291
+ ['::switched::configure', self.tag]
292
+ end
293
+ private :__config_cmd
294
+
295
+ #------------------------
296
+
297
+ def create_self(x, y, keys=None)
298
+ if keys and keys != None
299
+ @tag_key = tk_call_without_enc('::stooop::new', 'canvasLabel',
300
+ @c, x, y, width, height,
301
+ *hash_kv(keys, true))
302
+ else
303
+ @tag_key = tk_call_without_enc('::stooop::new', 'canvasLabel',
304
+ @c, x, y, width, height)
305
+ end
306
+
307
+ id = "canvasLabel(#{@tag_key})"
308
+ @tag = TkcNamedTag(@c, id)
309
+
310
+ id
311
+ end
312
+ private :create_self
313
+ end
314
+ end
@@ -0,0 +1,104 @@
1
+ #
2
+ # tkextlib/tcllib/tooltip.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Provides tooltips, a small text message that is displayed when the
7
+ # mouse hovers over a widget.
8
+ #
9
+
10
+ require 'tk'
11
+ require 'tkextlib/tcllib.rb'
12
+
13
+ # TkPackage.require('tooltip', '1.1')
14
+ TkPackage.require('tooltip')
15
+
16
+ module Tk::Tcllib
17
+ module Tooltip
18
+ PACKAGE_NAME = 'tooltip'.freeze
19
+ def self.package_name
20
+ PACKAGE_NAME
21
+ end
22
+
23
+ def self.package_version
24
+ begin
25
+ TkPackage.require('tooltip')
26
+ rescue
27
+ ''
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ module Tk::Tcllib::Tooltip
34
+ extend TkCore
35
+
36
+ WidgetClassName = 'Tooltip'.freeze
37
+ WidgetClassNames[WidgetClassName] ||= self
38
+
39
+ def self.database_classname
40
+ self::WidgetClassName
41
+ end
42
+ def self.database_class
43
+ WidgetClassNames[self::WidgetClassName]
44
+ end
45
+
46
+ def self.clear(glob_path_pat = None)
47
+ self.clear_glob(glob_path_pat)
48
+ end
49
+
50
+ def self.clear_glob(glob_path_pat)
51
+ tk_call_without_enc('::tooltip::tooltip', 'clear', glob_path_pat)
52
+ end
53
+
54
+ def self.clear_widgets(*args)
55
+ self.clear_glob("{#{args.collect{|w| _get_eval_string(w)}.join(',')}}")
56
+ end
57
+
58
+ def self.clear_children(*args)
59
+ self.clear_glob("{#{args.collect{|w| s = _get_eval_string(w); "#{s},#{s}.*"}.join(',')}}")
60
+ end
61
+
62
+ def self.delay(millisecs=None)
63
+ number(tk_call_without_enc('::tooltip::tooltip', 'delay', millisecs))
64
+ end
65
+ def self.delay=(millisecs)
66
+ self.delay(millisecs)
67
+ end
68
+
69
+ def self.fade?
70
+ bool(tk_call_without_enc('::tooltip::tooltip', 'fade'))
71
+ end
72
+ def self.fade(mode)
73
+ tk_call_without_enc('::tooltip::tooltip', 'fade', mode)
74
+ end
75
+
76
+ def self.disable
77
+ tk_call_without_enc('::tooltip::tooltip', 'disable')
78
+ false
79
+ end
80
+ def self.off
81
+ self.disable
82
+ end
83
+
84
+ def self.enable
85
+ tk_call_without_enc('::tooltip::tooltip', 'enable')
86
+ true
87
+ end
88
+ def self.on
89
+ self.enable
90
+ end
91
+
92
+ def self.register(widget, msg, keys=nil)
93
+ if keys.kind_of?(Hash)
94
+ args = hash_kv(keys) << msg
95
+ else
96
+ args = msg
97
+ end
98
+ tk_call('::tooltip::tooltip', widget.path, *args)
99
+ end
100
+
101
+ def self.erase(widget)
102
+ tk_call_without_enc('::tooltip::tooltip', widget.path, '')
103
+ end
104
+ end