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.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +17 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/lib/tcltk.rb +367 -0
- data/lib/tk.rb +5682 -0
- data/lib/tk/after.rb +6 -0
- data/lib/tk/autoload.rb +760 -0
- data/lib/tk/bgerror.rb +29 -0
- data/lib/tk/bindtag.rb +138 -0
- data/lib/tk/button.rb +31 -0
- data/lib/tk/canvas.rb +816 -0
- data/lib/tk/canvastag.rb +459 -0
- data/lib/tk/checkbutton.rb +32 -0
- data/lib/tk/clipboard.rb +75 -0
- data/lib/tk/clock.rb +71 -0
- data/lib/tk/composite.rb +484 -0
- data/lib/tk/console.rb +52 -0
- data/lib/tk/dialog.rb +326 -0
- data/lib/tk/encodedstr.rb +187 -0
- data/lib/tk/entry.rb +120 -0
- data/lib/tk/event.rb +562 -0
- data/lib/tk/font.rb +2351 -0
- data/lib/tk/frame.rb +132 -0
- data/lib/tk/grid.rb +279 -0
- data/lib/tk/image.rb +275 -0
- data/lib/tk/itemconfig.rb +1222 -0
- data/lib/tk/itemfont.rb +327 -0
- data/lib/tk/kinput.rb +71 -0
- data/lib/tk/label.rb +22 -0
- data/lib/tk/labelframe.rb +31 -0
- data/lib/tk/listbox.rb +284 -0
- data/lib/tk/macpkg.rb +80 -0
- data/lib/tk/menu.rb +718 -0
- data/lib/tk/menubar.rb +137 -0
- data/lib/tk/menuspec.rb +456 -0
- data/lib/tk/message.rb +24 -0
- data/lib/tk/mngfocus.rb +33 -0
- data/lib/tk/msgcat.rb +296 -0
- data/lib/tk/namespace.rb +551 -0
- data/lib/tk/optiondb.rb +377 -0
- data/lib/tk/optionobj.rb +212 -0
- data/lib/tk/pack.rb +107 -0
- data/lib/tk/package.rb +143 -0
- data/lib/tk/palette.rb +55 -0
- data/lib/tk/panedwindow.rb +260 -0
- data/lib/tk/place.rb +128 -0
- data/lib/tk/radiobutton.rb +73 -0
- data/lib/tk/root.rb +95 -0
- data/lib/tk/scale.rb +112 -0
- data/lib/tk/scrollable.rb +82 -0
- data/lib/tk/scrollbar.rb +183 -0
- data/lib/tk/scrollbox.rb +39 -0
- data/lib/tk/selection.rb +86 -0
- data/lib/tk/spinbox.rb +144 -0
- data/lib/tk/tagfont.rb +43 -0
- data/lib/tk/text.rb +1604 -0
- data/lib/tk/textimage.rb +88 -0
- data/lib/tk/textmark.rb +204 -0
- data/lib/tk/texttag.rb +321 -0
- data/lib/tk/textwindow.rb +154 -0
- data/lib/tk/timer.rb +669 -0
- data/lib/tk/toplevel.rb +264 -0
- data/lib/tk/ttk_selector.rb +98 -0
- data/lib/tk/txtwin_abst.rb +39 -0
- data/lib/tk/validation.rb +397 -0
- data/lib/tk/variable.rb +1799 -0
- data/lib/tk/virtevent.rb +139 -0
- data/lib/tk/winfo.rb +392 -0
- data/lib/tk/winpkg.rb +156 -0
- data/lib/tk/wm.rb +552 -0
- data/lib/tk/xim.rb +122 -0
- data/lib/tkafter.rb +4 -0
- data/lib/tkbgerror.rb +4 -0
- data/lib/tkcanvas.rb +4 -0
- data/lib/tkclass.rb +47 -0
- data/lib/tkconsole.rb +4 -0
- data/lib/tkdialog.rb +4 -0
- data/lib/tkentry.rb +4 -0
- data/lib/tkextlib/ICONS.rb +13 -0
- data/lib/tkextlib/ICONS/icons.rb +129 -0
- data/lib/tkextlib/ICONS/setup.rb +8 -0
- data/lib/tkextlib/SUPPORT_STATUS +198 -0
- data/lib/tkextlib/blt.rb +189 -0
- data/lib/tkextlib/blt/barchart.rb +79 -0
- data/lib/tkextlib/blt/bitmap.rb +112 -0
- data/lib/tkextlib/blt/busy.rb +83 -0
- data/lib/tkextlib/blt/component.rb +2218 -0
- data/lib/tkextlib/blt/container.rb +28 -0
- data/lib/tkextlib/blt/cutbuffer.rb +23 -0
- data/lib/tkextlib/blt/dragdrop.rb +269 -0
- data/lib/tkextlib/blt/eps.rb +32 -0
- data/lib/tkextlib/blt/graph.rb +67 -0
- data/lib/tkextlib/blt/htext.rb +112 -0
- data/lib/tkextlib/blt/setup.rb +8 -0
- data/lib/tkextlib/blt/spline.rb +23 -0
- data/lib/tkextlib/blt/stripchart.rb +74 -0
- data/lib/tkextlib/blt/table.rb +412 -0
- data/lib/tkextlib/blt/tabnotebook.rb +110 -0
- data/lib/tkextlib/blt/tabset.rb +504 -0
- data/lib/tkextlib/blt/ted.rb +68 -0
- data/lib/tkextlib/blt/tile.rb +25 -0
- data/lib/tkextlib/blt/tile/button.rb +16 -0
- data/lib/tkextlib/blt/tile/checkbutton.rb +17 -0
- data/lib/tkextlib/blt/tile/frame.rb +16 -0
- data/lib/tkextlib/blt/tile/label.rb +16 -0
- data/lib/tkextlib/blt/tile/radiobutton.rb +17 -0
- data/lib/tkextlib/blt/tile/scrollbar.rb +16 -0
- data/lib/tkextlib/blt/tile/toplevel.rb +16 -0
- data/lib/tkextlib/blt/tree.rb +1058 -0
- data/lib/tkextlib/blt/treeview.rb +1287 -0
- data/lib/tkextlib/blt/unix_dnd.rb +141 -0
- data/lib/tkextlib/blt/vector.rb +256 -0
- data/lib/tkextlib/blt/watch.rb +175 -0
- data/lib/tkextlib/blt/win_printer.rb +61 -0
- data/lib/tkextlib/blt/winop.rb +107 -0
- data/lib/tkextlib/bwidget.rb +153 -0
- data/lib/tkextlib/bwidget/arrowbutton.rb +21 -0
- data/lib/tkextlib/bwidget/bitmap.rb +21 -0
- data/lib/tkextlib/bwidget/button.rb +31 -0
- data/lib/tkextlib/bwidget/buttonbox.rb +90 -0
- data/lib/tkextlib/bwidget/combobox.rb +62 -0
- data/lib/tkextlib/bwidget/dialog.rb +194 -0
- data/lib/tkextlib/bwidget/dragsite.rb +31 -0
- data/lib/tkextlib/bwidget/dropsite.rb +39 -0
- data/lib/tkextlib/bwidget/dynamichelp.rb +63 -0
- data/lib/tkextlib/bwidget/entry.rb +43 -0
- data/lib/tkextlib/bwidget/label.rb +41 -0
- data/lib/tkextlib/bwidget/labelentry.rb +80 -0
- data/lib/tkextlib/bwidget/labelframe.rb +52 -0
- data/lib/tkextlib/bwidget/listbox.rb +361 -0
- data/lib/tkextlib/bwidget/mainframe.rb +132 -0
- data/lib/tkextlib/bwidget/messagedlg.rb +192 -0
- data/lib/tkextlib/bwidget/notebook.rb +166 -0
- data/lib/tkextlib/bwidget/pagesmanager.rb +73 -0
- data/lib/tkextlib/bwidget/panedwindow.rb +42 -0
- data/lib/tkextlib/bwidget/panelframe.rb +67 -0
- data/lib/tkextlib/bwidget/passwddlg.rb +44 -0
- data/lib/tkextlib/bwidget/progressbar.rb +20 -0
- data/lib/tkextlib/bwidget/progressdlg.rb +58 -0
- data/lib/tkextlib/bwidget/scrollableframe.rb +40 -0
- data/lib/tkextlib/bwidget/scrolledwindow.rb +48 -0
- data/lib/tkextlib/bwidget/scrollview.rb +25 -0
- data/lib/tkextlib/bwidget/selectcolor.rb +73 -0
- data/lib/tkextlib/bwidget/selectfont.rb +91 -0
- data/lib/tkextlib/bwidget/separator.rb +20 -0
- data/lib/tkextlib/bwidget/setup.rb +8 -0
- data/lib/tkextlib/bwidget/spinbox.rb +98 -0
- data/lib/tkextlib/bwidget/statusbar.rb +62 -0
- data/lib/tkextlib/bwidget/titleframe.rb +33 -0
- data/lib/tkextlib/bwidget/tree.rb +500 -0
- data/lib/tkextlib/bwidget/widget.rb +129 -0
- data/lib/tkextlib/itcl.rb +13 -0
- data/lib/tkextlib/itcl/incr_tcl.rb +178 -0
- data/lib/tkextlib/itcl/setup.rb +13 -0
- data/lib/tkextlib/itk.rb +13 -0
- data/lib/tkextlib/itk/incr_tk.rb +446 -0
- data/lib/tkextlib/itk/setup.rb +13 -0
- data/lib/tkextlib/iwidgets.rb +94 -0
- data/lib/tkextlib/iwidgets/buttonbox.rb +121 -0
- data/lib/tkextlib/iwidgets/calendar.rb +125 -0
- data/lib/tkextlib/iwidgets/canvasprintbox.rb +53 -0
- data/lib/tkextlib/iwidgets/canvasprintdialog.rb +38 -0
- data/lib/tkextlib/iwidgets/checkbox.rb +130 -0
- data/lib/tkextlib/iwidgets/combobox.rb +104 -0
- data/lib/tkextlib/iwidgets/dateentry.rb +20 -0
- data/lib/tkextlib/iwidgets/datefield.rb +58 -0
- data/lib/tkextlib/iwidgets/dialog.rb +20 -0
- data/lib/tkextlib/iwidgets/dialogshell.rb +121 -0
- data/lib/tkextlib/iwidgets/disjointlistbox.rb +50 -0
- data/lib/tkextlib/iwidgets/entryfield.rb +185 -0
- data/lib/tkextlib/iwidgets/extbutton.rb +40 -0
- data/lib/tkextlib/iwidgets/extfileselectionbox.rb +46 -0
- data/lib/tkextlib/iwidgets/extfileselectiondialog.rb +33 -0
- data/lib/tkextlib/iwidgets/feedback.rb +35 -0
- data/lib/tkextlib/iwidgets/fileselectionbox.rb +46 -0
- data/lib/tkextlib/iwidgets/fileselectiondialog.rb +33 -0
- data/lib/tkextlib/iwidgets/finddialog.rb +42 -0
- data/lib/tkextlib/iwidgets/hierarchy.rb +365 -0
- data/lib/tkextlib/iwidgets/hyperhelp.rb +50 -0
- data/lib/tkextlib/iwidgets/labeledframe.rb +39 -0
- data/lib/tkextlib/iwidgets/labeledwidget.rb +45 -0
- data/lib/tkextlib/iwidgets/mainwindow.rb +67 -0
- data/lib/tkextlib/iwidgets/menubar.rb +212 -0
- data/lib/tkextlib/iwidgets/messagebox.rb +93 -0
- data/lib/tkextlib/iwidgets/messagedialog.rb +20 -0
- data/lib/tkextlib/iwidgets/notebook.rb +175 -0
- data/lib/tkextlib/iwidgets/optionmenu.rb +92 -0
- data/lib/tkextlib/iwidgets/panedwindow.rb +134 -0
- data/lib/tkextlib/iwidgets/promptdialog.rb +131 -0
- data/lib/tkextlib/iwidgets/pushbutton.rb +35 -0
- data/lib/tkextlib/iwidgets/radiobox.rb +121 -0
- data/lib/tkextlib/iwidgets/scopedobject.rb +24 -0
- data/lib/tkextlib/iwidgets/scrolledcanvas.rb +353 -0
- data/lib/tkextlib/iwidgets/scrolledframe.rb +59 -0
- data/lib/tkextlib/iwidgets/scrolledhtml.rb +58 -0
- data/lib/tkextlib/iwidgets/scrolledlistbox.rb +207 -0
- data/lib/tkextlib/iwidgets/scrolledtext.rb +568 -0
- data/lib/tkextlib/iwidgets/scrolledwidget.rb +20 -0
- data/lib/tkextlib/iwidgets/selectionbox.rb +102 -0
- data/lib/tkextlib/iwidgets/selectiondialog.rb +92 -0
- data/lib/tkextlib/iwidgets/setup.rb +8 -0
- data/lib/tkextlib/iwidgets/shell.rb +38 -0
- data/lib/tkextlib/iwidgets/spindate.rb +48 -0
- data/lib/tkextlib/iwidgets/spinint.rb +30 -0
- data/lib/tkextlib/iwidgets/spinner.rb +169 -0
- data/lib/tkextlib/iwidgets/spintime.rb +48 -0
- data/lib/tkextlib/iwidgets/tabnotebook.rb +181 -0
- data/lib/tkextlib/iwidgets/tabset.rb +145 -0
- data/lib/tkextlib/iwidgets/timeentry.rb +25 -0
- data/lib/tkextlib/iwidgets/timefield.rb +58 -0
- data/lib/tkextlib/iwidgets/toolbar.rb +112 -0
- data/lib/tkextlib/iwidgets/watch.rb +56 -0
- data/lib/tkextlib/pkg_checker.rb +184 -0
- data/lib/tkextlib/setup.rb +8 -0
- data/lib/tkextlib/tcllib.rb +105 -0
- data/lib/tkextlib/tcllib/autoscroll.rb +158 -0
- data/lib/tkextlib/tcllib/ctext.rb +160 -0
- data/lib/tkextlib/tcllib/cursor.rb +97 -0
- data/lib/tkextlib/tcllib/datefield.rb +57 -0
- data/lib/tkextlib/tcllib/dialog.rb +84 -0
- data/lib/tkextlib/tcllib/getstring.rb +134 -0
- data/lib/tkextlib/tcllib/history.rb +73 -0
- data/lib/tkextlib/tcllib/ico.rb +146 -0
- data/lib/tkextlib/tcllib/ip_entry.rb +75 -0
- data/lib/tkextlib/tcllib/panelframe.rb +78 -0
- data/lib/tkextlib/tcllib/plotchart.rb +1404 -0
- data/lib/tkextlib/tcllib/ruler.rb +65 -0
- data/lib/tkextlib/tcllib/screenruler.rb +68 -0
- data/lib/tkextlib/tcllib/scrollwin.rb +61 -0
- data/lib/tkextlib/tcllib/setup.rb +8 -0
- data/lib/tkextlib/tcllib/style.rb +61 -0
- data/lib/tkextlib/tcllib/superframe.rb +51 -0
- data/lib/tkextlib/tcllib/swaplist.rb +150 -0
- data/lib/tkextlib/tcllib/tablelist.rb +28 -0
- data/lib/tkextlib/tcllib/tablelist_core.rb +1072 -0
- data/lib/tkextlib/tcllib/tablelist_tile.rb +43 -0
- data/lib/tkextlib/tcllib/tkpiechart.rb +314 -0
- data/lib/tkextlib/tcllib/tooltip.rb +104 -0
- data/lib/tkextlib/tcllib/widget.rb +82 -0
- data/lib/tkextlib/tclx.rb +13 -0
- data/lib/tkextlib/tclx/setup.rb +8 -0
- data/lib/tkextlib/tclx/tclx.rb +74 -0
- data/lib/tkextlib/tile.rb +449 -0
- data/lib/tkextlib/tile/dialog.rb +102 -0
- data/lib/tkextlib/tile/setup.rb +8 -0
- data/lib/tkextlib/tile/sizegrip.rb +32 -0
- data/lib/tkextlib/tile/style.rb +336 -0
- data/lib/tkextlib/tile/tbutton.rb +34 -0
- data/lib/tkextlib/tile/tcheckbutton.rb +38 -0
- data/lib/tkextlib/tile/tcombobox.rb +55 -0
- data/lib/tkextlib/tile/tentry.rb +49 -0
- data/lib/tkextlib/tile/tframe.rb +34 -0
- data/lib/tkextlib/tile/tlabel.rb +34 -0
- data/lib/tkextlib/tile/tlabelframe.rb +38 -0
- data/lib/tkextlib/tile/tmenubutton.rb +38 -0
- data/lib/tkextlib/tile/tnotebook.rb +147 -0
- data/lib/tkextlib/tile/tpaned.rb +245 -0
- data/lib/tkextlib/tile/tprogressbar.rb +57 -0
- data/lib/tkextlib/tile/tradiobutton.rb +38 -0
- data/lib/tkextlib/tile/treeview.rb +1306 -0
- data/lib/tkextlib/tile/tscale.rb +56 -0
- data/lib/tkextlib/tile/tscrollbar.rb +63 -0
- data/lib/tkextlib/tile/tseparator.rb +34 -0
- data/lib/tkextlib/tile/tsquare.rb +30 -0
- data/lib/tkextlib/tkDND.rb +18 -0
- data/lib/tkextlib/tkDND/setup.rb +8 -0
- data/lib/tkextlib/tkDND/shape.rb +125 -0
- data/lib/tkextlib/tkDND/tkdnd.rb +182 -0
- data/lib/tkextlib/tkHTML.rb +13 -0
- data/lib/tkextlib/tkHTML/htmlwidget.rb +453 -0
- data/lib/tkextlib/tkHTML/setup.rb +8 -0
- data/lib/tkextlib/tkimg.rb +36 -0
- data/lib/tkextlib/tkimg/bmp.rb +33 -0
- data/lib/tkextlib/tkimg/gif.rb +33 -0
- data/lib/tkextlib/tkimg/ico.rb +33 -0
- data/lib/tkextlib/tkimg/jpeg.rb +33 -0
- data/lib/tkextlib/tkimg/pcx.rb +33 -0
- data/lib/tkextlib/tkimg/pixmap.rb +44 -0
- data/lib/tkextlib/tkimg/png.rb +33 -0
- data/lib/tkextlib/tkimg/ppm.rb +33 -0
- data/lib/tkextlib/tkimg/ps.rb +33 -0
- data/lib/tkextlib/tkimg/setup.rb +8 -0
- data/lib/tkextlib/tkimg/sgi.rb +33 -0
- data/lib/tkextlib/tkimg/sun.rb +33 -0
- data/lib/tkextlib/tkimg/tga.rb +33 -0
- data/lib/tkextlib/tkimg/tiff.rb +33 -0
- data/lib/tkextlib/tkimg/window.rb +33 -0
- data/lib/tkextlib/tkimg/xbm.rb +33 -0
- data/lib/tkextlib/tkimg/xpm.rb +33 -0
- data/lib/tkextlib/tktable.rb +14 -0
- data/lib/tkextlib/tktable/setup.rb +8 -0
- data/lib/tkextlib/tktable/tktable.rb +966 -0
- data/lib/tkextlib/tktrans.rb +14 -0
- data/lib/tkextlib/tktrans/setup.rb +8 -0
- data/lib/tkextlib/tktrans/tktrans.rb +64 -0
- data/lib/tkextlib/treectrl.rb +13 -0
- data/lib/tkextlib/treectrl/setup.rb +8 -0
- data/lib/tkextlib/treectrl/tktreectrl.rb +2522 -0
- data/lib/tkextlib/trofs.rb +13 -0
- data/lib/tkextlib/trofs/setup.rb +8 -0
- data/lib/tkextlib/trofs/trofs.rb +51 -0
- data/lib/tkextlib/version.rb +6 -0
- data/lib/tkextlib/vu.rb +48 -0
- data/lib/tkextlib/vu/bargraph.rb +61 -0
- data/lib/tkextlib/vu/charts.rb +53 -0
- data/lib/tkextlib/vu/dial.rb +102 -0
- data/lib/tkextlib/vu/pie.rb +286 -0
- data/lib/tkextlib/vu/setup.rb +8 -0
- data/lib/tkextlib/vu/spinbox.rb +22 -0
- data/lib/tkextlib/winico.rb +14 -0
- data/lib/tkextlib/winico/setup.rb +8 -0
- data/lib/tkextlib/winico/winico.rb +224 -0
- data/lib/tkfont.rb +4 -0
- data/lib/tkmacpkg.rb +4 -0
- data/lib/tkmenubar.rb +4 -0
- data/lib/tkmngfocus.rb +4 -0
- data/lib/tkpalette.rb +4 -0
- data/lib/tkscrollbox.rb +4 -0
- data/lib/tktext.rb +4 -0
- data/lib/tkvirtevent.rb +4 -0
- data/lib/tkwinpkg.rb +4 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/tk-win_spec.rb +7 -0
- data/tk-win.gemspec +373 -0
- 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
|