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,84 @@
1
+ #
2
+ # tkextlib/tcllib/dialog.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Generic dialog widget (themed)
7
+ #
8
+
9
+ require 'tk'
10
+ require 'tkextlib/tcllib.rb'
11
+
12
+ # TkPackage.require('widget::dialog', '1.2')
13
+ TkPackage.require('widget::dialog')
14
+
15
+ module Tk::Tcllib
16
+ module Widget
17
+ class Dialog < TkWindow
18
+ PACKAGE_NAME = 'widget::dialog'.freeze
19
+ def self.package_name
20
+ PACKAGE_NAME
21
+ end
22
+
23
+ def self.package_version
24
+ begin
25
+ TkPackage.require('widget::dialog')
26
+ rescue
27
+ ''
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ class Tk::Tcllib::Widget::Dialog
35
+ TkCommandNames = ['::widget::dialog'.freeze].freeze
36
+
37
+ def __boolval_optkeys
38
+ ['separator', 'synchronous', 'transient']
39
+ end
40
+ private :__boolval_optkeys
41
+
42
+ def create_self(keys)
43
+ if keys and keys != None
44
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
45
+ *hash_kv(keys, true))
46
+ else
47
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
48
+ end
49
+ end
50
+ private :create_self
51
+
52
+ def add(what, *args)
53
+ window(tk_send('add', *args))
54
+ end
55
+
56
+ def get_frame
57
+ window(tk_send('getframe'))
58
+ end
59
+
60
+ def set_widget(widget)
61
+ tk_send('setwidget', widget)
62
+ self
63
+ end
64
+
65
+ def display
66
+ tk_send('display')
67
+ self
68
+ end
69
+ alias show display
70
+
71
+ def cancel
72
+ tk_send('cancel')
73
+ self
74
+ end
75
+
76
+ def close(reason = None)
77
+ tk_send('close', reason)
78
+ end
79
+
80
+ def withdraw
81
+ tk_send('withdraw')
82
+ self
83
+ end
84
+ end
@@ -0,0 +1,134 @@
1
+ #
2
+ # tkextlib/tcllib/getstring.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * A dialog which consists of an Entry, OK, and Cancel buttons.
7
+ #
8
+
9
+ require 'tk'
10
+ require 'tk/entry'
11
+ require 'tkextlib/tcllib.rb'
12
+
13
+ # TkPackage.require('getstring', '0.1')
14
+ TkPackage.require('getstring')
15
+
16
+ module Tk::Tcllib
17
+ class GetString_Dialog < TkWindow
18
+ PACKAGE_NAME = 'getstring'.freeze
19
+ def self.package_name
20
+ PACKAGE_NAME
21
+ end
22
+
23
+ def self.package_version
24
+ begin
25
+ TkPackage.require('getstring')
26
+ rescue
27
+ ''
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+
34
+ class Tk::Tcllib::GetString_Dialog
35
+ TkCommandNames = ['::getstring::tk_getString'.freeze].freeze
36
+ WidgetClassName = 'TkSDialog'.freeze
37
+ WidgetClassNames[WidgetClassName] ||= self
38
+
39
+ def self.show(*args)
40
+ dialog = self.new(*args)
41
+ dialog.show
42
+ [dialog.status, dialog.value]
43
+ end
44
+ def self.display(*args)
45
+ self.show(*args)
46
+ end
47
+
48
+ def initialize(*args) # args = (parent=nil, text='', keys=nil)
49
+ keys = args.pop
50
+ if keys.kind_of?(Hash)
51
+ text = args.pop
52
+ @keys = _symbolkey2str(keys)
53
+ args.push(keys)
54
+ else
55
+ text = keys
56
+ @keys = {}
57
+ end
58
+ if text
59
+ @text = text.dup
60
+ else
61
+ @text = ''
62
+ end
63
+
64
+ @variable = TkVariable.new
65
+ @status = nil
66
+
67
+ super(*args)
68
+ end
69
+
70
+ def create_self(keys)
71
+ # dummy
72
+ end
73
+ private :create_self
74
+
75
+ def show
76
+ @variable.value = ''
77
+ @status = bool(tk_call(self.class::TkCommandNames[0],
78
+ @path, @variable, @text, *hash_kv(@keys)))
79
+ end
80
+ alias display show
81
+
82
+ def status
83
+ @status
84
+ end
85
+
86
+ def value
87
+ @variable.value
88
+ end
89
+
90
+ def cget_strict(slot)
91
+ slot = slot.to_s
92
+ if slot == 'text'
93
+ @text
94
+ else
95
+ @keys[slot]
96
+ end
97
+ end
98
+ def cget(slot)
99
+ cget_strict(slot)
100
+ end
101
+
102
+ def configure(slot, value=None)
103
+ if slot.kind_of?(Hash)
104
+ slot.each{|k, v| configure(k, v)}
105
+ else
106
+ slot = slot.to_s
107
+ value = _symbolkey2str(value) if value.kind_of?(Hash)
108
+ if value && value != None
109
+ if slot == 'text'
110
+ @text = value.to_s
111
+ else
112
+ @keys[slot] = value
113
+ end
114
+ else
115
+ if slot == 'text'
116
+ @text = ''
117
+ else
118
+ @keys.delete(slot)
119
+ end
120
+ end
121
+ end
122
+ self
123
+ end
124
+
125
+ def configinfo(slot = nil)
126
+ if slot
127
+ slot = slot.to_s
128
+ [ slot, nil, nil, nil, ( (slot == 'text')? @text: @keys[slot] ) ]
129
+ else
130
+ @keys.collect{|k, v| [ k, nil, nil, nil, v ] } \
131
+ << [ 'text', nil, nil, nil, @text ]
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,73 @@
1
+ #
2
+ # tkextlib/tcllib/history.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Provides a history for Entry widgets
7
+ #
8
+
9
+ require 'tk'
10
+ require 'tk/entry'
11
+ require 'tkextlib/tcllib.rb'
12
+
13
+ # TkPackage.require('history', '0.1')
14
+ TkPackage.require('history')
15
+
16
+ module Tk::Tcllib
17
+ module History
18
+ PACKAGE_NAME = 'history'.freeze
19
+ def self.package_name
20
+ PACKAGE_NAME
21
+ end
22
+
23
+ def self.package_version
24
+ begin
25
+ TkPackage.require('history')
26
+ rescue
27
+ ''
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ module Tk::Tcllib::History
34
+ extend TkCore
35
+
36
+ def self.init(entry, length=None)
37
+ tk_call_without_enc('::history::init', entry.path, length)
38
+ entry.extend(self) # add methods to treat history to the entry widget
39
+ end
40
+
41
+ def self.remove(entry)
42
+ tk_call_without_enc('::history::remove', entry.path)
43
+ entry
44
+ end
45
+
46
+ def history_remove
47
+ tk_call_without_enc('::history::remove', @path)
48
+ self
49
+ end
50
+
51
+ def history_add(text)
52
+ tk_call('::history::add', @path, text)
53
+ self
54
+ end
55
+
56
+ def history_get
57
+ simplelist(tk_call_without_enc('::history::get', @path))
58
+ end
59
+
60
+ def history_clear
61
+ tk_call_without_enc('::history::clear', @path)
62
+ self
63
+ end
64
+
65
+ def history_configure(opt, value)
66
+ tk_call('::history::configure', @path, opt, value)
67
+ self
68
+ end
69
+
70
+ def history_configinfo(opt)
71
+ tk_call('::history::configure', @path, opt)
72
+ end
73
+ end
@@ -0,0 +1,146 @@
1
+ #
2
+ # tkextlib/tcllib/ico.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * Reading and writing windows icons
7
+ #
8
+
9
+ require 'tk'
10
+ require 'tk/image'
11
+ #require 'tkextlib/tcllib.rb'
12
+
13
+ # TkPackage.require('ico', '0.3')
14
+ TkPackage.require('ico')
15
+
16
+ module Tk
17
+ module Tcllib
18
+ class ICO < TkImage
19
+ PACKAGE_NAME = 'ico'.freeze
20
+ def self.package_name
21
+ PACKAGE_NAME
22
+ end
23
+
24
+ def self.package_version
25
+ begin
26
+ TkPackage.require('ico')
27
+ rescue
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ class Tk::Tcllib::ICO
36
+ def self.list(file, keys=nil)
37
+ tk_split_list(tk_call_without_enc('::ico::getIconList', file,
38
+ *hash_kv(keys, true)))
39
+ end
40
+
41
+ def self.icons(file, keys=nil)
42
+ tk_split_simplelist(tk_call_without_enc('::ico::icons', file,
43
+ *hash_kv(keys, true))).map{|elem|
44
+ num_or_str(elem)
45
+ }
46
+ end
47
+
48
+ def self.get_members(file, name, keys=nil)
49
+ tk_split_simplelist(tk_call_without_enc('::ico::getMembers', file, name,
50
+ *hash_kv(keys, true))).map{|elem|
51
+ name, width, height, bpp = tk_split_simplelist(elem)
52
+ [name, number(width), number(height), number(bpp)]
53
+ }
54
+ end
55
+
56
+ def self.get(file, index, keys=nil)
57
+ tk_call_without_enc('::ico::getIcon', file, index, *hash_kv(keys, true))
58
+ end
59
+ def self.get_icon(*args)
60
+ get(*args)
61
+ end
62
+
63
+ def self.get_by_name(file, name, keys=nil)
64
+ tk_call_without_enc('::ico::getIconByName', file, name,
65
+ *hash_kv(keys, true))
66
+ end
67
+ def self.get_icon_by_name(*args)
68
+ get_by_name(*args)
69
+ end
70
+
71
+ def self.get_fileicon(file, keys=nil)
72
+ tk_call_without_enc('::ico::getFileIcon', file, *hash_kv(keys, true))
73
+ end
74
+
75
+ def self.get_image(file, index, keys={})
76
+ keys = _symbolkey2str(keys)
77
+ keys.delete('format')
78
+ self.new(file, index, keys)
79
+ end
80
+
81
+ def self.get_data(file, index, keys={})
82
+ keys['format'] = 'data'
83
+ tk_split_list(tk_call_without_enc('::ico::getIcon', file, index,
84
+ *hash_kv(keys, true)))
85
+ end
86
+
87
+ def self.write(file, index, depth, data, keys=nil)
88
+ tk_call_without_enc('::ico::writeIcon', file, index, depth, data,
89
+ *hash_kv(keys, true))
90
+ end
91
+
92
+ def self.copy(from_file, from_index, to_file, to_index, keys=nil)
93
+ tk_call_without_enc('::ico::copyIcon',
94
+ from_file, from_index, to_file, to_index,
95
+ *hash_kv(keys, true))
96
+ end
97
+
98
+ def self.exe_to_ico(exe_file, ico_file, keys=nil)
99
+ tk_call_without_enc('::ico::copyIcon', exe_file, ico_file,
100
+ *hash_kv(keys, true))
101
+ end
102
+
103
+ def self.clear_cache(file=None)
104
+ tk_call_without_enc('::ico::clearCache', file)
105
+ end
106
+
107
+ def self.transparent_color(image, color)
108
+ if image.kind_of?(Array)
109
+ tk_split_list(tk_call_without_enc('::ico::transparentColor',
110
+ image, color))
111
+ else
112
+ tk_call_without_enc('::ico::transparentColor', image, color)
113
+ end
114
+ end
115
+
116
+ def self.show(file, keys=nil)
117
+ tk_call_without_enc('::ico::Show', file, *hash_kv(keys, true))
118
+ end
119
+
120
+ ###########################
121
+
122
+ def initialize(file, index, keys=nil)
123
+ keys = _symbolkey2str(keys)
124
+ if keys.key?('name')
125
+ @path = keys['name'].to_s
126
+ else
127
+ Tk_Image_ID.mutex.synchronize{
128
+ @path = Tk_Image_ID.join(TkCore::INTERP._ip_id_)
129
+ Tk_Image_ID[1].succ!
130
+ }
131
+ end
132
+ tk_call_without_enc('::ico::getIcon', file, index, '-name', @path,
133
+ '-format', 'image', *hash_kv(keys, true))
134
+ Tk_IMGTBL[@path] = self
135
+ end
136
+
137
+ def write(file, index, depth, keys=nil)
138
+ Tk::Tcllib::ICO.write(file, index, depth, @path, keys=nil)
139
+ self
140
+ end
141
+
142
+ def transparent_color(color)
143
+ tk_call_without_enc('::ico::transparentColor', @path, color)
144
+ self
145
+ end
146
+ end
@@ -0,0 +1,75 @@
1
+ #
2
+ # tkextlib/tcllib/ip_entry.rb
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ # * Part of tcllib extension
6
+ # * An IP address entry widget
7
+ #
8
+ # (The following is the original description of the library.)
9
+ #
10
+ # This package provides a widget for the entering of a IP address.
11
+ # It guarantees a valid address at all times.
12
+
13
+ require 'tk'
14
+ require 'tkextlib/tcllib.rb'
15
+
16
+ # TkPackage.require('ipentry', '0.1')
17
+ TkPackage.require('ipentry')
18
+
19
+ module Tk
20
+ module Tcllib
21
+ class IP_Entry < Tk::Entry
22
+ PACKAGE_NAME = 'ipentry'.freeze
23
+ def self.package_name
24
+ PACKAGE_NAME
25
+ end
26
+
27
+ def self.package_version
28
+ begin
29
+ TkPackage.require('ipentry')
30
+ rescue
31
+ ''
32
+ end
33
+ end
34
+ end
35
+ IPEntry = IP_Entry
36
+
37
+ class IP_Entry6 < IP_Entry
38
+ end
39
+ IPEntry6 = IP_Entry6
40
+ IP6_Entry = IP_Entry6
41
+ end
42
+ end
43
+
44
+ class Tk::Tcllib::IP_Entry
45
+ TkCommandNames = ['::ipentry::ipentry'.freeze].freeze
46
+ WidgetClassName = 'IPEntry'.freeze
47
+ WidgetClassNames[WidgetClassName] ||= self
48
+
49
+ def create_self(keys)
50
+ if keys and keys != None
51
+ tk_call_without_enc(self.class::TkCommandNames[0], @path,
52
+ *hash_kv(keys, true))
53
+ else
54
+ tk_call_without_enc(self.class::TkCommandNames[0], @path)
55
+ end
56
+ end
57
+ private :create_self
58
+
59
+ def __strval_optkeys
60
+ super() << 'fg' << 'bg' << 'insertbackground'
61
+ end
62
+ private :__strval_optkeys
63
+
64
+ def complete?
65
+ bool(tk_send_without_enc('complete'))
66
+ end
67
+
68
+ def insert(*ip)
69
+ tk_send_without_enc('insert', array2tk_list(ip.flatten))
70
+ end
71
+ end
72
+
73
+ class Tk::Tcllib::IP_Entry6 < Tk::Tcllib::IP_Entry
74
+ TkCommandNames = ['::ipentry::ipentry6'.freeze].freeze
75
+ end