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,80 @@
1
+ #
2
+ # tkextlib/bwidget/labelentry.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/entry'
8
+ require 'tkextlib/bwidget.rb'
9
+ require 'tkextlib/bwidget/labelframe'
10
+ require 'tkextlib/bwidget/entry'
11
+
12
+ module Tk
13
+ module BWidget
14
+ class LabelEntry < Tk::Entry
15
+ end
16
+ end
17
+ end
18
+
19
+ class Tk::BWidget::LabelEntry
20
+ include Scrollable
21
+
22
+ TkCommandNames = ['LabelEntry'.freeze].freeze
23
+ WidgetClassName = 'LabelEntry'.freeze
24
+ WidgetClassNames[WidgetClassName] ||= self
25
+
26
+ def __strval_optkeys
27
+ super() << 'helptext' << 'insertbackground' << 'entryfg' << 'entrybg'
28
+ end
29
+ private :__strval_optkeys
30
+
31
+ def __tkvariable_optkeys
32
+ super() << 'helpvar'
33
+ end
34
+ private :__tkvariable_optkeys
35
+
36
+ def __font_optkeys
37
+ super() << 'labelfont'
38
+ end
39
+ private :__font_optkeys
40
+
41
+ #def entrybind(*args)
42
+ # _bind([path, 'bind'], *args)
43
+ # self
44
+ #end
45
+ def entrybind(context, *args)
46
+ # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
47
+ if TkComm._callback_entry?(args[0]) || !block_given?
48
+ cmd = args.shift
49
+ else
50
+ cmd = Proc.new
51
+ end
52
+ _bind([path, 'bind'], context, cmd, *args)
53
+ self
54
+ end
55
+
56
+ #def entrybind_append(*args)
57
+ # _bind_append([path, 'bind'], *args)
58
+ # self
59
+ #end
60
+ def entrybind_append(context, *args)
61
+ #if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
62
+ if TkComm._callback_entry?(args[0]) || !block_given?
63
+ cmd = args.shift
64
+ else
65
+ cmd = Proc.new
66
+ end
67
+ _bind_append([path, 'bind'], context, cmd, *args)
68
+ self
69
+ end
70
+
71
+ def entrybind_remove(*args)
72
+ _bind_remove([path, 'bind'], *args)
73
+ self
74
+ end
75
+
76
+ def entrybindinfo(*args)
77
+ _bindinfo([path, 'bind'], *args)
78
+ self
79
+ end
80
+ end
@@ -0,0 +1,52 @@
1
+ #
2
+ # tkextlib/bwidget/labelframe.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/frame'
8
+ require 'tkextlib/bwidget.rb'
9
+ require 'tkextlib/bwidget/label'
10
+
11
+ module Tk
12
+ module BWidget
13
+ class LabelFrame < TkWindow
14
+ end
15
+ end
16
+ end
17
+
18
+ class Tk::BWidget::LabelFrame
19
+ TkCommandNames = ['LabelFrame'.freeze].freeze
20
+ WidgetClassName = 'LabelFrame'.freeze
21
+ WidgetClassNames[WidgetClassName] ||= self
22
+
23
+ def __strval_optkeys
24
+ super() << 'helptext'
25
+ end
26
+ private :__strval_optkeys
27
+
28
+ def __boolval_optkeys
29
+ super() << 'dragenabled' << 'dropenabled'
30
+ end
31
+ private :__boolval_optkeys
32
+
33
+ def __tkvariable_optkeys
34
+ super() << 'helpvar'
35
+ end
36
+ private :__tkvariable_optkeys
37
+
38
+ def self.align(*args)
39
+ tk_call('LabelFrame::align', *args)
40
+ end
41
+ def get_frame(&b)
42
+ win = window(tk_send_without_enc('getframe'))
43
+ if b
44
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
45
+ win.instance_exec(self, &b)
46
+ else
47
+ win.instance_eval(&b)
48
+ end
49
+ end
50
+ win
51
+ end
52
+ end
@@ -0,0 +1,361 @@
1
+ #
2
+ # tkextlib/bwidget/listbox.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tk/canvas'
8
+ require 'tkextlib/bwidget.rb'
9
+
10
+ module Tk
11
+ module BWidget
12
+ class ListBox < TkWindow
13
+ # is NOT a subclass of a listbox widget class.
14
+ # because it constructed on a canvas widget.
15
+
16
+ class Item < TkObject
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ class Tk::BWidget::ListBox
23
+ include TkItemConfigMethod
24
+ include Scrollable
25
+
26
+ TkCommandNames = ['ListBox'.freeze].freeze
27
+ WidgetClassName = 'ListBox'.freeze
28
+ WidgetClassNames[WidgetClassName] ||= self
29
+
30
+ class Event_for_Items < TkEvent::Event
31
+ def self._get_extra_args_tbl
32
+ [
33
+ TkComm.method(:string) # item idenfier
34
+ ]
35
+ end
36
+ end
37
+
38
+ def __boolval_optkeys
39
+ super() << 'autofocus' << 'dragenabled' << 'dropenabled' << 'selectfill'
40
+ end
41
+ private :__boolval_optkeys
42
+
43
+ def tagid(tag)
44
+ if tag.kind_of?(Tk::BWidget::ListBox::Item)
45
+ tag.id
46
+ else
47
+ # tag
48
+ _get_eval_string(tag)
49
+ end
50
+ end
51
+
52
+ #def imagebind(*args)
53
+ # _bind_for_event_class(Event_for_Items, [path, 'bindImage'], *args)
54
+ # self
55
+ #end
56
+ def imagebind(context, *args)
57
+ #if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
58
+ if TkComm._callback_entry?(args[0]) || !block_given?
59
+ cmd = args.shift
60
+ else
61
+ cmd = Proc.new
62
+ end
63
+ _bind_for_event_class(Event_for_Items, [path, 'bindImage'],
64
+ context, cmd, *args)
65
+ self
66
+ end
67
+
68
+ #def imagebind_append(*args)
69
+ # _bind_append_for_event_class(Event_for_Items, [path, 'bindImage'], *args)
70
+ # self
71
+ #end
72
+ def imagebind_append(context, *args)
73
+ #if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
74
+ if TkComm._callback_entry?(args[0]) || !block_given?
75
+ cmd = args.shift
76
+ else
77
+ cmd = Proc.new
78
+ end
79
+ _bind_append_for_event_class(Event_for_Items, [path, 'bindImage'],
80
+ context, cmd, *args)
81
+ self
82
+ end
83
+
84
+ def imagebind_remove(*args)
85
+ _bind_remove_for_event_class(Event_for_Items, [path, 'bindImage'], *args)
86
+ self
87
+ end
88
+
89
+ def imagebindinfo(*args)
90
+ _bindinfo_for_event_class(Event_for_Items, [path, 'bindImage'], *args)
91
+ end
92
+
93
+ #def textbind(*args)
94
+ # _bind_for_event_class(Event_for_Items, [path, 'bindText'], *args)
95
+ # self
96
+ #end
97
+ def textbind(context, *args)
98
+ #if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
99
+ if TkComm._callback_entry?(args[0]) || !block_given?
100
+ cmd = args.shift
101
+ else
102
+ cmd = Proc.new
103
+ end
104
+ _bind_for_event_class(Event_for_Items, [path, 'bindText'],
105
+ context, cmd, *args)
106
+ self
107
+ end
108
+
109
+ #def textbind_append(*args)
110
+ # _bind_append_for_event_class(Event_for_Items, [path, 'bindText'], *args)
111
+ # self
112
+ #end
113
+ def textbind_append(context, *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
+ _bind_append_for_event_class(Event_for_Items, [path, 'bindText'],
121
+ context, cmd, *args)
122
+ self
123
+ end
124
+
125
+ def textbind_remove(*args)
126
+ _bind_remove_for_event_class(Event_for_Items, [path, 'bindText'], *args)
127
+ self
128
+ end
129
+
130
+ def textbindinfo(*args)
131
+ _bindinfo_for_event_class(Event_for_Items, [path, 'bindText'], *args)
132
+ end
133
+
134
+ def delete(*args)
135
+ tk_send('delete', *args)
136
+ self
137
+ end
138
+
139
+ def edit(item, text, *args)
140
+ tk_send('edit', tagid(item), text, *args)
141
+ self
142
+ end
143
+
144
+ def exist?(item)
145
+ bool(tk_send('exists', tagid(item)))
146
+ end
147
+
148
+ def index(item)
149
+ num_or_str(tk_send('index', tagid(item)))
150
+ end
151
+
152
+ def insert(idx, item, keys={})
153
+ tk_send('insert', idx, tagid(item), *hash_kv(keys))
154
+ self
155
+ end
156
+
157
+ def get_item(idx)
158
+ tk_send('items', idx)
159
+ end
160
+
161
+ def items(first=None, last=None)
162
+ list(tk_send('items', first, last))
163
+ end
164
+
165
+ def move(item, idx)
166
+ tk_send('move', tagid(item), idx)
167
+ self
168
+ end
169
+
170
+ def reorder(neworder)
171
+ tk_send('reorder', neworder)
172
+ self
173
+ end
174
+
175
+ def see(item)
176
+ tk_send('see', tagid(item))
177
+ self
178
+ end
179
+
180
+ def selection_clear
181
+ tk_send_without_enc('selection', 'clear')
182
+ self
183
+ end
184
+
185
+ def selection_set(*args)
186
+ tk_send_without_enc('selection', 'set',
187
+ *(args.collect{|item| tagid(item)}))
188
+ self
189
+ end
190
+
191
+ def selection_add(*args)
192
+ tk_send_without_enc('selection', 'add',
193
+ *(args.collect{|item| tagid(item)}))
194
+ self
195
+ end
196
+
197
+ def selection_remove(*args)
198
+ tk_send_without_enc('selection', 'remove',
199
+ *(args.collect{|item| tagid(item)}))
200
+ self
201
+ end
202
+
203
+ def selection_get(*args)
204
+ simplelist(tk_send_without_enc('selection', 'get')).collect{|item|
205
+ Tk::BWidget::ListBox::Item.id2obj(self, item)
206
+ }
207
+ end
208
+ end
209
+
210
+ class Tk::BWidget::ListBox::Item
211
+ include TkTreatTagFont
212
+
213
+ ListItem_TBL = TkCore::INTERP.create_table
214
+
215
+ (ListItem_ID = ['bw:item'.freeze, TkUtil.untrust('00000')]).instance_eval{
216
+ @mutex = Mutex.new
217
+ def mutex; @mutex; end
218
+ freeze
219
+ }
220
+
221
+ TkCore::INTERP.init_ip_env{
222
+ ListItem_TBL.mutex.synchronize{ ListItem_TBL.clear }
223
+ }
224
+
225
+ def self.id2obj(lbox, id)
226
+ lpath = lbox.path
227
+ ListItem_TBL.mutex.synchronize{
228
+ if ListItem_TBL[lpath]
229
+ ListItem_TBL[lpath][id]? ListItem_TBL[lpath][id]: id
230
+ else
231
+ id
232
+ end
233
+ }
234
+ end
235
+
236
+ def initialize(lbox, *args)
237
+ if lbox.kind_of?(Tk::BWidget::ListBox)
238
+ @listbox = lbox
239
+ else
240
+ fail RuntimeError,
241
+ "expect Tk::BWidget::ListBox or Tk::BWidget::ListBox::Item for 1st argument"
242
+ end
243
+
244
+ if args[-1].kind_of?(Hash)
245
+ keys = _symbolkey2str(args.pop)
246
+ else
247
+ keys = {}
248
+ end
249
+
250
+ index = keys.delete('index')
251
+ unless args.empty?
252
+ index = args.shift
253
+ end
254
+ index = 'end' unless index
255
+
256
+ unless args.empty?
257
+ fail RuntimeError, 'too much arguments'
258
+ end
259
+
260
+ @lpath = @listbox.path
261
+
262
+ if keys.key?('itemname')
263
+ @path = @id = keys.delete('itemname')
264
+ else
265
+ ListItem_ID.mutex.synchronize{
266
+ @path = @id = ListItem_ID.join(TkCore::INTERP._ip_id_)
267
+ ListItem_ID[1].succ!
268
+ }
269
+ end
270
+
271
+ ListItem_TBL.mutex.synchronize{
272
+ ListItem_TBL[@id] = self
273
+ ListItem_TBL[@lpath] = {} unless ListItem_TBL[@lpath]
274
+ ListItem_TBL[@lpath][@id] = self
275
+ }
276
+
277
+ @listbox.insert(index, @id, keys)
278
+ end
279
+
280
+ def listbox
281
+ @listbox
282
+ end
283
+
284
+ def id
285
+ @id
286
+ end
287
+
288
+ def [](key)
289
+ cget(key)
290
+ end
291
+
292
+ def []=(key, val)
293
+ configure(key, val)
294
+ val
295
+ end
296
+
297
+ def cget_tkstring(key)
298
+ @listbox.itemcget_tkstring(@id, key)
299
+ end
300
+ def cget(key)
301
+ @listbox.itemcget(@id, key)
302
+ end
303
+ def cget_strict(key)
304
+ @listbox.itemcget_strict(@id, key)
305
+ end
306
+
307
+ def configure(key, val=None)
308
+ @listbox.itemconfigure(@id, key, val)
309
+ end
310
+
311
+ def configinfo(key=nil)
312
+ @listbox.itemconfiginfo(@id, key)
313
+ end
314
+
315
+ def current_configinfo(key=nil)
316
+ @listbox.current_itemconfiginfo(@id, key)
317
+ end
318
+
319
+ def delete
320
+ @listbox.delete(@id)
321
+ self
322
+ end
323
+
324
+ def edit(*args)
325
+ @listbox.edit(@id, *args)
326
+ self
327
+ end
328
+
329
+ def exist?
330
+ @listbox.exist?(@id)
331
+ end
332
+
333
+ def index
334
+ @listbox.index(@id)
335
+ end
336
+
337
+ def move(index)
338
+ @listbox.move(@id, index)
339
+ end
340
+
341
+ def see
342
+ @listbox.see(@id)
343
+ end
344
+
345
+ def selection_add
346
+ @listbox.selection_add(@id)
347
+ end
348
+
349
+ def selection_remove
350
+ @listbox.selection_remove(@id)
351
+ end
352
+
353
+ def selection_set
354
+ @listbox.selection_set(@id)
355
+ end
356
+
357
+ def selection_toggle
358
+ @listbox.selection_toggle(@id)
359
+ end
360
+ end
361
+