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,132 @@
1
+ #
2
+ # tkextlib/bwidget/mainframe.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/progressbar'
10
+
11
+ module Tk
12
+ module BWidget
13
+ class MainFrame < TkWindow
14
+ end
15
+ end
16
+ end
17
+
18
+ class Tk::BWidget::MainFrame
19
+ TkCommandNames = ['MainFrame'.freeze].freeze
20
+ WidgetClassName = 'MainFrame'.freeze
21
+ WidgetClassNames[WidgetClassName] ||= self
22
+
23
+ def __strval_optkeys
24
+ super() << 'progressfg'
25
+ end
26
+ private :__strval_optkeys
27
+
28
+ def __tkvariable_optkeys
29
+ super() << 'progressvar'
30
+ end
31
+ private :__tkvariable_optkeys
32
+
33
+ def __val2ruby_optkeys # { key=>proc, ... }
34
+ # The method is used to convert a opt-value to a ruby's object.
35
+ # When get the value of the option "key", "proc.call(value)" is called.
36
+ {
37
+ 'menu'=>proc{|v| simplelist(v).collect!{|elem| simplelist(v)}}
38
+ }
39
+ end
40
+ private :__val2ruby_optkeys
41
+
42
+ def add_indicator(keys={}, &b)
43
+ win = window(tk_send('addindicator', *hash_kv(keys)))
44
+ if b
45
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
46
+ win.instance_exec(self, &b)
47
+ else
48
+ win.instance_eval(&b)
49
+ end
50
+ end
51
+ win
52
+ end
53
+
54
+ def add_toolbar(&b)
55
+ win = window(tk_send('addtoolbar'))
56
+ if b
57
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
58
+ win.instance_exec(self, &b)
59
+ else
60
+ win.instance_eval(&b)
61
+ end
62
+ end
63
+ win
64
+ end
65
+
66
+ def get_frame(&b)
67
+ win = window(tk_send('getframe'))
68
+ if b
69
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
70
+ win.instance_exec(self, &b)
71
+ else
72
+ win.instance_eval(&b)
73
+ end
74
+ end
75
+ win
76
+ end
77
+
78
+ def get_indicator(idx, &b)
79
+ win = window(tk_send('getindicator', idx))
80
+ if b
81
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
82
+ win.instance_exec(self, &b)
83
+ else
84
+ win.instance_eval(&b)
85
+ end
86
+ end
87
+ win
88
+ end
89
+
90
+ def get_menu(menu_id, &b)
91
+ win = window(tk_send('getmenu', menu_id))
92
+ if b
93
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
94
+ win.instance_exec(self, &b)
95
+ else
96
+ win.instance_eval(&b)
97
+ end
98
+ end
99
+ win
100
+ end
101
+
102
+ def get_toolbar(idx, &b)
103
+ win = window(tk_send('gettoolbar', idx))
104
+ if b
105
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
106
+ win.instance_exec(self, &b)
107
+ else
108
+ win.instance_eval(&b)
109
+ end
110
+ end
111
+ win
112
+ end
113
+
114
+ def get_menustate(tag)
115
+ tk_send('getmenustate', tag) # return state name string
116
+ end
117
+
118
+ def set_menustate(tag, state)
119
+ tk_send('setmenustate', tag, state)
120
+ self
121
+ end
122
+
123
+ def show_statusbar(name)
124
+ tk_send('showstatusbar', name)
125
+ self
126
+ end
127
+
128
+ def show_toolbar(idx, mode)
129
+ tk_send('showtoolbar', idx, mode)
130
+ self
131
+ end
132
+ end
@@ -0,0 +1,192 @@
1
+ #
2
+ # tkextlib/bwidget/messagedlg.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+
6
+ require 'tk'
7
+ require 'tkextlib/bwidget.rb'
8
+ require 'tkextlib/bwidget/dialog.rb'
9
+
10
+ module Tk
11
+ module BWidget
12
+ class MessageDlg < TkWindow
13
+ end
14
+ end
15
+ end
16
+
17
+ class Tk::BWidget::MessageDlg
18
+ TkCommandNames = ['MessageDlg'.freeze].freeze
19
+ WidgetClassName = 'MessageDlg'.freeze
20
+ WidgetClassNames[WidgetClassName] ||= self
21
+
22
+ def initialize(parent=nil, keys=nil)
23
+ @relative = ''
24
+ if parent.kind_of?(Hash)
25
+ keys = _symbolkey2str(parent)
26
+ @relative = keys['parent'] if keys.key?('parent')
27
+ @relative = keys.delete('relative') if keys.key?('relative')
28
+ super(keys)
29
+ elsif keys
30
+ keys = _symbolkey2str(keys)
31
+ @relative = keys.delete('parent') if keys.key?('parent')
32
+ @relative = keys.delete('relative') if keys.key?('relative')
33
+ super(parent, keys)
34
+ else
35
+ super(parent)
36
+ end
37
+ end
38
+
39
+ def create_self(keys)
40
+ # NOT create widget.
41
+ # Because the widget no longer exist when returning from creation.
42
+ @keys = _symbolkey2str(keys).update('parent'=>@relative)
43
+ @info = nil
44
+ end
45
+ private :create_self
46
+
47
+ def __strval_optkeys
48
+ super() << 'message' << 'title'
49
+ end
50
+ private :__strval_optkeys
51
+
52
+ def __listval_optkeys
53
+ super() << 'buttons'
54
+ end
55
+ private :__listval_optkeys
56
+
57
+ def cget(slot)
58
+ slot = slot.to_s
59
+ if slot == 'relative'
60
+ slot = 'parent'
61
+ end
62
+ if winfo_exist?
63
+ val = super(slot)
64
+ @keys[slot] = val
65
+ end
66
+ @keys[slot]
67
+ end
68
+ def cget_strict(slot)
69
+ slot = slot.to_s
70
+ if slot == 'relative'
71
+ slot = 'parent'
72
+ end
73
+ if winfo_exist?
74
+ val = super(slot)
75
+ @keys[slot] = val
76
+ end
77
+ @keys[slot]
78
+ end
79
+
80
+ def configure(slot, value=None)
81
+ if winfo_exist?
82
+ super(slot, value)
83
+ end
84
+ if slot.kind_of?(Hash)
85
+ slot = _symbolkey2str(slot)
86
+ slot['parent'] = slot.delete('relative') if slot.key?('relative')
87
+ @keys.update(slot)
88
+
89
+ if @info
90
+ # update @info
91
+ slot.each{|k, v|
92
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
93
+ if (inf = @info.assoc(k))
94
+ inf[-1] = v
95
+ else
96
+ @info << [k, '', '', '', v]
97
+ end
98
+ else
99
+ if (inf = @info[k])
100
+ inf[-1] = v
101
+ else
102
+ @info[k] = ['', '', '', v]
103
+ end
104
+ end
105
+ }
106
+ end
107
+
108
+ else # ! Hash
109
+ slot = slot.to_s
110
+ slot = 'parent' if slot == 'relative'
111
+ @keys[slot] = value
112
+
113
+ if @info
114
+ # update @info
115
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
116
+ if (inf = @info.assoc(slot))
117
+ inf[-1] = value
118
+ else
119
+ @info << [slot, '', '', '', value]
120
+ end
121
+ else
122
+ if (inf = @info[slot])
123
+ inf[-1] = value
124
+ else
125
+ @info[slot] = ['', '', '', value]
126
+ end
127
+ end
128
+ end
129
+ end
130
+
131
+ self
132
+ end
133
+
134
+ def configinfo(slot=nil)
135
+ if winfo_exist?
136
+ @info = super()
137
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
138
+ @info << ['relative', 'parent']
139
+ else
140
+ @info['relative'] = 'parent'
141
+ end
142
+ end
143
+
144
+ if TkComm::GET_CONFIGINFO_AS_ARRAY
145
+ if @info
146
+ if winfo_exist?
147
+ # update @keys
148
+ @info.each{|inf| @keys[inf[0]] = inf[-1] if inf.size > 2 }
149
+ end
150
+ else
151
+ @info = []
152
+ @keys.each{|k, v|
153
+ @info << [k, '', '', '', v]
154
+ }
155
+ @info << ['relative', 'parent']
156
+ end
157
+
158
+ if slot
159
+ @info.asoc(slot.to_s).dup
160
+ else
161
+ @info.dup
162
+ end
163
+
164
+ else # ! TkComm::GET_CONFIGINFO_AS_ARRAY
165
+ if @info
166
+ if winfo_exist?
167
+ # update @keys
168
+ @info.each{|k, inf| @keys[k] = inf[-1] if inf.size > 2 }
169
+ end
170
+ else
171
+ @info = {}
172
+ @keys.each{|k, v|
173
+ @info[k] = ['', '', '', v]
174
+ }
175
+ @info['relative'] = 'parent'
176
+ end
177
+
178
+ if slot
179
+ @info[slot.to_s].dup
180
+ else
181
+ @info.dup
182
+ end
183
+ end
184
+ end
185
+
186
+ def create
187
+ # return the index of the pressed button, or nil if it is destroyed
188
+ ret = num_or_str(tk_call(self.class::TkCommandNames[0],
189
+ @path, *hash_kv(@keys)))
190
+ (ret < 0)? nil: ret
191
+ end
192
+ end
@@ -0,0 +1,166 @@
1
+ #
2
+ # tkextlib/bwidget/notebook.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
+
10
+ module Tk
11
+ module BWidget
12
+ class NoteBook < TkWindow
13
+ end
14
+ end
15
+ end
16
+
17
+ class Tk::BWidget::NoteBook
18
+ include TkItemConfigMethod
19
+
20
+ TkCommandNames = ['NoteBook'.freeze].freeze
21
+ WidgetClassName = 'NoteBook'.freeze
22
+ WidgetClassNames[WidgetClassName] ||= self
23
+
24
+ class Event_for_Tabs < TkEvent::Event
25
+ def self._get_extra_args_tbl
26
+ [
27
+ TkComm.method(:string) # page idenfier
28
+ ]
29
+ end
30
+ end
31
+
32
+ def __boolval_optkeys
33
+ super() << 'homogeneous'
34
+ end
35
+ private :__boolval_optkeys
36
+
37
+ def tagid(id)
38
+ if id.kind_of?(TkWindow)
39
+ #id.path
40
+ id.epath
41
+ elsif id.kind_of?(TkObject)
42
+ id.to_eval
43
+ else
44
+ # id.to_s
45
+ _get_eval_string(id)
46
+ end
47
+ end
48
+
49
+ #def tabbind(*args)
50
+ # _bind_for_event_class(Event_for_Tabs, [path, 'bindtabs'], *args)
51
+ # self
52
+ #end
53
+ def tabbind(context, *args)
54
+ #if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
55
+ if TkComm._callback_entry?(args[0]) || !block_given?
56
+ cmd = args.shift
57
+ else
58
+ cmd = Proc.new
59
+ end
60
+ _bind_for_event_class(Event_for_Tabs, [path, 'bindtabs'],
61
+ context, cmd, *args)
62
+ self
63
+ end
64
+
65
+ #def tabbind_append(*args)
66
+ # _bind_append_for_event_class(Event_for_Tabs, [path, 'bindtabs'], *args)
67
+ # self
68
+ #end
69
+ def tabbind_append(context, *args)
70
+ #if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
71
+ if TkComm._callback_entry?(args[0]) || !block_given?
72
+ cmd = args.shift
73
+ else
74
+ cmd = Proc.new
75
+ end
76
+ _bind_append_for_event_class(Event_for_Tabs, [path, 'bindtabs'],
77
+ context, cmd, *args)
78
+ self
79
+ end
80
+
81
+ def tabbind_remove(*args)
82
+ _bind_remove_for_event_class(Event_for_Tabs, [path, 'bindtabs'], *args)
83
+ self
84
+ end
85
+
86
+ def tabbindinfo(*args)
87
+ _bindinfo_for_event_class(Event_for_Tabs, [path, 'bindtabs'], *args)
88
+ end
89
+
90
+ def add(page, &b)
91
+ win = window(tk_send('add', tagid(page)))
92
+ if b
93
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
94
+ win.instance_exec(self, &b)
95
+ else
96
+ win.instance_eval(&b)
97
+ end
98
+ end
99
+ win
100
+ end
101
+
102
+ def compute_size
103
+ tk_send('compute_size')
104
+ self
105
+ end
106
+
107
+ def delete(page, destroyframe=None)
108
+ tk_send('delete', tagid(page), destroyframe)
109
+ self
110
+ end
111
+
112
+ def get_frame(page, &b)
113
+ win = window(tk_send('getframe', tagid(page)))
114
+ if b
115
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
116
+ win.instance_exec(self, &b)
117
+ else
118
+ win.instance_eval(&b)
119
+ end
120
+ end
121
+ win
122
+ end
123
+
124
+ def index(page)
125
+ num_or_str(tk_send('index', tagid(page)))
126
+ end
127
+
128
+ def insert(index, page, keys={}, &b)
129
+ win = window(tk_send('insert', index, tagid(page), *hash_kv(keys)))
130
+ if b
131
+ if TkCore::WITH_RUBY_VM ### Ruby 1.9 !!!!
132
+ win.instance_exec(self, &b)
133
+ else
134
+ win.instance_eval(&b)
135
+ end
136
+ end
137
+ win
138
+ end
139
+
140
+ def move(page, index)
141
+ tk_send('move', tagid(page), index)
142
+ self
143
+ end
144
+
145
+ def get_page(page)
146
+ tk_send('pages', page)
147
+ end
148
+
149
+ def pages(first=None, last=None)
150
+ list(tk_send('pages', first, last))
151
+ end
152
+
153
+ def raise(page=nil)
154
+ if page
155
+ tk_send('raise', page)
156
+ self
157
+ else
158
+ tk_send('raise')
159
+ end
160
+ end
161
+
162
+ def see(page)
163
+ tk_send('see', page)
164
+ self
165
+ end
166
+ end