tk_as_gem 0.0.0
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/README +22 -0
- data/Rakefile +11 -0
- data/VERSION +1 -0
- data/ext/ChangeLog.tkextlib +935 -0
- data/ext/MANUAL_tcltklib.eng +469 -0
- data/ext/MANUAL_tcltklib.eucj +579 -0
- data/ext/README.1st +19 -0
- data/ext/README.ActiveTcl +49 -0
- data/ext/README.fork +34 -0
- data/ext/README.macosx-aqua +67 -0
- data/ext/README.tcltklib +85 -0
- data/ext/depend +2 -0
- data/ext/extconf.rb +451 -0
- data/ext/lib/README +30 -0
- data/ext/lib/multi-tk.rb +3491 -0
- data/ext/lib/remote-tk.rb +530 -0
- data/ext/lib/tcltk.rb +367 -0
- data/ext/lib/tk.rb +5584 -0
- data/ext/lib/tk/after.rb +6 -0
- data/ext/lib/tk/autoload.rb +414 -0
- data/ext/lib/tk/bgerror.rb +29 -0
- data/ext/lib/tk/bindtag.rb +138 -0
- data/ext/lib/tk/button.rb +30 -0
- data/ext/lib/tk/canvas.rb +789 -0
- data/ext/lib/tk/canvastag.rb +434 -0
- data/ext/lib/tk/checkbutton.rb +30 -0
- data/ext/lib/tk/clipboard.rb +75 -0
- data/ext/lib/tk/clock.rb +71 -0
- data/ext/lib/tk/composite.rb +458 -0
- data/ext/lib/tk/console.rb +52 -0
- data/ext/lib/tk/dialog.rb +326 -0
- data/ext/lib/tk/encodedstr.rb +187 -0
- data/ext/lib/tk/entry.rb +119 -0
- data/ext/lib/tk/event.rb +542 -0
- data/ext/lib/tk/font.rb +2344 -0
- data/ext/lib/tk/frame.rb +131 -0
- data/ext/lib/tk/grid.rb +279 -0
- data/ext/lib/tk/image.rb +275 -0
- data/ext/lib/tk/itemconfig.rb +1215 -0
- data/ext/lib/tk/itemfont.rb +327 -0
- data/ext/lib/tk/kinput.rb +71 -0
- data/ext/lib/tk/label.rb +21 -0
- data/ext/lib/tk/labelframe.rb +29 -0
- data/ext/lib/tk/listbox.rb +282 -0
- data/ext/lib/tk/macpkg.rb +78 -0
- data/ext/lib/tk/menu.rb +681 -0
- data/ext/lib/tk/menubar.rb +131 -0
- data/ext/lib/tk/menuspec.rb +275 -0
- data/ext/lib/tk/message.rb +22 -0
- data/ext/lib/tk/mngfocus.rb +33 -0
- data/ext/lib/tk/msgcat.rb +296 -0
- data/ext/lib/tk/namespace.rb +551 -0
- data/ext/lib/tk/optiondb.rb +377 -0
- data/ext/lib/tk/optionobj.rb +212 -0
- data/ext/lib/tk/pack.rb +107 -0
- data/ext/lib/tk/package.rb +143 -0
- data/ext/lib/tk/palette.rb +55 -0
- data/ext/lib/tk/panedwindow.rb +258 -0
- data/ext/lib/tk/place.rb +128 -0
- data/ext/lib/tk/radiobutton.rb +71 -0
- data/ext/lib/tk/root.rb +95 -0
- data/ext/lib/tk/scale.rb +111 -0
- data/ext/lib/tk/scrollable.rb +82 -0
- data/ext/lib/tk/scrollbar.rb +177 -0
- data/ext/lib/tk/scrollbox.rb +39 -0
- data/ext/lib/tk/selection.rb +86 -0
- data/ext/lib/tk/spinbox.rb +119 -0
- data/ext/lib/tk/tagfont.rb +43 -0
- data/ext/lib/tk/text.rb +1596 -0
- data/ext/lib/tk/textimage.rb +88 -0
- data/ext/lib/tk/textmark.rb +204 -0
- data/ext/lib/tk/texttag.rb +318 -0
- data/ext/lib/tk/textwindow.rb +154 -0
- data/ext/lib/tk/timer.rb +669 -0
- data/ext/lib/tk/toplevel.rb +262 -0
- data/ext/lib/tk/ttk_selector.rb +76 -0
- data/ext/lib/tk/txtwin_abst.rb +39 -0
- data/ext/lib/tk/validation.rb +397 -0
- data/ext/lib/tk/variable.rb +1765 -0
- data/ext/lib/tk/virtevent.rb +139 -0
- data/ext/lib/tk/winfo.rb +392 -0
- data/ext/lib/tk/winpkg.rb +153 -0
- data/ext/lib/tk/wm.rb +552 -0
- data/ext/lib/tk/xim.rb +122 -0
- data/ext/lib/tkafter.rb +4 -0
- data/ext/lib/tkbgerror.rb +4 -0
- data/ext/lib/tkcanvas.rb +4 -0
- data/ext/lib/tkclass.rb +47 -0
- data/ext/lib/tkconsole.rb +4 -0
- data/ext/lib/tkdialog.rb +4 -0
- data/ext/lib/tkentry.rb +4 -0
- data/ext/lib/tkextlib/ICONS.rb +13 -0
- data/ext/lib/tkextlib/ICONS/icons.rb +129 -0
- data/ext/lib/tkextlib/ICONS/setup.rb +8 -0
- data/ext/lib/tkextlib/SUPPORT_STATUS +196 -0
- data/ext/lib/tkextlib/blt.rb +187 -0
- data/ext/lib/tkextlib/blt/barchart.rb +79 -0
- data/ext/lib/tkextlib/blt/bitmap.rb +112 -0
- data/ext/lib/tkextlib/blt/busy.rb +82 -0
- data/ext/lib/tkextlib/blt/component.rb +2145 -0
- data/ext/lib/tkextlib/blt/container.rb +28 -0
- data/ext/lib/tkextlib/blt/cutbuffer.rb +23 -0
- data/ext/lib/tkextlib/blt/dragdrop.rb +268 -0
- data/ext/lib/tkextlib/blt/eps.rb +32 -0
- data/ext/lib/tkextlib/blt/graph.rb +67 -0
- data/ext/lib/tkextlib/blt/htext.rb +111 -0
- data/ext/lib/tkextlib/blt/setup.rb +8 -0
- data/ext/lib/tkextlib/blt/spline.rb +23 -0
- data/ext/lib/tkextlib/blt/stripchart.rb +74 -0
- data/ext/lib/tkextlib/blt/table.rb +399 -0
- data/ext/lib/tkextlib/blt/tabnotebook.rb +110 -0
- data/ext/lib/tkextlib/blt/tabset.rb +500 -0
- data/ext/lib/tkextlib/blt/ted.rb +65 -0
- data/ext/lib/tkextlib/blt/tile.rb +21 -0
- data/ext/lib/tkextlib/blt/tile/button.rb +16 -0
- data/ext/lib/tkextlib/blt/tile/checkbutton.rb +17 -0
- data/ext/lib/tkextlib/blt/tile/frame.rb +16 -0
- data/ext/lib/tkextlib/blt/tile/label.rb +16 -0
- data/ext/lib/tkextlib/blt/tile/radiobutton.rb +17 -0
- data/ext/lib/tkextlib/blt/tile/scrollbar.rb +16 -0
- data/ext/lib/tkextlib/blt/tile/toplevel.rb +16 -0
- data/ext/lib/tkextlib/blt/tree.rb +1058 -0
- data/ext/lib/tkextlib/blt/treeview.rb +1272 -0
- data/ext/lib/tkextlib/blt/unix_dnd.rb +135 -0
- data/ext/lib/tkextlib/blt/vector.rb +256 -0
- data/ext/lib/tkextlib/blt/watch.rb +175 -0
- data/ext/lib/tkextlib/blt/win_printer.rb +61 -0
- data/ext/lib/tkextlib/blt/winop.rb +107 -0
- data/ext/lib/tkextlib/bwidget.rb +151 -0
- data/ext/lib/tkextlib/bwidget/arrowbutton.rb +21 -0
- data/ext/lib/tkextlib/bwidget/bitmap.rb +21 -0
- data/ext/lib/tkextlib/bwidget/button.rb +31 -0
- data/ext/lib/tkextlib/bwidget/buttonbox.rb +90 -0
- data/ext/lib/tkextlib/bwidget/combobox.rb +51 -0
- data/ext/lib/tkextlib/bwidget/dialog.rb +182 -0
- data/ext/lib/tkextlib/bwidget/dragsite.rb +31 -0
- data/ext/lib/tkextlib/bwidget/dropsite.rb +39 -0
- data/ext/lib/tkextlib/bwidget/dynamichelp.rb +63 -0
- data/ext/lib/tkextlib/bwidget/entry.rb +43 -0
- data/ext/lib/tkextlib/bwidget/label.rb +41 -0
- data/ext/lib/tkextlib/bwidget/labelentry.rb +80 -0
- data/ext/lib/tkextlib/bwidget/labelframe.rb +52 -0
- data/ext/lib/tkextlib/bwidget/listbox.rb +358 -0
- data/ext/lib/tkextlib/bwidget/mainframe.rb +128 -0
- data/ext/lib/tkextlib/bwidget/messagedlg.rb +192 -0
- data/ext/lib/tkextlib/bwidget/notebook.rb +166 -0
- data/ext/lib/tkextlib/bwidget/pagesmanager.rb +73 -0
- data/ext/lib/tkextlib/bwidget/panedwindow.rb +37 -0
- data/ext/lib/tkextlib/bwidget/panelframe.rb +57 -0
- data/ext/lib/tkextlib/bwidget/passwddlg.rb +44 -0
- data/ext/lib/tkextlib/bwidget/progressbar.rb +20 -0
- data/ext/lib/tkextlib/bwidget/progressdlg.rb +58 -0
- data/ext/lib/tkextlib/bwidget/scrollableframe.rb +40 -0
- data/ext/lib/tkextlib/bwidget/scrolledwindow.rb +38 -0
- data/ext/lib/tkextlib/bwidget/scrollview.rb +25 -0
- data/ext/lib/tkextlib/bwidget/selectcolor.rb +73 -0
- data/ext/lib/tkextlib/bwidget/selectfont.rb +86 -0
- data/ext/lib/tkextlib/bwidget/separator.rb +20 -0
- data/ext/lib/tkextlib/bwidget/setup.rb +8 -0
- data/ext/lib/tkextlib/bwidget/spinbox.rb +98 -0
- data/ext/lib/tkextlib/bwidget/statusbar.rb +52 -0
- data/ext/lib/tkextlib/bwidget/titleframe.rb +33 -0
- data/ext/lib/tkextlib/bwidget/tree.rb +453 -0
- data/ext/lib/tkextlib/bwidget/widget.rb +129 -0
- data/ext/lib/tkextlib/itcl.rb +13 -0
- data/ext/lib/tkextlib/itcl/incr_tcl.rb +178 -0
- data/ext/lib/tkextlib/itcl/setup.rb +13 -0
- data/ext/lib/tkextlib/itk.rb +13 -0
- data/ext/lib/tkextlib/itk/incr_tk.rb +446 -0
- data/ext/lib/tkextlib/itk/setup.rb +13 -0
- data/ext/lib/tkextlib/iwidgets.rb +94 -0
- data/ext/lib/tkextlib/iwidgets/buttonbox.rb +120 -0
- data/ext/lib/tkextlib/iwidgets/calendar.rb +125 -0
- data/ext/lib/tkextlib/iwidgets/canvasprintbox.rb +53 -0
- data/ext/lib/tkextlib/iwidgets/canvasprintdialog.rb +38 -0
- data/ext/lib/tkextlib/iwidgets/checkbox.rb +129 -0
- data/ext/lib/tkextlib/iwidgets/combobox.rb +104 -0
- data/ext/lib/tkextlib/iwidgets/dateentry.rb +20 -0
- data/ext/lib/tkextlib/iwidgets/datefield.rb +58 -0
- data/ext/lib/tkextlib/iwidgets/dialog.rb +20 -0
- data/ext/lib/tkextlib/iwidgets/dialogshell.rb +120 -0
- data/ext/lib/tkextlib/iwidgets/disjointlistbox.rb +50 -0
- data/ext/lib/tkextlib/iwidgets/entryfield.rb +185 -0
- data/ext/lib/tkextlib/iwidgets/extbutton.rb +40 -0
- data/ext/lib/tkextlib/iwidgets/extfileselectionbox.rb +46 -0
- data/ext/lib/tkextlib/iwidgets/extfileselectiondialog.rb +33 -0
- data/ext/lib/tkextlib/iwidgets/feedback.rb +35 -0
- data/ext/lib/tkextlib/iwidgets/fileselectionbox.rb +46 -0
- data/ext/lib/tkextlib/iwidgets/fileselectiondialog.rb +33 -0
- data/ext/lib/tkextlib/iwidgets/finddialog.rb +42 -0
- data/ext/lib/tkextlib/iwidgets/hierarchy.rb +365 -0
- data/ext/lib/tkextlib/iwidgets/hyperhelp.rb +50 -0
- data/ext/lib/tkextlib/iwidgets/labeledframe.rb +39 -0
- data/ext/lib/tkextlib/iwidgets/labeledwidget.rb +45 -0
- data/ext/lib/tkextlib/iwidgets/mainwindow.rb +67 -0
- data/ext/lib/tkextlib/iwidgets/menubar.rb +211 -0
- data/ext/lib/tkextlib/iwidgets/messagebox.rb +92 -0
- data/ext/lib/tkextlib/iwidgets/messagedialog.rb +20 -0
- data/ext/lib/tkextlib/iwidgets/notebook.rb +174 -0
- data/ext/lib/tkextlib/iwidgets/optionmenu.rb +92 -0
- data/ext/lib/tkextlib/iwidgets/panedwindow.rb +133 -0
- data/ext/lib/tkextlib/iwidgets/promptdialog.rb +131 -0
- data/ext/lib/tkextlib/iwidgets/pushbutton.rb +35 -0
- data/ext/lib/tkextlib/iwidgets/radiobox.rb +120 -0
- data/ext/lib/tkextlib/iwidgets/scopedobject.rb +24 -0
- data/ext/lib/tkextlib/iwidgets/scrolledcanvas.rb +353 -0
- data/ext/lib/tkextlib/iwidgets/scrolledframe.rb +59 -0
- data/ext/lib/tkextlib/iwidgets/scrolledhtml.rb +58 -0
- data/ext/lib/tkextlib/iwidgets/scrolledlistbox.rb +207 -0
- data/ext/lib/tkextlib/iwidgets/scrolledtext.rb +564 -0
- data/ext/lib/tkextlib/iwidgets/scrolledwidget.rb +20 -0
- data/ext/lib/tkextlib/iwidgets/selectionbox.rb +102 -0
- data/ext/lib/tkextlib/iwidgets/selectiondialog.rb +92 -0
- data/ext/lib/tkextlib/iwidgets/setup.rb +8 -0
- data/ext/lib/tkextlib/iwidgets/shell.rb +38 -0
- data/ext/lib/tkextlib/iwidgets/spindate.rb +48 -0
- data/ext/lib/tkextlib/iwidgets/spinint.rb +30 -0
- data/ext/lib/tkextlib/iwidgets/spinner.rb +169 -0
- data/ext/lib/tkextlib/iwidgets/spintime.rb +48 -0
- data/ext/lib/tkextlib/iwidgets/tabnotebook.rb +180 -0
- data/ext/lib/tkextlib/iwidgets/tabset.rb +144 -0
- data/ext/lib/tkextlib/iwidgets/timeentry.rb +25 -0
- data/ext/lib/tkextlib/iwidgets/timefield.rb +58 -0
- data/ext/lib/tkextlib/iwidgets/toolbar.rb +112 -0
- data/ext/lib/tkextlib/iwidgets/watch.rb +56 -0
- data/ext/lib/tkextlib/pkg_checker.rb +184 -0
- data/ext/lib/tkextlib/setup.rb +8 -0
- data/ext/lib/tkextlib/tcllib.rb +90 -0
- data/ext/lib/tkextlib/tcllib/README +135 -0
- data/ext/lib/tkextlib/tcllib/autoscroll.rb +158 -0
- data/ext/lib/tkextlib/tcllib/ctext.rb +160 -0
- data/ext/lib/tkextlib/tcllib/cursor.rb +97 -0
- data/ext/lib/tkextlib/tcllib/datefield.rb +57 -0
- data/ext/lib/tkextlib/tcllib/dialog.rb +84 -0
- data/ext/lib/tkextlib/tcllib/getstring.rb +134 -0
- data/ext/lib/tkextlib/tcllib/history.rb +73 -0
- data/ext/lib/tkextlib/tcllib/ico.rb +116 -0
- data/ext/lib/tkextlib/tcllib/ip_entry.rb +66 -0
- data/ext/lib/tkextlib/tcllib/panelframe.rb +72 -0
- data/ext/lib/tkextlib/tcllib/plotchart.rb +886 -0
- data/ext/lib/tkextlib/tcllib/ruler.rb +65 -0
- data/ext/lib/tkextlib/tcllib/screenruler.rb +68 -0
- data/ext/lib/tkextlib/tcllib/scrollwin.rb +61 -0
- data/ext/lib/tkextlib/tcllib/setup.rb +8 -0
- data/ext/lib/tkextlib/tcllib/style.rb +61 -0
- data/ext/lib/tkextlib/tcllib/superframe.rb +51 -0
- data/ext/lib/tkextlib/tcllib/swaplist.rb +150 -0
- data/ext/lib/tkextlib/tcllib/tablelist.rb +27 -0
- data/ext/lib/tkextlib/tcllib/tablelist_core.rb +782 -0
- data/ext/lib/tkextlib/tcllib/tablelist_tile.rb +25 -0
- data/ext/lib/tkextlib/tcllib/tkpiechart.rb +314 -0
- data/ext/lib/tkextlib/tcllib/tooltip.rb +95 -0
- data/ext/lib/tkextlib/tcllib/widget.rb +48 -0
- data/ext/lib/tkextlib/tclx.rb +13 -0
- data/ext/lib/tkextlib/tclx/setup.rb +8 -0
- data/ext/lib/tkextlib/tclx/tclx.rb +74 -0
- data/ext/lib/tkextlib/tile.rb +419 -0
- data/ext/lib/tkextlib/tile/dialog.rb +96 -0
- data/ext/lib/tkextlib/tile/setup.rb +8 -0
- data/ext/lib/tkextlib/tile/sizegrip.rb +29 -0
- data/ext/lib/tkextlib/tile/style.rb +316 -0
- data/ext/lib/tkextlib/tile/tbutton.rb +33 -0
- data/ext/lib/tkextlib/tile/tcheckbutton.rb +36 -0
- data/ext/lib/tkextlib/tile/tcombobox.rb +54 -0
- data/ext/lib/tkextlib/tile/tentry.rb +48 -0
- data/ext/lib/tkextlib/tile/tframe.rb +33 -0
- data/ext/lib/tkextlib/tile/tlabel.rb +33 -0
- data/ext/lib/tkextlib/tile/tlabelframe.rb +36 -0
- data/ext/lib/tkextlib/tile/tmenubutton.rb +36 -0
- data/ext/lib/tkextlib/tile/tnotebook.rb +139 -0
- data/ext/lib/tkextlib/tile/tpaned.rb +231 -0
- data/ext/lib/tkextlib/tile/tprogressbar.rb +56 -0
- data/ext/lib/tkextlib/tile/tradiobutton.rb +36 -0
- data/ext/lib/tkextlib/tile/treeview.rb +1239 -0
- data/ext/lib/tkextlib/tile/tscale.rb +53 -0
- data/ext/lib/tkextlib/tile/tscrollbar.rb +54 -0
- data/ext/lib/tkextlib/tile/tseparator.rb +33 -0
- data/ext/lib/tkextlib/tile/tsquare.rb +30 -0
- data/ext/lib/tkextlib/tkDND.rb +18 -0
- data/ext/lib/tkextlib/tkDND/setup.rb +8 -0
- data/ext/lib/tkextlib/tkDND/shape.rb +125 -0
- data/ext/lib/tkextlib/tkDND/tkdnd.rb +182 -0
- data/ext/lib/tkextlib/tkHTML.rb +13 -0
- data/ext/lib/tkextlib/tkHTML/htmlwidget.rb +453 -0
- data/ext/lib/tkextlib/tkHTML/setup.rb +8 -0
- data/ext/lib/tkextlib/tkimg.rb +36 -0
- data/ext/lib/tkextlib/tkimg/README +26 -0
- data/ext/lib/tkextlib/tkimg/bmp.rb +33 -0
- data/ext/lib/tkextlib/tkimg/gif.rb +33 -0
- data/ext/lib/tkextlib/tkimg/ico.rb +33 -0
- data/ext/lib/tkextlib/tkimg/jpeg.rb +33 -0
- data/ext/lib/tkextlib/tkimg/pcx.rb +33 -0
- data/ext/lib/tkextlib/tkimg/pixmap.rb +44 -0
- data/ext/lib/tkextlib/tkimg/png.rb +33 -0
- data/ext/lib/tkextlib/tkimg/ppm.rb +33 -0
- data/ext/lib/tkextlib/tkimg/ps.rb +33 -0
- data/ext/lib/tkextlib/tkimg/setup.rb +8 -0
- data/ext/lib/tkextlib/tkimg/sgi.rb +33 -0
- data/ext/lib/tkextlib/tkimg/sun.rb +33 -0
- data/ext/lib/tkextlib/tkimg/tga.rb +33 -0
- data/ext/lib/tkextlib/tkimg/tiff.rb +33 -0
- data/ext/lib/tkextlib/tkimg/window.rb +33 -0
- data/ext/lib/tkextlib/tkimg/xbm.rb +33 -0
- data/ext/lib/tkextlib/tkimg/xpm.rb +33 -0
- data/ext/lib/tkextlib/tktable.rb +14 -0
- data/ext/lib/tkextlib/tktable/setup.rb +8 -0
- data/ext/lib/tkextlib/tktable/tktable.rb +957 -0
- data/ext/lib/tkextlib/tktrans.rb +14 -0
- data/ext/lib/tkextlib/tktrans/setup.rb +8 -0
- data/ext/lib/tkextlib/tktrans/tktrans.rb +64 -0
- data/ext/lib/tkextlib/treectrl.rb +13 -0
- data/ext/lib/tkextlib/treectrl/setup.rb +8 -0
- data/ext/lib/tkextlib/treectrl/tktreectrl.rb +2461 -0
- data/ext/lib/tkextlib/trofs.rb +13 -0
- data/ext/lib/tkextlib/trofs/setup.rb +8 -0
- data/ext/lib/tkextlib/trofs/trofs.rb +51 -0
- data/ext/lib/tkextlib/version.rb +6 -0
- data/ext/lib/tkextlib/vu.rb +48 -0
- data/ext/lib/tkextlib/vu/bargraph.rb +61 -0
- data/ext/lib/tkextlib/vu/charts.rb +53 -0
- data/ext/lib/tkextlib/vu/dial.rb +102 -0
- data/ext/lib/tkextlib/vu/pie.rb +282 -0
- data/ext/lib/tkextlib/vu/setup.rb +8 -0
- data/ext/lib/tkextlib/vu/spinbox.rb +22 -0
- data/ext/lib/tkextlib/winico.rb +14 -0
- data/ext/lib/tkextlib/winico/setup.rb +8 -0
- data/ext/lib/tkextlib/winico/winico.rb +224 -0
- data/ext/lib/tkfont.rb +4 -0
- data/ext/lib/tkmacpkg.rb +4 -0
- data/ext/lib/tkmenubar.rb +4 -0
- data/ext/lib/tkmngfocus.rb +4 -0
- data/ext/lib/tkpalette.rb +4 -0
- data/ext/lib/tkscrollbox.rb +4 -0
- data/ext/lib/tktext.rb +4 -0
- data/ext/lib/tkvirtevent.rb +4 -0
- data/ext/lib/tkwinpkg.rb +4 -0
- data/ext/old-README.tcltklib.eucj +159 -0
- data/ext/stubs.c +531 -0
- data/ext/stubs.h +33 -0
- data/ext/tcltklib.c +10155 -0
- data/ext/tkutil/.cvsignore +3 -0
- data/ext/tkutil/depend +1 -0
- data/ext/tkutil/extconf.rb +14 -0
- data/ext/tkutil/tkutil.c +1789 -0
- metadata +418 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#
|
|
2
|
+
# tkextlib/tcllib/tablelist.rb
|
|
3
|
+
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
|
|
4
|
+
#
|
|
5
|
+
# * Part of tcllib extension
|
|
6
|
+
# * A multi-column listbox
|
|
7
|
+
|
|
8
|
+
require 'tk'
|
|
9
|
+
require 'tkextlib/tcllib.rb'
|
|
10
|
+
|
|
11
|
+
# check Tile extension :: If already loaded, use tablelist_tile.
|
|
12
|
+
unless defined? Tk::Tcllib::Tablelist_usingTile
|
|
13
|
+
Tk::Tcllib::Tablelist_usingTile = TkPackage.provide('tile')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
if Tk::Tcllib::Tablelist_usingTile
|
|
17
|
+
# with Tile
|
|
18
|
+
require 'tkextlib/tcllib/tablelist_tile'
|
|
19
|
+
|
|
20
|
+
else
|
|
21
|
+
# without Tile
|
|
22
|
+
|
|
23
|
+
# TkPackage.require('Tablelist', '4.2')
|
|
24
|
+
TkPackage.require('Tablelist')
|
|
25
|
+
|
|
26
|
+
require 'tkextlib/tcllib/tablelist_core'
|
|
27
|
+
end
|
|
@@ -0,0 +1,782 @@
|
|
|
1
|
+
#
|
|
2
|
+
# tkextlib/tcllib/tablelist_core.rb
|
|
3
|
+
#
|
|
4
|
+
# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
|
|
5
|
+
#
|
|
6
|
+
# * Part of tcllib extension
|
|
7
|
+
# * This file is required by 'tkextlib/tcllib/tablelist.rb' or
|
|
8
|
+
# 'tkextlib/tcllib/tablelist_tile.rb'.
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
module Tk
|
|
12
|
+
module Tcllib
|
|
13
|
+
class Tablelist < TkWindow
|
|
14
|
+
if Tk::Tcllib::Tablelist_usingTile
|
|
15
|
+
PACKAGE_NAME = 'Tablelist_tile'.freeze
|
|
16
|
+
else
|
|
17
|
+
PACKAGE_NAME = 'Tablelist'.freeze
|
|
18
|
+
end
|
|
19
|
+
def self.package_name
|
|
20
|
+
PACKAGE_NAME
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.package_version
|
|
24
|
+
begin
|
|
25
|
+
TkPackage.require(self.package_name)
|
|
26
|
+
rescue
|
|
27
|
+
''
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.use_Tile?
|
|
32
|
+
(Tk::Tcllib::Tablelist_usingTile)? true: false
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
TableList = Tablelist
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Tk::Tcllib::TablelistItemConfig
|
|
40
|
+
include TkItemConfigMethod
|
|
41
|
+
|
|
42
|
+
def _to_idx(idx)
|
|
43
|
+
if idx.kind_of?(Array)
|
|
44
|
+
idx.collect{|elem| _get_eval_string(elem)}.join(',')
|
|
45
|
+
else
|
|
46
|
+
idx
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
def _from_idx(idx)
|
|
50
|
+
return idx unless idx.kind_of?(String)
|
|
51
|
+
|
|
52
|
+
if idx[0] == ?@ # '@x,y'
|
|
53
|
+
idx
|
|
54
|
+
elsif idx =~ /([^,]+),([^,]+)/
|
|
55
|
+
row = $1, column = $2
|
|
56
|
+
[num_or_str(row), num_or_str(column)]
|
|
57
|
+
else
|
|
58
|
+
num_or_str(idx)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
private :_to_idx, :_from_idx
|
|
62
|
+
|
|
63
|
+
def __item_cget_cmd(mixed_id)
|
|
64
|
+
[self.path, mixed_id[0] + 'cget', _to_idx(mixed_id[1])]
|
|
65
|
+
end
|
|
66
|
+
def __item_config_cmd(mixed_id)
|
|
67
|
+
[self.path, mixed_id[0] + 'configure', _to_idx(mixed_id[1])]
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def cell_cget(tagOrId, option)
|
|
71
|
+
itemcget(['cell', tagOrId], option)
|
|
72
|
+
end
|
|
73
|
+
def cell_cget_strict(tagOrId, option)
|
|
74
|
+
itemcget_strict(['cell', tagOrId], option)
|
|
75
|
+
end
|
|
76
|
+
def cell_configure(tagOrId, slot, value=None)
|
|
77
|
+
itemconfigure(['cell', tagOrId], slot, value)
|
|
78
|
+
end
|
|
79
|
+
def cell_configinfo(tagOrId, slot=nil)
|
|
80
|
+
itemconfiginfo(['cell', tagOrId], slot)
|
|
81
|
+
end
|
|
82
|
+
def current_cell_configinfo(tagOrId, slot=nil)
|
|
83
|
+
current_itemconfiginfo(['cell', tagOrId], slot)
|
|
84
|
+
end
|
|
85
|
+
alias cellcget cell_cget
|
|
86
|
+
alias cellcget_strict cell_cget_strict
|
|
87
|
+
alias cellconfigure cell_configure
|
|
88
|
+
alias cellconfiginfo cell_configinfo
|
|
89
|
+
alias current_cellconfiginfo current_cell_configinfo
|
|
90
|
+
|
|
91
|
+
def column_cget(tagOrId, option)
|
|
92
|
+
itemcget(['column', tagOrId], option)
|
|
93
|
+
end
|
|
94
|
+
def column_cget_strict(tagOrId, option)
|
|
95
|
+
itemcget_strict(['column', tagOrId], option)
|
|
96
|
+
end
|
|
97
|
+
def column_configure(tagOrId, slot, value=None)
|
|
98
|
+
itemconfigure(['column', tagOrId], slot, value)
|
|
99
|
+
end
|
|
100
|
+
def column_configinfo(tagOrId, slot=nil)
|
|
101
|
+
itemconfiginfo(['column', tagOrId], slot)
|
|
102
|
+
end
|
|
103
|
+
def current_column_configinfo(tagOrId, slot=nil)
|
|
104
|
+
current_itemconfiginfo(['column', tagOrId], slot)
|
|
105
|
+
end
|
|
106
|
+
alias columncget column_cget
|
|
107
|
+
alias columncget_strict column_cget_strict
|
|
108
|
+
alias columnconfigure column_configure
|
|
109
|
+
alias columnconfiginfo column_configinfo
|
|
110
|
+
alias current_columnconfiginfo current_column_configinfo
|
|
111
|
+
|
|
112
|
+
def row_cget(tagOrId, option)
|
|
113
|
+
itemcget(['row', tagOrId], option)
|
|
114
|
+
end
|
|
115
|
+
def row_cget_strict(tagOrId, option)
|
|
116
|
+
itemcget_strict(['row', tagOrId], option)
|
|
117
|
+
end
|
|
118
|
+
def row_configure(tagOrId, slot, value=None)
|
|
119
|
+
itemconfigure(['row', tagOrId], slot, value)
|
|
120
|
+
end
|
|
121
|
+
def row_configinfo(tagOrId, slot=nil)
|
|
122
|
+
itemconfiginfo(['row', tagOrId], slot)
|
|
123
|
+
end
|
|
124
|
+
def current_row_configinfo(tagOrId, slot=nil)
|
|
125
|
+
current_itemconfiginfo(['row', tagOrId], slot)
|
|
126
|
+
end
|
|
127
|
+
alias rowcget row_cget
|
|
128
|
+
alias rowcget_strict row_cget_strict
|
|
129
|
+
alias rowconfigure row_configure
|
|
130
|
+
alias rowconfiginfo row_configinfo
|
|
131
|
+
alias current_rowconfiginfo current_row_configinfo
|
|
132
|
+
|
|
133
|
+
private :itemcget, :itemcget_strict
|
|
134
|
+
private :itemconfigure, :itemconfiginfo, :current_itemconfiginfo
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
class Tk::Tcllib::Tablelist
|
|
138
|
+
include Tk::Tcllib::TablelistItemConfig
|
|
139
|
+
include Scrollable
|
|
140
|
+
|
|
141
|
+
TkCommandNames = ['::tablelist::tablelist'.freeze].freeze
|
|
142
|
+
WidgetClassName = 'Tablelist'.freeze
|
|
143
|
+
WidgetClassNames[WidgetClassName] = self
|
|
144
|
+
|
|
145
|
+
def create_self(keys)
|
|
146
|
+
if keys and keys != None
|
|
147
|
+
tk_call_without_enc(self.class::TkCommandNames[0], @path,
|
|
148
|
+
*hash_kv(keys, true))
|
|
149
|
+
else
|
|
150
|
+
tk_call_without_enc(self.class::TkCommandNames[0], @path)
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
private :create_self
|
|
154
|
+
|
|
155
|
+
##########################
|
|
156
|
+
|
|
157
|
+
def __numval_optkeys
|
|
158
|
+
super() + ['titlecolumns']
|
|
159
|
+
end
|
|
160
|
+
private :__numval_optkeys
|
|
161
|
+
|
|
162
|
+
def __strval_optkeys
|
|
163
|
+
super() + ['snipstring']
|
|
164
|
+
end
|
|
165
|
+
private :__strval_optkeys
|
|
166
|
+
|
|
167
|
+
def __boolval_optkeys
|
|
168
|
+
super() + [
|
|
169
|
+
'forceeditendcommand', 'movablecolumns', 'movablerows',
|
|
170
|
+
'protecttitlecolumns', 'resizablecolumns',
|
|
171
|
+
'showarrow', 'showlabels', 'showseparators'
|
|
172
|
+
]
|
|
173
|
+
end
|
|
174
|
+
private :__boolval_optkeys
|
|
175
|
+
|
|
176
|
+
def __listval_optkeys
|
|
177
|
+
super() + ['columns']
|
|
178
|
+
end
|
|
179
|
+
private :__listval_optkeys
|
|
180
|
+
|
|
181
|
+
def __tkvariable_optkeys
|
|
182
|
+
super() + ['listvariable']
|
|
183
|
+
end
|
|
184
|
+
private :__tkvariable_optkeys
|
|
185
|
+
|
|
186
|
+
def __val2ruby_optkeys # { key=>proc, ... }
|
|
187
|
+
# The method is used to convert a opt-value to a ruby's object.
|
|
188
|
+
# When get the value of the option "key", "proc.call(value)" is called.
|
|
189
|
+
super().update('stretch'=>proc{|v| (v == 'all')? v: simplelist(v)})
|
|
190
|
+
end
|
|
191
|
+
private :__val2ruby_optkeys
|
|
192
|
+
|
|
193
|
+
def __ruby2val_optkeys # { key=>proc, ... }
|
|
194
|
+
# The method is used to convert a ruby's object to a opt-value.
|
|
195
|
+
# When set the value of the option "key", "proc.call(value)" is called.
|
|
196
|
+
# That is, "-#{key} #{proc.call(value)}".
|
|
197
|
+
super().update('stretch'=>proc{|v|
|
|
198
|
+
(v.kind_of?(Array))? v.collect{|e| _to_idx(e)}: v
|
|
199
|
+
})
|
|
200
|
+
end
|
|
201
|
+
private :__ruby2val_optkeys
|
|
202
|
+
|
|
203
|
+
def __font_optkeys
|
|
204
|
+
super() + ['labelfont']
|
|
205
|
+
end
|
|
206
|
+
private :__font_optkeys
|
|
207
|
+
|
|
208
|
+
##########################
|
|
209
|
+
|
|
210
|
+
def __item_strval_optkeys(id)
|
|
211
|
+
if id[0] == 'cell'
|
|
212
|
+
super(id) + ['title']
|
|
213
|
+
else
|
|
214
|
+
super(id) - ['text'] + ['title']
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
private :__item_strval_optkeys
|
|
218
|
+
|
|
219
|
+
def __item_boolval_optkeys(id)
|
|
220
|
+
super(id) + [
|
|
221
|
+
'editable', 'hide', 'resizable', 'showarrow', 'stretchable',
|
|
222
|
+
]
|
|
223
|
+
end
|
|
224
|
+
private :__item_boolval_optkeys
|
|
225
|
+
|
|
226
|
+
def __item_listval_optkeys(id)
|
|
227
|
+
if id[0] == 'cell'
|
|
228
|
+
super(id)
|
|
229
|
+
else
|
|
230
|
+
super(id) + ['text']
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
private :__item_listval_optkeys
|
|
234
|
+
|
|
235
|
+
def __item_font_optkeys(id)
|
|
236
|
+
# maybe need to override
|
|
237
|
+
super(id) + ['labelfont']
|
|
238
|
+
end
|
|
239
|
+
private :__item_font_optkeys
|
|
240
|
+
|
|
241
|
+
##########################
|
|
242
|
+
|
|
243
|
+
def activate(index)
|
|
244
|
+
tk_send('activate', _to_idx(index))
|
|
245
|
+
self
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
def activate_cell(index)
|
|
249
|
+
tk_send('activatecell', _to_idx(index))
|
|
250
|
+
self
|
|
251
|
+
end
|
|
252
|
+
alias activatecell activate_cell
|
|
253
|
+
|
|
254
|
+
def get_attrib(name=nil)
|
|
255
|
+
if name && name != None
|
|
256
|
+
tk_send('attrib', name)
|
|
257
|
+
else
|
|
258
|
+
ret = []
|
|
259
|
+
lst = simplelist(tk_send('attrib'))
|
|
260
|
+
until lst.empty?
|
|
261
|
+
ret << ( [lst.shift] << lst.shift )
|
|
262
|
+
end
|
|
263
|
+
ret
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
def set_attrib(*args)
|
|
267
|
+
tk_send('attrib', *(args.flatten))
|
|
268
|
+
self
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
def bbox(index)
|
|
272
|
+
list(tk_send('bbox', _to_idx(index)))
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
def bodypath
|
|
276
|
+
window(tk_send('bodypath'))
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
def bodytag
|
|
280
|
+
TkBindTag.new_by_name(tk_send('bodytag'))
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
def cancel_editing
|
|
284
|
+
tk_send('cancelediting')
|
|
285
|
+
self
|
|
286
|
+
end
|
|
287
|
+
alias cancelediting cancel_editing
|
|
288
|
+
|
|
289
|
+
def cellindex(idx)
|
|
290
|
+
_from_idx(tk_send('cellindex', _to_idx(idx)))
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
def cellselection_anchor(idx)
|
|
294
|
+
tk_send('cellselection', 'anchor', _to_idx(idx))
|
|
295
|
+
self
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
def cellselection_clear(first, last=nil)
|
|
299
|
+
if first.kind_of?(Array)
|
|
300
|
+
tk_send('cellselection', 'clear', first.collect{|idx| _to_idx(idx)})
|
|
301
|
+
else
|
|
302
|
+
first = _to_idx(first)
|
|
303
|
+
last = (last)? _to_idx(last): first
|
|
304
|
+
tk_send('cellselection', 'clear', first, last)
|
|
305
|
+
end
|
|
306
|
+
self
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
def cellselection_includes(idx)
|
|
310
|
+
bool(tk_send('cellselection', 'includes', _to_idx(idx)))
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
def cellselection_set(first, last=nil)
|
|
314
|
+
if first.kind_of?(Array)
|
|
315
|
+
tk_send('cellselection', 'set', first.collect{|idx| _to_idx(idx)})
|
|
316
|
+
else
|
|
317
|
+
first = _to_idx(first)
|
|
318
|
+
last = (last)? _to_idx(last): first
|
|
319
|
+
tk_send('cellselection', 'set', first, last)
|
|
320
|
+
end
|
|
321
|
+
self
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
def columncount
|
|
325
|
+
number(tk_send('columncount'))
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
def columnindex(idx)
|
|
329
|
+
number(tk_send('columnindex', _to_idx(idx)))
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
def containing(y)
|
|
333
|
+
idx = num_or_str(tk_send('containing', y))
|
|
334
|
+
(idx.kind_of?(Fixnum) && idx < 0)? nil: idx
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
def containing_cell(x, y)
|
|
338
|
+
idx = _from_idx(tk_send('containingcell', x, y))
|
|
339
|
+
if idx.kind_of?(Array)
|
|
340
|
+
[
|
|
341
|
+
((idx[0].kind_of?(Fixnum) && idx[0] < 0)? nil: idx[0]),
|
|
342
|
+
((idx[1].kind_of?(Fixnum) && idx[1] < 0)? nil: idx[1])
|
|
343
|
+
]
|
|
344
|
+
else
|
|
345
|
+
idx
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
alias containingcell containing_cell
|
|
349
|
+
|
|
350
|
+
def containing_column(x)
|
|
351
|
+
idx = num_or_str(tk_send('containingcolumn', x))
|
|
352
|
+
(idx.kind_of?(Fixnum) && idx < 0)? nil: idx
|
|
353
|
+
end
|
|
354
|
+
alias containingcolumn containing_column
|
|
355
|
+
|
|
356
|
+
def curcellselection
|
|
357
|
+
simplelist(tk_send('curcellselection')).collect!{|idx| _from_idx(idx)}
|
|
358
|
+
end
|
|
359
|
+
|
|
360
|
+
def curselection
|
|
361
|
+
list(tk_send('curselection'))
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
def delete_items(first, last=nil)
|
|
365
|
+
if first.kind_of?(Array)
|
|
366
|
+
tk_send('delete', first.collect{|idx| _to_idx(idx)})
|
|
367
|
+
else
|
|
368
|
+
first = _to_idx(first)
|
|
369
|
+
last = (last)? _to_idx(last): first
|
|
370
|
+
tk_send('delete', first, last)
|
|
371
|
+
end
|
|
372
|
+
self
|
|
373
|
+
end
|
|
374
|
+
alias delete delete_items
|
|
375
|
+
alias deleteitems delete_items
|
|
376
|
+
|
|
377
|
+
def delete_columns(first, last=nil)
|
|
378
|
+
if first.kind_of?(Array)
|
|
379
|
+
tk_send('deletecolumns', first.collect{|idx| _to_idx(idx)})
|
|
380
|
+
else
|
|
381
|
+
first = _to_idx(first)
|
|
382
|
+
last = (last)? _to_idx(last): first
|
|
383
|
+
tk_send('deletecolumns', first, last)
|
|
384
|
+
end
|
|
385
|
+
self
|
|
386
|
+
end
|
|
387
|
+
alias deletecolumns delete_columns
|
|
388
|
+
|
|
389
|
+
def edit_cell(idx)
|
|
390
|
+
tk_send('editcell', _to_idx(idx))
|
|
391
|
+
self
|
|
392
|
+
end
|
|
393
|
+
alias editcell edit_cell
|
|
394
|
+
|
|
395
|
+
def editwinpath
|
|
396
|
+
window(tk_send('editwinpath'))
|
|
397
|
+
end
|
|
398
|
+
|
|
399
|
+
def entrypath
|
|
400
|
+
window(tk_send('entrypath'))
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
def fill_column(idx, txt)
|
|
404
|
+
tk_send('fillcolumn', _to_idx(idx), txt)
|
|
405
|
+
self
|
|
406
|
+
end
|
|
407
|
+
alias fillcolumn fill_column
|
|
408
|
+
|
|
409
|
+
def finish_editing
|
|
410
|
+
tk_send('finishediting')
|
|
411
|
+
self
|
|
412
|
+
end
|
|
413
|
+
alias finishediting finish_editing
|
|
414
|
+
|
|
415
|
+
def get(first, last=nil)
|
|
416
|
+
if first.kind_of?(Array)
|
|
417
|
+
simplelist(tk_send('get', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
|
|
418
|
+
else
|
|
419
|
+
first = _to_idx(first)
|
|
420
|
+
last = (last)? _to_idx(last): first
|
|
421
|
+
simplelist(tk_send('get', first, last))
|
|
422
|
+
end
|
|
423
|
+
end
|
|
424
|
+
|
|
425
|
+
def get_cells(first, last=nil)
|
|
426
|
+
if first.kind_of?(Array)
|
|
427
|
+
simplelist(tk_send('getcells', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
|
|
428
|
+
else
|
|
429
|
+
first = _to_idx(first)
|
|
430
|
+
last = (last)? _to_idx(last): first
|
|
431
|
+
simplelist(tk_send('getcells', first, last))
|
|
432
|
+
end
|
|
433
|
+
end
|
|
434
|
+
alias getcells get_cells
|
|
435
|
+
|
|
436
|
+
def get_columns(first, last=nil)
|
|
437
|
+
if first.kind_of?(Array)
|
|
438
|
+
simplelist(tk_send('getcolumns', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
|
|
439
|
+
else
|
|
440
|
+
first = _to_idx(first)
|
|
441
|
+
last = (last)? _to_idx(last): first
|
|
442
|
+
simplelist(tk_send('getcolumns', first, last))
|
|
443
|
+
end
|
|
444
|
+
end
|
|
445
|
+
alias getcolumns get_columns
|
|
446
|
+
|
|
447
|
+
def get_keys(first, last=nil)
|
|
448
|
+
if first.kind_of?(Array)
|
|
449
|
+
simplelist(tk_send('getkeys', first.collect{|idx| _to_idx(idx)})).collect!{|elem| simplelist(elem) }
|
|
450
|
+
else
|
|
451
|
+
first = _to_idx(first)
|
|
452
|
+
last = (last)? _to_idx(last): first
|
|
453
|
+
simplelist(tk_send('getkeys', first, last))
|
|
454
|
+
end
|
|
455
|
+
end
|
|
456
|
+
alias getkeys get_keys
|
|
457
|
+
|
|
458
|
+
def imagelabelpath(idx)
|
|
459
|
+
window(tk_send('imagelabelpath', _to_idx(idx)))
|
|
460
|
+
end
|
|
461
|
+
|
|
462
|
+
def index(idx)
|
|
463
|
+
number(tk_send('index', _to_idx(idx)))
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
def insert(idx, *items)
|
|
467
|
+
tk_send('insert', _to_idx(idx), *items)
|
|
468
|
+
self
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
def insert_columnlist(idx, columnlist)
|
|
472
|
+
tk_send('insertcolumnlist', _to_idx(idx), columnlist)
|
|
473
|
+
self
|
|
474
|
+
end
|
|
475
|
+
alias insertcolumnlist insert_columnlist
|
|
476
|
+
|
|
477
|
+
def insert_columns(idx, *args)
|
|
478
|
+
tk_send('insertcolums', _to_idx(idx), *args)
|
|
479
|
+
self
|
|
480
|
+
end
|
|
481
|
+
alias insertcolumns insert_columns
|
|
482
|
+
|
|
483
|
+
def insert_list(idx, list)
|
|
484
|
+
tk_send('insertlist', _to_idx(idx), list)
|
|
485
|
+
self
|
|
486
|
+
end
|
|
487
|
+
alias insertlist insert_list
|
|
488
|
+
|
|
489
|
+
def itemlistvar
|
|
490
|
+
TkVarAccess.new(tk_send('itemlistvar'))
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
def labelpath(idx)
|
|
494
|
+
window(tk_send('labelpath', _to_idx(idx)))
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
def labels
|
|
498
|
+
simplelist(tk_send('labels'))
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
def move(src, target)
|
|
502
|
+
tk_send('move', _to_idx(src), _to_idx(target))
|
|
503
|
+
self
|
|
504
|
+
end
|
|
505
|
+
|
|
506
|
+
def move_column(src, target)
|
|
507
|
+
tk_send('movecolumn', _to_idx(src), _to_idx(target))
|
|
508
|
+
self
|
|
509
|
+
end
|
|
510
|
+
alias movecolumn move_column
|
|
511
|
+
|
|
512
|
+
def nearest(y)
|
|
513
|
+
_from_idx(tk_send('nearest', y))
|
|
514
|
+
end
|
|
515
|
+
|
|
516
|
+
def nearest_cell(x, y)
|
|
517
|
+
_from_idx(tk_send('nearestcell', x, y))
|
|
518
|
+
end
|
|
519
|
+
alias nearestcell nearest_cell
|
|
520
|
+
|
|
521
|
+
def nearest_column(x)
|
|
522
|
+
_from_idx(tk_send('nearestcolumn', x))
|
|
523
|
+
end
|
|
524
|
+
alias nearestcolumn nearest_column
|
|
525
|
+
|
|
526
|
+
def reject_input
|
|
527
|
+
tk_send('rejectinput')
|
|
528
|
+
self
|
|
529
|
+
end
|
|
530
|
+
alias rejectinput reject_input
|
|
531
|
+
|
|
532
|
+
def reset_sortinfo
|
|
533
|
+
tk_send('resetsortinfo')
|
|
534
|
+
self
|
|
535
|
+
end
|
|
536
|
+
alias resetsortinfo reset_sortinfo
|
|
537
|
+
|
|
538
|
+
def scan_mark(x, y)
|
|
539
|
+
tk_send('scan', 'mark', x, y)
|
|
540
|
+
self
|
|
541
|
+
end
|
|
542
|
+
|
|
543
|
+
def scan_dragto(x, y)
|
|
544
|
+
tk_send('scan', 'dragto', x, y)
|
|
545
|
+
self
|
|
546
|
+
end
|
|
547
|
+
|
|
548
|
+
def see(idx)
|
|
549
|
+
tk_send('see', _to_idx(idx))
|
|
550
|
+
self
|
|
551
|
+
end
|
|
552
|
+
|
|
553
|
+
def see_cell(idx)
|
|
554
|
+
tk_send('seecell', _to_idx(idx))
|
|
555
|
+
self
|
|
556
|
+
end
|
|
557
|
+
alias seecell see_cell
|
|
558
|
+
|
|
559
|
+
def see_column(idx)
|
|
560
|
+
tk_send('seecolumn', _to_idx(idx))
|
|
561
|
+
self
|
|
562
|
+
end
|
|
563
|
+
alias seecolumn see_column
|
|
564
|
+
|
|
565
|
+
def selection_anchor(idx)
|
|
566
|
+
tk_send('selection', 'anchor', _to_idx(idx))
|
|
567
|
+
self
|
|
568
|
+
end
|
|
569
|
+
|
|
570
|
+
def selection_clear(first, last=nil)
|
|
571
|
+
if first.kind_of?(Array)
|
|
572
|
+
tk_send('selection', 'clear', first.collect{|idx| _to_idx(idx)})
|
|
573
|
+
else
|
|
574
|
+
first = _to_idx(first)
|
|
575
|
+
last = (last)? _to_idx(last): first
|
|
576
|
+
tk_send('selection', 'clear', first, last)
|
|
577
|
+
end
|
|
578
|
+
self
|
|
579
|
+
end
|
|
580
|
+
|
|
581
|
+
def selection_includes(idx)
|
|
582
|
+
bool(tk_send('selection', 'includes', _to_idx(idx)))
|
|
583
|
+
end
|
|
584
|
+
|
|
585
|
+
def selection_set(first, last=nil)
|
|
586
|
+
if first.kind_of?(Array)
|
|
587
|
+
tk_send('selection', 'set', first.collect{|idx| _to_idx(idx)})
|
|
588
|
+
else
|
|
589
|
+
first = _to_idx(first)
|
|
590
|
+
last = (last)? _to_idx(last): first
|
|
591
|
+
tk_send('selection', 'set', first, last)
|
|
592
|
+
end
|
|
593
|
+
self
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
def separatorpath(idx=nil)
|
|
597
|
+
if idx
|
|
598
|
+
window(tk_send('separatorpath', _to_idx(idx)))
|
|
599
|
+
else
|
|
600
|
+
window(tk_send('separatorpath'))
|
|
601
|
+
end
|
|
602
|
+
end
|
|
603
|
+
|
|
604
|
+
def separators
|
|
605
|
+
simplelist(tk_send('separators')).collect!{|w| window(w)}
|
|
606
|
+
end
|
|
607
|
+
|
|
608
|
+
def size
|
|
609
|
+
number(tk_send('size'))
|
|
610
|
+
end
|
|
611
|
+
|
|
612
|
+
def sort(order=nil)
|
|
613
|
+
if order
|
|
614
|
+
order = order.to_s
|
|
615
|
+
order = '-' << order if order[0] != ?-
|
|
616
|
+
if order.length < 2
|
|
617
|
+
order = nil
|
|
618
|
+
end
|
|
619
|
+
end
|
|
620
|
+
if order
|
|
621
|
+
tk_send('sort', order)
|
|
622
|
+
else
|
|
623
|
+
tk_send('sort')
|
|
624
|
+
end
|
|
625
|
+
self
|
|
626
|
+
end
|
|
627
|
+
def sort_increasing
|
|
628
|
+
tk_send('sort', '-increasing')
|
|
629
|
+
self
|
|
630
|
+
end
|
|
631
|
+
def sort_decreasing
|
|
632
|
+
tk_send('sort', '-decreasing')
|
|
633
|
+
self
|
|
634
|
+
end
|
|
635
|
+
|
|
636
|
+
DEFAULT_sortByColumn_cmd = '::tablelist::sortByColumn'
|
|
637
|
+
|
|
638
|
+
def sort_by_column(idx, order=nil)
|
|
639
|
+
if order
|
|
640
|
+
order = order.to_s
|
|
641
|
+
order = '-' << order if order[0] != ?-
|
|
642
|
+
if order.length < 2
|
|
643
|
+
order = nil
|
|
644
|
+
end
|
|
645
|
+
end
|
|
646
|
+
if order
|
|
647
|
+
tk_send('sortbycolumn', _to_idx(idx), order)
|
|
648
|
+
else
|
|
649
|
+
tk_send('sortbycolumn', _to_idx(idx))
|
|
650
|
+
end
|
|
651
|
+
self
|
|
652
|
+
end
|
|
653
|
+
def sort_by_column_increasing(idx)
|
|
654
|
+
tk_send('sortbycolumn', _to_idx(idx), '-increasing')
|
|
655
|
+
self
|
|
656
|
+
end
|
|
657
|
+
def sort_by_column_decreasing(idx)
|
|
658
|
+
tk_send('sortbycolumn', _to_idx(idx), '-decreasing')
|
|
659
|
+
self
|
|
660
|
+
end
|
|
661
|
+
|
|
662
|
+
def sortcolumn
|
|
663
|
+
idx = num_or_str(tk_send('sortcolum'))
|
|
664
|
+
(idx.kind_of?(Fixnum) && idx < 0)? nil: idx
|
|
665
|
+
end
|
|
666
|
+
|
|
667
|
+
def sortorder
|
|
668
|
+
tk_send('sortorder')
|
|
669
|
+
end
|
|
670
|
+
|
|
671
|
+
def toggle_visibility(first, last=nil)
|
|
672
|
+
if first.kind_of?(Array)
|
|
673
|
+
tk_send('togglevisibility', first.collect{|idx| _to_idx(idx)})
|
|
674
|
+
else
|
|
675
|
+
first = _to_idx(first)
|
|
676
|
+
last = (last)? _to_idx(last): first
|
|
677
|
+
tk_send('togglevisibility', first, last)
|
|
678
|
+
end
|
|
679
|
+
self
|
|
680
|
+
end
|
|
681
|
+
alias togglevisibility toggle_visibility
|
|
682
|
+
|
|
683
|
+
def windowpath(idx)
|
|
684
|
+
window(tk_send('windowpath', _to_idx(idx)))
|
|
685
|
+
end
|
|
686
|
+
end
|
|
687
|
+
|
|
688
|
+
class << Tk::Tcllib::Tablelist
|
|
689
|
+
############################################################
|
|
690
|
+
# helper commands
|
|
691
|
+
def getTablelistPath(descendant)
|
|
692
|
+
window(Tk.tk_call('::tablelist::getTablelistPath', descendant))
|
|
693
|
+
end
|
|
694
|
+
|
|
695
|
+
def convEventFields(descendant, x, y)
|
|
696
|
+
window(Tk.tk_call('::tablelist::convEventFields', descendant, x, y))
|
|
697
|
+
end
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
############################################################
|
|
701
|
+
# with the BWidget package
|
|
702
|
+
def addBWidgetEntry(name=None)
|
|
703
|
+
Tk.tk_call('::tablelist::addBWidgetEntry', name)
|
|
704
|
+
end
|
|
705
|
+
|
|
706
|
+
def addBWidgetSpinBox(name=None)
|
|
707
|
+
Tk.tk_call('::tablelist::addBWidgetSpinBox', name)
|
|
708
|
+
end
|
|
709
|
+
|
|
710
|
+
def addBWidgetComboBox(name=None)
|
|
711
|
+
Tk.tk_call('::tablelist::addBWidgetComboBox', name)
|
|
712
|
+
end
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
############################################################
|
|
716
|
+
# with the Iwidgets ([incr Widgets]) package
|
|
717
|
+
def addIncrEntryfield(name=None)
|
|
718
|
+
Tk.tk_call('::tablelist::addIncrEntry', name)
|
|
719
|
+
end
|
|
720
|
+
|
|
721
|
+
def addIncrDateTimeWidget(type, seconds=false, name=None)
|
|
722
|
+
# type := 'datefield'|'dateentry'|timefield'|'timeentry'
|
|
723
|
+
if seconds && seconds != None
|
|
724
|
+
seconds = '-seconds'
|
|
725
|
+
else
|
|
726
|
+
seconds = None
|
|
727
|
+
end
|
|
728
|
+
Tk.tk_call('::tablelist::addDateTimeWidget', type, seconds, name)
|
|
729
|
+
end
|
|
730
|
+
|
|
731
|
+
def addIncrSpinner(name=None)
|
|
732
|
+
Tk.tk_call('::tablelist::addIncrSpinner', name)
|
|
733
|
+
end
|
|
734
|
+
|
|
735
|
+
def addIncrSpinint(name=None)
|
|
736
|
+
Tk.tk_call('::tablelist::addIncrSpinint', name)
|
|
737
|
+
end
|
|
738
|
+
|
|
739
|
+
def addIncrCombobox(name=None)
|
|
740
|
+
Tk.tk_call('::tablelist::addIncrCombobox', name)
|
|
741
|
+
end
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
############################################################
|
|
745
|
+
# with Bryan Oakley's combobox package
|
|
746
|
+
def addOakleyCombobox(name=None)
|
|
747
|
+
Tk.tk_call('::tablelist::addOakleyCombobox', name)
|
|
748
|
+
end
|
|
749
|
+
|
|
750
|
+
############################################################
|
|
751
|
+
# with the multi-entry package Mentry is a library extension
|
|
752
|
+
def addDateMentry(format, separator, gmt=false, name=None)
|
|
753
|
+
if gmt && gmt != None
|
|
754
|
+
gmt = '-gmt'
|
|
755
|
+
else
|
|
756
|
+
gmt = None
|
|
757
|
+
end
|
|
758
|
+
Tk.tk_call('::tablelist::addDateMentry', format, separator, gmt, name)
|
|
759
|
+
end
|
|
760
|
+
|
|
761
|
+
def addTimeMentry(format, separator, gmt=false, name=None)
|
|
762
|
+
if gmt && gmt != None
|
|
763
|
+
gmt = '-gmt'
|
|
764
|
+
else
|
|
765
|
+
gmt = None
|
|
766
|
+
end
|
|
767
|
+
Tk.tk_call('::tablelist::addTimeMentry', format, separator, gmt, name)
|
|
768
|
+
end
|
|
769
|
+
|
|
770
|
+
def addFixedPointMentry(count1, count2, comma=false, name=None)
|
|
771
|
+
if comma && comma != None
|
|
772
|
+
comma = '-comma'
|
|
773
|
+
else
|
|
774
|
+
comma = None
|
|
775
|
+
end
|
|
776
|
+
Tk.tk_call('::tablelist::addFixedPoingMentry', count1, count2, comma, name)
|
|
777
|
+
end
|
|
778
|
+
|
|
779
|
+
def addIPAddrMentry(name=None)
|
|
780
|
+
Tk.tk_call('::tablelist::addIPAddrMentry', name)
|
|
781
|
+
end
|
|
782
|
+
end
|