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,158 @@
|
|
1
|
+
#
|
2
|
+
# tkextlib/tcllib/autoscroll.rb
|
3
|
+
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
|
4
|
+
#
|
5
|
+
# * Part of tcllib extension
|
6
|
+
# * Provides for a scrollbar to automatically mapped and unmapped as needed
|
7
|
+
#
|
8
|
+
# (The following is the original description of the library.)
|
9
|
+
#
|
10
|
+
# This package allows scrollbars to be mapped and unmapped as needed
|
11
|
+
# depending on the size and content of the scrollbars scrolled widget.
|
12
|
+
# The scrollbar must be managed by either pack or grid, other geometry
|
13
|
+
# managers are not supported.
|
14
|
+
#
|
15
|
+
# When managed by pack, any geometry changes made in the scrollbars parent
|
16
|
+
# between the time a scrollbar is unmapped, and when it is mapped will be
|
17
|
+
# lost. It is an error to destroy any of the scrollbars siblings while the
|
18
|
+
# scrollbar is unmapped. When managed by grid, if anything becomes gridded
|
19
|
+
# in the same row and column the scrollbar occupied it will be replaced by
|
20
|
+
# the scrollbar when remapped.
|
21
|
+
#
|
22
|
+
# This package may be used on any scrollbar-like widget as long as it
|
23
|
+
# supports the set subcommand in the same style as scrollbar. If the set
|
24
|
+
# subcommand is not used then this package will have no effect.
|
25
|
+
#
|
26
|
+
|
27
|
+
require 'tk'
|
28
|
+
require 'tk/scrollbar'
|
29
|
+
require 'tkextlib/tcllib.rb'
|
30
|
+
|
31
|
+
module Tk
|
32
|
+
module Tcllib
|
33
|
+
module Autoscroll
|
34
|
+
PACKAGE_NAME = 'autoscroll'.freeze
|
35
|
+
def self.package_name
|
36
|
+
PACKAGE_NAME
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.package_version
|
40
|
+
begin
|
41
|
+
TkPackage.require('autoscroll')
|
42
|
+
rescue
|
43
|
+
''
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.not_available
|
48
|
+
fail RuntimeError, "'tkextlib/tcllib/autoscroll' extension is not available on your current environment."
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.autoscroll(win)
|
52
|
+
Tk::Tcllib::Autoscroll.not_available
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.unautoscroll(win)
|
56
|
+
Tk::Tcllib::Autoscroll.not_available
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
module Tk
|
63
|
+
module Scrollable
|
64
|
+
def autoscroll(mode = nil)
|
65
|
+
case mode
|
66
|
+
when :x, 'x'
|
67
|
+
if @xscrollbar
|
68
|
+
Tk::Tcllib::Autoscroll.autoscroll(@xscrollbar)
|
69
|
+
end
|
70
|
+
when :y, 'y'
|
71
|
+
if @yscrollbar
|
72
|
+
Tk::Tcllib::Autoscroll.autoscroll(@yscrollbar)
|
73
|
+
end
|
74
|
+
when nil, :both, 'both'
|
75
|
+
if @xscrollbar
|
76
|
+
Tk::Tcllib::Autoscroll.autoscroll(@xscrollbar)
|
77
|
+
end
|
78
|
+
if @yscrollbar
|
79
|
+
Tk::Tcllib::Autoscroll.autoscroll(@yscrollbar)
|
80
|
+
end
|
81
|
+
else
|
82
|
+
fail ArgumentError, "'x', 'y' or 'both' (String or Symbol) is expected"
|
83
|
+
end
|
84
|
+
self
|
85
|
+
end
|
86
|
+
def unautoscroll(mode = nil)
|
87
|
+
case mode
|
88
|
+
when :x, 'x'
|
89
|
+
if @xscrollbar
|
90
|
+
Tk::Tcllib::Autoscroll.unautoscroll(@xscrollbar)
|
91
|
+
end
|
92
|
+
when :y, 'y'
|
93
|
+
if @yscrollbar
|
94
|
+
Tk::Tcllib::Autoscroll.unautoscroll(@yscrollbar)
|
95
|
+
end
|
96
|
+
when nil, :both, 'both'
|
97
|
+
if @xscrollbar
|
98
|
+
Tk::Tcllib::Autoscroll.unautoscroll(@xscrollbar)
|
99
|
+
end
|
100
|
+
if @yscrollbar
|
101
|
+
Tk::Tcllib::Autoscroll.unautoscroll(@yscrollbar)
|
102
|
+
end
|
103
|
+
else
|
104
|
+
fail ArgumentError, "'x', 'y' or 'both' (String or Symbol) is expected"
|
105
|
+
end
|
106
|
+
self
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
class Tk::Scrollbar
|
112
|
+
def autoscroll
|
113
|
+
# Arranges for the already existing scrollbar to be mapped
|
114
|
+
# and unmapped as needed.
|
115
|
+
#tk_call_without_enc('::autoscroll::autoscroll', @path)
|
116
|
+
Tk::Tcllib::Autoscroll.autoscroll(self)
|
117
|
+
self
|
118
|
+
end
|
119
|
+
def unautoscroll
|
120
|
+
# Returns the scrollbar to its original static state.
|
121
|
+
#tk_call_without_enc('::autoscroll::unautoscroll', @path)
|
122
|
+
Tk::Tcllib::Autoscroll.unautoscroll(self)
|
123
|
+
self
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
# TkPackage.require('autoscroll', '1.0')
|
128
|
+
# TkPackage.require('autoscroll', '1.1')
|
129
|
+
TkPackage.require('autoscroll')
|
130
|
+
|
131
|
+
module Tk
|
132
|
+
module Tcllib
|
133
|
+
class << Autoscroll
|
134
|
+
undef not_available
|
135
|
+
end
|
136
|
+
|
137
|
+
module Autoscroll
|
138
|
+
extend TkCore
|
139
|
+
def self.autoscroll(win)
|
140
|
+
tk_call_without_enc('::autoscroll::autoscroll', win.path)
|
141
|
+
end
|
142
|
+
|
143
|
+
def self.unautoscroll(win)
|
144
|
+
tk_call_without_enc('::autoscroll::unautoscroll', win.path)
|
145
|
+
end
|
146
|
+
|
147
|
+
def self.wrap
|
148
|
+
# v1.1
|
149
|
+
tk_call_without_enc('::autoscroll::wrap')
|
150
|
+
end
|
151
|
+
|
152
|
+
def self.unwrap
|
153
|
+
# v1.1
|
154
|
+
tk_call_without_enc('::autoscroll::unwrap')
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
@@ -0,0 +1,160 @@
|
|
1
|
+
#
|
2
|
+
# tkextlib/tcllib/ctext.rb
|
3
|
+
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
|
4
|
+
#
|
5
|
+
# * Part of tcllib extension
|
6
|
+
# * Overloads the text widget and provides new commands
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'tk'
|
10
|
+
require 'tk/text'
|
11
|
+
require 'tkextlib/tcllib.rb'
|
12
|
+
|
13
|
+
# TkPackage.require('ctext', '3.1')
|
14
|
+
TkPackage.require('ctext')
|
15
|
+
|
16
|
+
module Tk
|
17
|
+
module Tcllib
|
18
|
+
class CText < Tk::Text
|
19
|
+
PACKAGE_NAME = 'ctext'.freeze
|
20
|
+
def self.package_name
|
21
|
+
PACKAGE_NAME
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.package_version
|
25
|
+
begin
|
26
|
+
TkPackage.require('ctext')
|
27
|
+
rescue
|
28
|
+
''
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class Tk::Tcllib::CText
|
36
|
+
TkCommandNames = ['ctext'.freeze].freeze
|
37
|
+
WidgetClassName = 'Ctext'.freeze
|
38
|
+
WidgetClassNames[WidgetClassName] ||= self
|
39
|
+
|
40
|
+
def create_self(keys)
|
41
|
+
if keys and keys != None
|
42
|
+
tk_call_without_enc(self.class::TkCommandNames[0], @path,
|
43
|
+
*hash_kv(keys, true))
|
44
|
+
else
|
45
|
+
tk_call_without_enc(self.class::TkCommandNames[0], @path)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
private :create_self
|
49
|
+
|
50
|
+
def __strval_optkeys
|
51
|
+
super() << 'linemapfg' << 'linemapbg' <<
|
52
|
+
'linemap_select_fg' << 'linemap_select_bg'
|
53
|
+
end
|
54
|
+
private :__strval_optkeys
|
55
|
+
|
56
|
+
def __boolval_optkeys
|
57
|
+
super() << 'highlight' << 'linemap_markable'
|
58
|
+
end
|
59
|
+
private :__boolval_optkeys
|
60
|
+
|
61
|
+
def append(*args)
|
62
|
+
tk_send('append', *args)
|
63
|
+
end
|
64
|
+
|
65
|
+
def copy
|
66
|
+
tk_send('copy')
|
67
|
+
end
|
68
|
+
|
69
|
+
def cut
|
70
|
+
tk_send('cut')
|
71
|
+
end
|
72
|
+
|
73
|
+
def fast_delete(*args)
|
74
|
+
tk_send('fastdelete', *args)
|
75
|
+
end
|
76
|
+
|
77
|
+
def fast_insert(*args)
|
78
|
+
tk_send('fastinsert', *args)
|
79
|
+
end
|
80
|
+
|
81
|
+
def highlight(*args)
|
82
|
+
tk_send('highlight', *args)
|
83
|
+
end
|
84
|
+
|
85
|
+
def paste
|
86
|
+
tk_send('paste')
|
87
|
+
end
|
88
|
+
|
89
|
+
def edit(*args)
|
90
|
+
tk_send('edit', *args)
|
91
|
+
end
|
92
|
+
|
93
|
+
def add_highlight_class(klass, col, *keywords)
|
94
|
+
tk_call('ctext::addHighlightClass', @path, klass, col, keywords.flatten)
|
95
|
+
self
|
96
|
+
end
|
97
|
+
|
98
|
+
def add_highlight_class_for_special_chars(klass, col, *chrs)
|
99
|
+
tk_call('ctext::addHighlightClassForSpecialChars',
|
100
|
+
@path, klass, col, chrs.join(''))
|
101
|
+
self
|
102
|
+
end
|
103
|
+
|
104
|
+
def add_highlight_class_for_regexp(klass, col, tcl_regexp)
|
105
|
+
tk_call('ctext::addHighlightClassForRegexp',
|
106
|
+
@path, klass, col, tcl_regexp)
|
107
|
+
self
|
108
|
+
end
|
109
|
+
|
110
|
+
def add_highlight_class_with_only_char_start(klass, col, chr)
|
111
|
+
tk_call('ctext::addHighlightClassWithOnlyCharStart',
|
112
|
+
@path, klass, col, chr)
|
113
|
+
self
|
114
|
+
end
|
115
|
+
|
116
|
+
def clear_highlight_classes
|
117
|
+
tk_call('ctext::clearHighlightClasses', @path)
|
118
|
+
self
|
119
|
+
end
|
120
|
+
|
121
|
+
def get_highlight_classes
|
122
|
+
tk_split_simplelist(tk_call('ctext::getHighlightClasses', @path))
|
123
|
+
end
|
124
|
+
|
125
|
+
def delete_highlight_class(klass)
|
126
|
+
tk_call('ctext::deleteHighlightClass', @path, klass)
|
127
|
+
self
|
128
|
+
end
|
129
|
+
|
130
|
+
def enable_C_comments
|
131
|
+
tk_call('ctext::enableComments', @path)
|
132
|
+
self
|
133
|
+
end
|
134
|
+
|
135
|
+
def disable_C_comments
|
136
|
+
tk_call('ctext::disableComments', @path)
|
137
|
+
self
|
138
|
+
end
|
139
|
+
|
140
|
+
def find_next_char(idx, chr)
|
141
|
+
tk_call('ctext::findNextChar', @path, idx, chr)
|
142
|
+
end
|
143
|
+
|
144
|
+
def find_next_space(idx)
|
145
|
+
tk_call('ctext::findNextSpace', @path, idx)
|
146
|
+
end
|
147
|
+
|
148
|
+
def find_previous_space(idx)
|
149
|
+
tk_call('ctext::findPreviousSpace', @path, idx)
|
150
|
+
end
|
151
|
+
|
152
|
+
def set_update_proc(cmd=Proc.new)
|
153
|
+
tk_call('proc', 'ctext::update', '', cmd)
|
154
|
+
self
|
155
|
+
end
|
156
|
+
|
157
|
+
def modified?(mode)
|
158
|
+
bool(tk_call('ctext::modified', @path, mode))
|
159
|
+
end
|
160
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
#
|
2
|
+
# tkextlib/tcllib/cursor.rb
|
3
|
+
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
|
4
|
+
#
|
5
|
+
# * Part of tcllib extension
|
6
|
+
# * Procedures to handle CURSOR data
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'tk'
|
10
|
+
require 'tkextlib/tcllib.rb'
|
11
|
+
|
12
|
+
module Tk
|
13
|
+
module Tcllib
|
14
|
+
module Cursor
|
15
|
+
PACKAGE_NAME = 'cursor'.freeze
|
16
|
+
def self.package_name
|
17
|
+
PACKAGE_NAME
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.package_version
|
21
|
+
begin
|
22
|
+
TkPackage.require('cursor')
|
23
|
+
rescue
|
24
|
+
''
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.not_available
|
29
|
+
fail RuntimeError, "'tkextlib/tcllib/cursor' extension is not available on your current environment."
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.cursor_display(win=None)
|
33
|
+
Tk::Tcllib::Cursor.not_available
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.cursor_propagate(win, cursor)
|
37
|
+
Tk::Tcllib::Cursor.not_available
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.cursor_restore(win, cursor = None)
|
41
|
+
Tk::Tcllib::Cursor.not_available
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.cursor_display(parent=None)
|
47
|
+
# Pops up a dialog with a listbox containing all the cursor names.
|
48
|
+
# Selecting a cursor name will display it in that dialog.
|
49
|
+
# This is simply for viewing any available cursors on the platform .
|
50
|
+
#tk_call_without_enc('::cursor::display', parent)
|
51
|
+
Tk::Tcllib::Cursor.cursor_display(parent)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class TkWindow
|
56
|
+
def cursor_propagate(cursor)
|
57
|
+
# Sets the cursor for self and all its descendants to cursor.
|
58
|
+
#tk_call_without_enc('::cursor::propagate', @path, cursor)
|
59
|
+
Tk::Tcllib::Cursor.cursor_propagate(self, cursor)
|
60
|
+
end
|
61
|
+
def cursor_restore(cursor = None)
|
62
|
+
# Restore the original or previously set cursor for self and all its
|
63
|
+
# descendants. If cursor is specified, that will be used if on any
|
64
|
+
# widget that did not have a preset cursor (set by a previous call
|
65
|
+
# to TkWindow#cursor_propagate).
|
66
|
+
#tk_call_without_enc('::cursor::restore', @path, cursor)
|
67
|
+
Tk::Tcllib::Cursor.cursor_restore(self, cursor)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# TkPackage.require('cursor', '0.1')
|
72
|
+
TkPackage.require('cursor')
|
73
|
+
|
74
|
+
module Tk
|
75
|
+
module Tcllib
|
76
|
+
class << Cursor
|
77
|
+
undef not_available
|
78
|
+
end
|
79
|
+
|
80
|
+
module Cursor
|
81
|
+
extend TkCore
|
82
|
+
def self.cursor_display(win=None)
|
83
|
+
tk_call_without_enc('::cursor::display', _epath(win))
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.cursor_propagate(win, cursor)
|
87
|
+
#tk_call_without_enc('::cursor::propagate', win.path, cursor)
|
88
|
+
tk_call_without_enc('::cursor::propagate', _epath(win), cursor)
|
89
|
+
end
|
90
|
+
|
91
|
+
def self.cursor_restore(win, cursor = None)
|
92
|
+
#tk_call_without_enc('::cursor::restore', win.path, cursor)
|
93
|
+
tk_call_without_enc('::cursor::restore', _epath(win), cursor)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#
|
2
|
+
# tkextlib/tcllib/datefield.rb
|
3
|
+
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
|
4
|
+
#
|
5
|
+
# * Part of tcllib extension
|
6
|
+
# * Tk datefield widget
|
7
|
+
#
|
8
|
+
# (The following is the original description of the library.)
|
9
|
+
#
|
10
|
+
# The datefield package provides the datefield widget which is an enhanced
|
11
|
+
# text entry widget for the purpose of date entry. Only valid dates of the
|
12
|
+
# form MM/DD/YYYY can be entered.
|
13
|
+
#
|
14
|
+
# The datefield widget is, in fact, just an entry widget with specialized
|
15
|
+
# bindings. This means all the command and options for an entry widget apply
|
16
|
+
# equally here.
|
17
|
+
|
18
|
+
require 'tk'
|
19
|
+
require 'tk/entry'
|
20
|
+
require 'tkextlib/tcllib.rb'
|
21
|
+
|
22
|
+
# TkPackage.require('datefield', '0.1')
|
23
|
+
TkPackage.require('datefield')
|
24
|
+
|
25
|
+
module Tk
|
26
|
+
module Tcllib
|
27
|
+
class Datefield < Tk::Entry
|
28
|
+
PACKAGE_NAME = 'datefield'.freeze
|
29
|
+
def self.package_name
|
30
|
+
PACKAGE_NAME
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.package_version
|
34
|
+
begin
|
35
|
+
TkPackage.require('datefield')
|
36
|
+
rescue
|
37
|
+
''
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
DateField = Datefield
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class Tk::Tcllib::Datefield
|
46
|
+
TkCommandNames = ['::datefield::datefield'.freeze].freeze
|
47
|
+
|
48
|
+
def create_self(keys)
|
49
|
+
if keys and keys != None
|
50
|
+
tk_call_without_enc(self.class::TkCommandNames[0], @path,
|
51
|
+
*hash_kv(keys, true))
|
52
|
+
else
|
53
|
+
tk_call_without_enc(self.class::TkCommandNames[0], @path)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
private :create_self
|
57
|
+
end
|