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,102 @@
1
+ #
2
+ # ttk::dialog (tile-0.7+)
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+ require 'tkextlib/tile.rb'
7
+
8
+ module Tk
9
+ module Tile
10
+ class Dialog < TkWindow
11
+ end
12
+ end
13
+ end
14
+
15
+ begin
16
+ TkPackage.require('ttk::dialog') # this may be required.
17
+ rescue RuntimeError
18
+ # ignore
19
+ end
20
+
21
+ class Tk::Tile::Dialog
22
+ TkCommandNames = ['::ttk::dialog'.freeze].freeze
23
+
24
+ def self.show(*args)
25
+ dialog = self.new(*args)
26
+ dialog.show
27
+ [dialog.status, dialog.value]
28
+ end
29
+ def self.display(*args)
30
+ self.show(*args)
31
+ end
32
+
33
+ def self.define_dialog_type(name, keys)
34
+ Tk.tk_call('::ttk::dialog::define', name, keys)
35
+ name
36
+ end
37
+
38
+ def self.style(*args)
39
+ ['Dialog', *(args.map!{|a| _get_eval_string(a)})].join('.')
40
+ end
41
+
42
+ #########################
43
+
44
+ def initialize(keys={})
45
+ @keys = _symbolkey2str(keys)
46
+ super(*args)
47
+ end
48
+
49
+ def create_self(keys)
50
+ # dummy
51
+ end
52
+ private :create_self
53
+
54
+ def show
55
+ tk_call(self.class::TkCommandNames[0], @path, *hash_kv(@keys))
56
+ end
57
+ alias display show
58
+
59
+ def client_frame
60
+ window(tk_call_without_enc('::ttk::dialog::clientframe', @path))
61
+ end
62
+
63
+ def cget_strict(slot)
64
+ @keys[slot.to_s]
65
+ end
66
+ def cget(slot)
67
+ @keys[slot.to_s]
68
+ end
69
+ =begin
70
+ def cget(slot)
71
+ unless TkConfigMethod.__IGNORE_UNKNOWN_CONFIGURE_OPTION__
72
+ cget_strict(slot)
73
+ else
74
+ cget_strict(slot) rescue nil
75
+ end
76
+ end
77
+ =end
78
+
79
+ def configure(slot, value=None)
80
+ if slot.kind_of?(Hash)
81
+ slot.each{|k, v| configure(k, v)}
82
+ else
83
+ slot = slot.to_s
84
+ value = _symbolkey2str(value) if value.kind_of?(Hash)
85
+ if value && value != None
86
+ @keys[slot] = value
87
+ else
88
+ @keys.delete(slot)
89
+ end
90
+ end
91
+ self
92
+ end
93
+
94
+ def configinfo(slot = nil)
95
+ if slot
96
+ slot = slot.to_s
97
+ [ slot, nil, nil, nil, @keys[slot] ]
98
+ else
99
+ @keys.collect{|k, v| [ k, nil, nil, nil, v ] }
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,8 @@
1
+ #
2
+ # setup.rb -- setup script before calling TkPackage.require()
3
+ #
4
+ # If you need some setup operations (for example, add a library path
5
+ # to the library search path) before using Tcl/Tk library packages
6
+ # wrapped by Ruby scripts in this directory, please write the setup
7
+ # operations in this file.
8
+ #
@@ -0,0 +1,32 @@
1
+ #
2
+ # ttk::sizegrip widget
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+ require 'tkextlib/tile.rb'
7
+
8
+ module Tk
9
+ module Tile
10
+ class SizeGrip < TkWindow
11
+ end
12
+ Sizegrip = SizeGrip
13
+ end
14
+ end
15
+
16
+ class Tk::Tile::SizeGrip < TkWindow
17
+ include Tk::Tile::TileWidget
18
+
19
+ TkCommandNames = ['::ttk::sizegrip'.freeze].freeze
20
+ WidgetClassName = 'TSizegrip'.freeze
21
+ WidgetClassNames[WidgetClassName] ||= self
22
+
23
+ def self.style(*args)
24
+ [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
25
+ end
26
+ end
27
+
28
+ #Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Sizegrip,
29
+ # :TkSizegrip, :TkSizeGrip)
30
+ Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/sizegrip.rb',
31
+ :Ttk, Tk::Tile::Sizegrip,
32
+ :TkSizegrip, :TkSizeGrip)
@@ -0,0 +1,336 @@
1
+ #
2
+ # style commands
3
+ # by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4
+ #
5
+ require 'tk'
6
+ require 'tkextlib/tile.rb'
7
+
8
+ module Tk
9
+ module Tile
10
+ module Style
11
+ end
12
+ end
13
+ end
14
+
15
+ module Tk::Tile::Style
16
+ extend TkCore
17
+ end
18
+
19
+ class << Tk::Tile::Style
20
+ if Tk::Tile::TILE_SPEC_VERSION_ID < 8
21
+ TkCommandNames = ['style'.freeze].freeze
22
+
23
+ # --- Tk::Tile::Style.__define_wrapper_proc_for_compatibility__! ---
24
+ # On Ttk (Tile) extension, 'style' command has imcompatible changes
25
+ # depend on the version of the extention. It requires modifying the
26
+ # Tcl/Tk scripts to define local styles. The rule for modification
27
+ # is a simple one. But, if users want to keep compatibility between
28
+ # versions of the extension, they will have to contrive to do that.
29
+ # It may be troublesome, especially for Ruby/Tk users.
30
+ # This method may help such work. This method make some definitions
31
+ # on the Tcl/Tk interpreter to work with different version of style
32
+ # command format. Please give attention to use this method. It may
33
+ # conflict with some definitions on Tcl/Tk scripts.
34
+ if Tk::Tile::TILE_SPEC_VERSION_ID < 7
35
+ def __define_wrapper_proc_for_compatibility__!
36
+ __define_themes_and_setTheme_proc__!
37
+
38
+ unless Tk.info(:commands, '::ttk::style').empty?
39
+ # fail RuntimeError,
40
+ # "can't define '::ttk::style' command (already exist)"
41
+
42
+ # do nothing !!!
43
+ warn "Warning: can't define '::ttk::style' command (already exist)" if $DEBUG
44
+ return
45
+ end
46
+ TkCore::INTERP.add_tk_procs('::ttk::style', 'args', <<-'EOS')
47
+ if [string equal [lrange $args 0 1] {element create}] {
48
+ if [string equal [lindex $args 3] image] {
49
+ set spec [lindex $args 4]
50
+ set map [lrange $spec 1 end]
51
+ if [llength $map] {
52
+ # return [eval [concat [list ::style element create [lindex $args 2] image [lindex $spec 0] -map $map] [lrange $args 5 end]]]
53
+ return [uplevel 1 [list ::style element create [lindex $args 2] image [lindex $spec 0] -map $map] [lrange $args 5 end]]
54
+ }
55
+ }
56
+ }
57
+ # return [eval "::style $args"]
58
+ return [uplevel 1 ::style $args]
59
+ EOS
60
+ #########################
61
+ end
62
+ else ### TILE_SPEC_VERSION_ID == 7
63
+ def __define_wrapper_proc_for_compatibility__!
64
+ __define_themes_and_setTheme_proc__!
65
+
66
+ unless Tk.info(:commands, '::ttk::style').empty?
67
+ # fail RuntimeError,
68
+ # "can't define '::ttk::style' command (already exist)"
69
+
70
+ # do nothing !!!
71
+ warn "Warning: can't define '::ttk::style' command (already exist)" if $DEBUG
72
+ return
73
+ end
74
+ TkCore::INTERP.add_tk_procs('::ttk::style', 'args', <<-'EOS')
75
+ if [string equal [lrange $args 0 1] {element create}] {
76
+ if [string equal [lindex $args 3] image] {
77
+ set spec [lindex $args 4]
78
+ set map [lrange $spec 1 end]
79
+ if [llength $map] {
80
+ # return [eval [concat [list ::style element create [lindex $args 2] image [lindex $spec 0] -map $map] [lrange $args 5 end]]]
81
+ return [uplevel 1 [list ::style element create [lindex $args 2] image [lindex $spec 0] -map $map] [lrange $args 5 end]]]
82
+ }
83
+ }
84
+ } elseif [string equal [lindex $args 0] default] {
85
+ # return [eval "::style [lreplace $args 0 0 configure]"]
86
+ return [uplevel 1 ::style [lreplace $args 0 0 configure]]
87
+ }
88
+ # return [eval "::style $args"]
89
+ return [uplevel 1 ::style $args]
90
+ EOS
91
+ #########################
92
+ end
93
+ end
94
+ else ### TILE_SPEC_VERSION_ID >= 8
95
+ TkCommandNames = ['::ttk::style'.freeze].freeze
96
+
97
+ def __define_wrapper_proc_for_compatibility__!
98
+ __define_themes_and_setTheme_proc__!
99
+
100
+ unless Tk.info(:commands, '::style').empty?
101
+ # fail RuntimeError, "can't define '::style' command (already exist)"
102
+
103
+ # do nothing !!!
104
+ warn "Warning: can't define '::style' command (already exist)" if $DEBUG
105
+ return
106
+ end
107
+ TkCore::INTERP.add_tk_procs('::style', 'args', <<-'EOS')
108
+ if [string equal [lrange $args 0 1] {element create}] {
109
+ if [string equal [lindex $args 3] image] {
110
+ set name [lindex $args 4]
111
+ set opts [lrange $args 5 end]
112
+ set idx [lsearch $opts -map]
113
+ if {$idx >= 0 && [expr $idx % 2 == 0]} {
114
+ # return [eval [concat [list ::ttk::style element create [lindex $args 2] image [concat $name [lindex $opts [expr $idx + 1]]]] [lreplace $opts $idx [expr $idx + 1]]]]
115
+ return [uplevel 1 [list ::ttk::style element create [lindex $args 2] image [concat $name [lindex $opts [expr $idx + 1]]]] [lreplace $opts $idx [expr $idx + 1]]]
116
+ }
117
+ }
118
+ } elseif [string equal [lindex $args 0] default] {
119
+ # return [eval "::ttk::style [lreplace $args 0 0 configure]"]
120
+ return [uplevel 1 ::ttk::style [lreplace $args 0 0 configure]]
121
+ }
122
+ # return [eval "::ttk::style $args"]
123
+ return [uplevel 1 ::ttk::style $args]
124
+ EOS
125
+ #########################
126
+ end
127
+ end
128
+
129
+ def __define_themes_and_setTheme_proc__!
130
+ TkCore::INTERP.add_tk_procs('::ttk::themes', '{ptn *}', <<-'EOS')
131
+ #set themes [list]
132
+ set themes [::ttk::style theme names]
133
+ foreach pkg [lsearch -inline -all -glob [package names] ttk::theme::$ptn] {
134
+ set theme [namespace tail $pkg]
135
+ if {[lsearch -exact $themes $theme] < 0} {
136
+ lappend themes $theme
137
+ }
138
+ }
139
+ foreach pkg [lsearch -inline -all -glob [package names] tile::theme::$ptn] {
140
+ set theme [namespace tail $pkg]
141
+ if {[lsearch -exact $themes $theme] < 0} {
142
+ lappend themes $theme
143
+ }
144
+ }
145
+ return $themes
146
+ EOS
147
+ #########################
148
+ TkCore::INTERP.add_tk_procs('::ttk::setTheme', 'theme', <<-'EOS')
149
+ variable currentTheme
150
+ if {[lsearch -exact [::ttk::style theme names] $theme] < 0} {
151
+ package require [lsearch -inline -regexp [package names] (ttk|tile)::theme::$theme]
152
+ }
153
+ ::ttk::style theme use $theme
154
+ set currentTheme $theme
155
+ EOS
156
+ end
157
+ private :__define_themes_and_setTheme_proc__!
158
+
159
+ def configure(style=nil, keys=nil)
160
+ if style.kind_of?(Hash)
161
+ keys = style
162
+ style = nil
163
+ end
164
+ style = '.' unless style
165
+
166
+ if Tk::Tile::TILE_SPEC_VERSION_ID < 7
167
+ sub_cmd = 'default'
168
+ else
169
+ sub_cmd = 'configure'
170
+ end
171
+
172
+ if keys && keys != None
173
+ tk_call(TkCommandNames[0], sub_cmd, style, *hash_kv(keys))
174
+ else
175
+ tk_call(TkCommandNames[0], sub_cmd, style)
176
+ end
177
+ end
178
+ alias default configure
179
+
180
+ def map(style=nil, keys=nil)
181
+ if style.kind_of?(Hash)
182
+ keys = style
183
+ style = nil
184
+ end
185
+ style = '.' unless style
186
+
187
+ if keys && keys != None
188
+ if keys.kind_of?(Hash)
189
+ tk_call(TkCommandNames[0], 'map', style, *hash_kv(keys))
190
+ else
191
+ simplelist(tk_call(TkCommandNames[0], 'map', style, '-' << keys.to_s))
192
+ end
193
+ else
194
+ ret = {}
195
+ Hash[*(simplelist(tk_call(TkCommandNames[0], 'map', style)))].each{|k, v|
196
+ ret[k[1..-1]] = list(v)
197
+ }
198
+ ret
199
+ end
200
+ end
201
+ alias map_configure map
202
+
203
+ def map_configinfo(style=nil, key=None)
204
+ style = '.' unless style
205
+ map(style, key)
206
+ end
207
+
208
+ def map_default_configinfo(key=None)
209
+ map('.', key)
210
+ end
211
+
212
+ def lookup(style, opt, state=None, fallback_value=None)
213
+ tk_call(TkCommandNames[0], 'lookup', style,
214
+ '-' << opt.to_s, state, fallback_value)
215
+ end
216
+
217
+ include Tk::Tile::ParseStyleLayout
218
+
219
+ def layout(style=nil, spec=nil)
220
+ if style.kind_of?(Hash)
221
+ spec = style
222
+ style = nil
223
+ end
224
+ style = '.' unless style
225
+
226
+ if spec
227
+ tk_call(TkCommandNames[0], 'layout', style, spec)
228
+ else
229
+ _style_layout(list(tk_call(TkCommandNames[0], 'layout', style)))
230
+ end
231
+ end
232
+
233
+ def element_create(name, type, *args)
234
+ if type == 'image' || type == :image
235
+ element_create_image(name, *args)
236
+ elsif type == 'vsapi' || type == :vsapi
237
+ element_create_vsapi(name, *args)
238
+ else
239
+ tk_call(TkCommandNames[0], 'element', 'create', name, type, *args)
240
+ end
241
+ end
242
+
243
+ def element_create_image(name, *args)
244
+ fail ArgumentError, 'Must supply a base image' unless (spec = args.shift)
245
+ if (opts = args.shift)
246
+ if opts.kind_of?(Hash)
247
+ opts = _symbolkey2str(opts)
248
+ else
249
+ fail ArgumentError, 'bad option'
250
+ end
251
+ end
252
+ fail ArgumentError, 'too many arguments' unless args.empty?
253
+
254
+ if spec.kind_of?(Array)
255
+ # probably, command format is tile 0.8+ (Tcl/Tk8.5+) style
256
+ if Tk::Tile::TILE_SPEC_VERSION_ID >= 8
257
+ if opts
258
+ tk_call(TkCommandNames[0],
259
+ 'element', 'create', name, 'image', spec, opts)
260
+ else
261
+ tk_call(TkCommandNames[0], 'element', 'create', name, 'image', spec)
262
+ end
263
+ else
264
+ fail ArgumentError, 'illegal arguments' if opts.key?('map')
265
+ base = spec.shift
266
+ opts['map'] = spec
267
+ tk_call(TkCommandNames[0],
268
+ 'element', 'create', name, 'image', base, opts)
269
+ end
270
+ else
271
+ # probably, command format is tile 0.7.8 or older style
272
+ if Tk::Tile::TILE_SPEC_VERSION_ID >= 8
273
+ spec = [spec, *(opts.delete('map'))] if opts.key?('map')
274
+ end
275
+ if opts
276
+ tk_call(TkCommandNames[0],
277
+ 'element', 'create', name, 'image', spec, opts)
278
+ else
279
+ tk_call(TkCommandNames[0], 'element', 'create', name, 'image', spec)
280
+ end
281
+ end
282
+ end
283
+
284
+ def element_create_vsapi(name, class_name, part_id, *args)
285
+ # supported on Tcl/Tk 8.6 or later
286
+
287
+ # argument check
288
+ if (state_map = args.shift || None)
289
+ if state_map.kind_of?(Hash)
290
+ opts = _symbolkey2str(state_map)
291
+ state_map = None
292
+ end
293
+ end
294
+ opts = args.shift || None
295
+ fail ArgumentError, "too many arguments" unless args.empty?
296
+
297
+ # define a Microsoft Visual Styles element
298
+ tk_call(TkCommandNames[0], 'element', 'create', name, 'vsapi',
299
+ class_name, part_id, state_map, opts)
300
+ end
301
+
302
+ def element_names()
303
+ list(tk_call(TkCommandNames[0], 'element', 'names'))
304
+ end
305
+
306
+ def element_options(elem)
307
+ simplelist(tk_call(TkCommandNames[0], 'element', 'options', elem))
308
+ end
309
+
310
+ def theme_create(name, keys=nil)
311
+ name = name.to_s
312
+ if keys && keys != None
313
+ tk_call(TkCommandNames[0], 'theme', 'create', name, *hash_kv(keys))
314
+ else
315
+ tk_call(TkCommandNames[0], 'theme', 'create', name)
316
+ end
317
+ name
318
+ end
319
+
320
+ def theme_settings(name, cmd=nil, &b)
321
+ name = name.to_s
322
+ cmd = Proc.new(&b) if !cmd && b
323
+ tk_call(TkCommandNames[0], 'theme', 'settings', name, cmd)
324
+ name
325
+ end
326
+
327
+ def theme_names()
328
+ list(tk_call(TkCommandNames[0], 'theme', 'names'))
329
+ end
330
+
331
+ def theme_use(name)
332
+ name = name.to_s
333
+ tk_call(TkCommandNames[0], 'theme', 'use', name)
334
+ name
335
+ end
336
+ end