Pratt 1.5.6
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/.exrc +61 -0
- data/.gitignore +4 -0
- data/History.txt +6 -0
- data/Manifest.txt +46 -0
- data/Pratt.gemspec +351 -0
- data/README.txt +66 -0
- data/Rakefile +85 -0
- data/TODO +54 -0
- data/VERSION +1 -0
- data/bin/pratt.rb +13 -0
- data/config.rb +34 -0
- data/lib/pratt.rb +527 -0
- data/lib/pratt/array.rb +11 -0
- data/lib/pratt/string.rb +18 -0
- data/models/app.rb +40 -0
- data/models/customer.rb +24 -0
- data/models/payment.rb +22 -0
- data/models/pratt.rb +19 -0
- data/models/project.rb +82 -0
- data/models/whence.rb +70 -0
- data/pkgs/tile-0.8.2.tar.gz +0 -0
- data/pkgs/tile-0.8.2/ANNOUNCE.txt +95 -0
- data/pkgs/tile-0.8.2/ChangeLog +4651 -0
- data/pkgs/tile-0.8.2/Makefile +250 -0
- data/pkgs/tile-0.8.2/Makefile.in +250 -0
- data/pkgs/tile-0.8.2/README.txt +86 -0
- data/pkgs/tile-0.8.2/aclocal.m4 +2 -0
- data/pkgs/tile-0.8.2/altTheme.o +0 -0
- data/pkgs/tile-0.8.2/blink.o +0 -0
- data/pkgs/tile-0.8.2/button.o +0 -0
- data/pkgs/tile-0.8.2/cache.o +0 -0
- data/pkgs/tile-0.8.2/clamTheme.o +0 -0
- data/pkgs/tile-0.8.2/classicTheme.o +0 -0
- data/pkgs/tile-0.8.2/config.log +1330 -0
- data/pkgs/tile-0.8.2/config.status +795 -0
- data/pkgs/tile-0.8.2/configure +15248 -0
- data/pkgs/tile-0.8.2/configure.in +89 -0
- data/pkgs/tile-0.8.2/demos/autocomplete.tcl +59 -0
- data/pkgs/tile-0.8.2/demos/demo.tcl +870 -0
- data/pkgs/tile-0.8.2/demos/dirbrowser.tcl +167 -0
- data/pkgs/tile-0.8.2/demos/dlgtest.tcl +97 -0
- data/pkgs/tile-0.8.2/demos/iconlib.tcl +110 -0
- data/pkgs/tile-0.8.2/demos/repeater.tcl +117 -0
- data/pkgs/tile-0.8.2/demos/toolbutton.tcl +101 -0
- data/pkgs/tile-0.8.2/doc/Geometry.3 +230 -0
- data/pkgs/tile-0.8.2/doc/INDEX.MAP +153 -0
- data/pkgs/tile-0.8.2/doc/Makefile +36 -0
- data/pkgs/tile-0.8.2/doc/TILE.XML +45 -0
- data/pkgs/tile-0.8.2/doc/Theme.3 +34 -0
- data/pkgs/tile-0.8.2/doc/button.n +75 -0
- data/pkgs/tile-0.8.2/doc/checkbutton.n +61 -0
- data/pkgs/tile-0.8.2/doc/combobox.n +98 -0
- data/pkgs/tile-0.8.2/doc/converting.txt +97 -0
- data/pkgs/tile-0.8.2/doc/dialog.n +122 -0
- data/pkgs/tile-0.8.2/doc/entry.n +438 -0
- data/pkgs/tile-0.8.2/doc/frame.n +43 -0
- data/pkgs/tile-0.8.2/doc/html/Geometry.html +304 -0
- data/pkgs/tile-0.8.2/doc/html/Theme.html +48 -0
- data/pkgs/tile-0.8.2/doc/html/button.html +120 -0
- data/pkgs/tile-0.8.2/doc/html/category-index.html +18 -0
- data/pkgs/tile-0.8.2/doc/html/checkbutton.html +94 -0
- data/pkgs/tile-0.8.2/doc/html/combobox.html +164 -0
- data/pkgs/tile-0.8.2/doc/html/converting.txt +97 -0
- data/pkgs/tile-0.8.2/doc/html/dialog.html +159 -0
- data/pkgs/tile-0.8.2/doc/html/entry.html +613 -0
- data/pkgs/tile-0.8.2/doc/html/frame.html +76 -0
- data/pkgs/tile-0.8.2/doc/html/image.html +100 -0
- data/pkgs/tile-0.8.2/doc/html/index.html +25 -0
- data/pkgs/tile-0.8.2/doc/html/keyword-index.html +228 -0
- data/pkgs/tile-0.8.2/doc/html/label.html +133 -0
- data/pkgs/tile-0.8.2/doc/html/labelframe.html +91 -0
- data/pkgs/tile-0.8.2/doc/html/manpage.css +212 -0
- data/pkgs/tile-0.8.2/doc/html/menubutton.html +63 -0
- data/pkgs/tile-0.8.2/doc/html/notebook.html +280 -0
- data/pkgs/tile-0.8.2/doc/html/paned.html +149 -0
- data/pkgs/tile-0.8.2/doc/html/progressbar.html +138 -0
- data/pkgs/tile-0.8.2/doc/html/radiobutton.html +89 -0
- data/pkgs/tile-0.8.2/doc/html/scrollbar.html +221 -0
- data/pkgs/tile-0.8.2/doc/html/separator.html +48 -0
- data/pkgs/tile-0.8.2/doc/html/sizegrip.html +62 -0
- data/pkgs/tile-0.8.2/doc/html/style.html +172 -0
- data/pkgs/tile-0.8.2/doc/html/tile-intro.html +164 -0
- data/pkgs/tile-0.8.2/doc/html/treeview.html +634 -0
- data/pkgs/tile-0.8.2/doc/html/widget.html +342 -0
- data/pkgs/tile-0.8.2/doc/image.n +81 -0
- data/pkgs/tile-0.8.2/doc/internals.txt +409 -0
- data/pkgs/tile-0.8.2/doc/label.n +75 -0
- data/pkgs/tile-0.8.2/doc/labelframe.n +64 -0
- data/pkgs/tile-0.8.2/doc/man.macros +239 -0
- data/pkgs/tile-0.8.2/doc/menubutton.n +41 -0
- data/pkgs/tile-0.8.2/doc/notebook.n +188 -0
- data/pkgs/tile-0.8.2/doc/paned.n +95 -0
- data/pkgs/tile-0.8.2/doc/progressbar.n +79 -0
- data/pkgs/tile-0.8.2/doc/radiobutton.n +57 -0
- data/pkgs/tile-0.8.2/doc/scrollbar.n +160 -0
- data/pkgs/tile-0.8.2/doc/separator.n +30 -0
- data/pkgs/tile-0.8.2/doc/sizegrip.n +53 -0
- data/pkgs/tile-0.8.2/doc/style.n +119 -0
- data/pkgs/tile-0.8.2/doc/tile-intro.n +165 -0
- data/pkgs/tile-0.8.2/doc/tmml.options +4 -0
- data/pkgs/tile-0.8.2/doc/treeview.n +415 -0
- data/pkgs/tile-0.8.2/doc/widget.n +227 -0
- data/pkgs/tile-0.8.2/doc/xml/Geometry.tmml +379 -0
- data/pkgs/tile-0.8.2/doc/xml/INDEX.MAP +153 -0
- data/pkgs/tile-0.8.2/doc/xml/Theme.tmml +63 -0
- data/pkgs/tile-0.8.2/doc/xml/button.tmml +134 -0
- data/pkgs/tile-0.8.2/doc/xml/checkbutton.tmml +119 -0
- data/pkgs/tile-0.8.2/doc/xml/combobox.tmml +184 -0
- data/pkgs/tile-0.8.2/doc/xml/dialog.tmml +195 -0
- data/pkgs/tile-0.8.2/doc/xml/entry.tmml +630 -0
- data/pkgs/tile-0.8.2/doc/xml/frame.tmml +98 -0
- data/pkgs/tile-0.8.2/doc/xml/image.tmml +101 -0
- data/pkgs/tile-0.8.2/doc/xml/label.tmml +154 -0
- data/pkgs/tile-0.8.2/doc/xml/labelframe.tmml +116 -0
- data/pkgs/tile-0.8.2/doc/xml/menubutton.tmml +80 -0
- data/pkgs/tile-0.8.2/doc/xml/notebook.tmml +306 -0
- data/pkgs/tile-0.8.2/doc/xml/paned.tmml +154 -0
- data/pkgs/tile-0.8.2/doc/xml/progressbar.tmml +151 -0
- data/pkgs/tile-0.8.2/doc/xml/radiobutton.tmml +109 -0
- data/pkgs/tile-0.8.2/doc/xml/scrollbar.tmml +233 -0
- data/pkgs/tile-0.8.2/doc/xml/separator.tmml +59 -0
- data/pkgs/tile-0.8.2/doc/xml/sizegrip.tmml +82 -0
- data/pkgs/tile-0.8.2/doc/xml/style.tmml +171 -0
- data/pkgs/tile-0.8.2/doc/xml/tile-intro.tmml +192 -0
- data/pkgs/tile-0.8.2/doc/xml/treeview.tmml +604 -0
- data/pkgs/tile-0.8.2/doc/xml/widget.tmml +372 -0
- data/pkgs/tile-0.8.2/entry.o +0 -0
- data/pkgs/tile-0.8.2/frame.o +0 -0
- data/pkgs/tile-0.8.2/generic/Makefile.in +221 -0
- data/pkgs/tile-0.8.2/generic/TODO +493 -0
- data/pkgs/tile-0.8.2/generic/altTheme.c +1172 -0
- data/pkgs/tile-0.8.2/generic/blink.c +168 -0
- data/pkgs/tile-0.8.2/generic/button.c +858 -0
- data/pkgs/tile-0.8.2/generic/cache.c +354 -0
- data/pkgs/tile-0.8.2/generic/clamTheme.c +974 -0
- data/pkgs/tile-0.8.2/generic/classicTheme.c +518 -0
- data/pkgs/tile-0.8.2/generic/configure +10334 -0
- data/pkgs/tile-0.8.2/generic/configure.in +100 -0
- data/pkgs/tile-0.8.2/generic/entry.c +1922 -0
- data/pkgs/tile-0.8.2/generic/frame.c +648 -0
- data/pkgs/tile-0.8.2/generic/gunk.h +44 -0
- data/pkgs/tile-0.8.2/generic/image.c +416 -0
- data/pkgs/tile-0.8.2/generic/label.c +663 -0
- data/pkgs/tile-0.8.2/generic/layout.c +1215 -0
- data/pkgs/tile-0.8.2/generic/manager.c +554 -0
- data/pkgs/tile-0.8.2/generic/manager.h +91 -0
- data/pkgs/tile-0.8.2/generic/notebook.c +1380 -0
- data/pkgs/tile-0.8.2/generic/paned.c +958 -0
- data/pkgs/tile-0.8.2/generic/pkgIndex.tcl.in +7 -0
- data/pkgs/tile-0.8.2/generic/progress.c +549 -0
- data/pkgs/tile-0.8.2/generic/scale.c +526 -0
- data/pkgs/tile-0.8.2/generic/scroll.c +253 -0
- data/pkgs/tile-0.8.2/generic/scrollbar.c +346 -0
- data/pkgs/tile-0.8.2/generic/separator.c +132 -0
- data/pkgs/tile-0.8.2/generic/square.c +306 -0
- data/pkgs/tile-0.8.2/generic/tagset.c +147 -0
- data/pkgs/tile-0.8.2/generic/tile.c +296 -0
- data/pkgs/tile-0.8.2/generic/tkElements.c +1280 -0
- data/pkgs/tile-0.8.2/generic/tkTheme.c +1708 -0
- data/pkgs/tile-0.8.2/generic/tkTheme.h +419 -0
- data/pkgs/tile-0.8.2/generic/tkThemeInt.h +45 -0
- data/pkgs/tile-0.8.2/generic/tkstate.c +268 -0
- data/pkgs/tile-0.8.2/generic/trace.c +145 -0
- data/pkgs/tile-0.8.2/generic/track.c +174 -0
- data/pkgs/tile-0.8.2/generic/treeview.c +3211 -0
- data/pkgs/tile-0.8.2/generic/ttk.decls +154 -0
- data/pkgs/tile-0.8.2/generic/ttkDecls.h +340 -0
- data/pkgs/tile-0.8.2/generic/ttkStubInit.c +61 -0
- data/pkgs/tile-0.8.2/generic/ttkStubLib.c +70 -0
- data/pkgs/tile-0.8.2/generic/widget.c +785 -0
- data/pkgs/tile-0.8.2/generic/widget.h +263 -0
- data/pkgs/tile-0.8.2/image.o +0 -0
- data/pkgs/tile-0.8.2/label.o +0 -0
- data/pkgs/tile-0.8.2/layout.o +0 -0
- data/pkgs/tile-0.8.2/library/altTheme.tcl +101 -0
- data/pkgs/tile-0.8.2/library/aquaTheme.tcl +62 -0
- data/pkgs/tile-0.8.2/library/button.tcl +85 -0
- data/pkgs/tile-0.8.2/library/clamTheme.tcl +139 -0
- data/pkgs/tile-0.8.2/library/classicTheme.tcl +108 -0
- data/pkgs/tile-0.8.2/library/combobox.tcl +439 -0
- data/pkgs/tile-0.8.2/library/cursors.tcl +36 -0
- data/pkgs/tile-0.8.2/library/defaults.tcl +118 -0
- data/pkgs/tile-0.8.2/library/dialog.tcl +274 -0
- data/pkgs/tile-0.8.2/library/entry.tcl +580 -0
- data/pkgs/tile-0.8.2/library/fonts.tcl +153 -0
- data/pkgs/tile-0.8.2/library/icons.tcl +105 -0
- data/pkgs/tile-0.8.2/library/keynav.tcl +192 -0
- data/pkgs/tile-0.8.2/library/menubutton.tcl +171 -0
- data/pkgs/tile-0.8.2/library/notebook.tcl +193 -0
- data/pkgs/tile-0.8.2/library/paned.tcl +87 -0
- data/pkgs/tile-0.8.2/library/progress.tcl +51 -0
- data/pkgs/tile-0.8.2/library/scale.tcl +54 -0
- data/pkgs/tile-0.8.2/library/scrollbar.tcl +125 -0
- data/pkgs/tile-0.8.2/library/sizegrip.tcl +77 -0
- data/pkgs/tile-0.8.2/library/tile.tcl +211 -0
- data/pkgs/tile-0.8.2/library/treeview.tcl +382 -0
- data/pkgs/tile-0.8.2/library/utils.tcl +254 -0
- data/pkgs/tile-0.8.2/library/winTheme.tcl +77 -0
- data/pkgs/tile-0.8.2/library/xpTheme.tcl +63 -0
- data/pkgs/tile-0.8.2/libtile0.8.2.so +0 -0
- data/pkgs/tile-0.8.2/libttkstub.a +0 -0
- data/pkgs/tile-0.8.2/license.terms +24 -0
- data/pkgs/tile-0.8.2/macosx/aquaTheme.c +1076 -0
- data/pkgs/tile-0.8.2/manager.o +0 -0
- data/pkgs/tile-0.8.2/notebook.o +0 -0
- data/pkgs/tile-0.8.2/paned.o +0 -0
- data/pkgs/tile-0.8.2/pkgIndex.tcl +3 -0
- data/pkgs/tile-0.8.2/progress.o +0 -0
- data/pkgs/tile-0.8.2/scale.o +0 -0
- data/pkgs/tile-0.8.2/scroll.o +0 -0
- data/pkgs/tile-0.8.2/scrollbar.o +0 -0
- data/pkgs/tile-0.8.2/separator.o +0 -0
- data/pkgs/tile-0.8.2/tagset.o +0 -0
- data/pkgs/tile-0.8.2/tclconfig/install-sh +119 -0
- data/pkgs/tile-0.8.2/tclconfig/tcl.m4 +4069 -0
- data/pkgs/tile-0.8.2/tclconfig/teax.m4 +109 -0
- data/pkgs/tile-0.8.2/tests/all.tcl +18 -0
- data/pkgs/tile-0.8.2/tests/bwidget.test +103 -0
- data/pkgs/tile-0.8.2/tests/cbtest.tcl +125 -0
- data/pkgs/tile-0.8.2/tests/combobox.test +51 -0
- data/pkgs/tile-0.8.2/tests/compound.tcl +92 -0
- data/pkgs/tile-0.8.2/tests/entry.test +285 -0
- data/pkgs/tile-0.8.2/tests/entrytest.tcl +78 -0
- data/pkgs/tile-0.8.2/tests/image.test +94 -0
- data/pkgs/tile-0.8.2/tests/labelframe.tcl +41 -0
- data/pkgs/tile-0.8.2/tests/labelframe.test +137 -0
- data/pkgs/tile-0.8.2/tests/layout.test +33 -0
- data/pkgs/tile-0.8.2/tests/misc.test +35 -0
- data/pkgs/tile-0.8.2/tests/nbtest.tcl +66 -0
- data/pkgs/tile-0.8.2/tests/notebook.test +500 -0
- data/pkgs/tile-0.8.2/tests/paned.test +298 -0
- data/pkgs/tile-0.8.2/tests/progress.test +92 -0
- data/pkgs/tile-0.8.2/tests/pwtest.tcl +90 -0
- data/pkgs/tile-0.8.2/tests/sbtest.tcl +79 -0
- data/pkgs/tile-0.8.2/tests/scrollbar.test +77 -0
- data/pkgs/tile-0.8.2/tests/sgtest.tcl +52 -0
- data/pkgs/tile-0.8.2/tests/testutils.tcl +20 -0
- data/pkgs/tile-0.8.2/tests/tile.test +674 -0
- data/pkgs/tile-0.8.2/tests/treetags.test +78 -0
- data/pkgs/tile-0.8.2/tests/treeview.test +563 -0
- data/pkgs/tile-0.8.2/tests/tvtest.tcl +332 -0
- data/pkgs/tile-0.8.2/tests/validate.test +278 -0
- data/pkgs/tile-0.8.2/tile.o +0 -0
- data/pkgs/tile-0.8.2/tkElements.o +0 -0
- data/pkgs/tile-0.8.2/tkTheme.o +0 -0
- data/pkgs/tile-0.8.2/tkstate.o +0 -0
- data/pkgs/tile-0.8.2/tools/genStubs.tcl +861 -0
- data/pkgs/tile-0.8.2/trace.o +0 -0
- data/pkgs/tile-0.8.2/track.o +0 -0
- data/pkgs/tile-0.8.2/treeview.o +0 -0
- data/pkgs/tile-0.8.2/ttkStubInit.o +0 -0
- data/pkgs/tile-0.8.2/ttkStubLib.o +0 -0
- data/pkgs/tile-0.8.2/widget.o +0 -0
- data/pkgs/tile-0.8.2/win/Tile.dsp +261 -0
- data/pkgs/tile-0.8.2/win/makefile.vc +527 -0
- data/pkgs/tile-0.8.2/win/monitor.c +164 -0
- data/pkgs/tile-0.8.2/win/nmakehlp.c +483 -0
- data/pkgs/tile-0.8.2/win/rules.vc +512 -0
- data/pkgs/tile-0.8.2/win/tile.rc +40 -0
- data/pkgs/tile-0.8.2/win/winTheme.c +734 -0
- data/pkgs/tile-0.8.2/win/xpTheme.c +1029 -0
- data/spec/app_spec.rb +48 -0
- data/spec/customer_spec.rb +31 -0
- data/spec/fixtures/graph.expectation +18 -0
- data/spec/payment_spec.rb +19 -0
- data/spec/pratt_spec.rb +148 -0
- data/spec/project_spec.rb +163 -0
- data/spec/rcov.opts +0 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/whence_spec.rb +54 -0
- data/tasks/pratt.rb +84 -0
- data/templates/model.eruby +12 -0
- data/templates/spec.eruby +8 -0
- data/views/env.rb +22 -0
- data/views/graph.eruby +20 -0
- data/views/invoice.eruby +148 -0
- data/views/main.rb +92 -0
- data/views/pid.eruby +3 -0
- data/views/pop.rb +94 -0
- data/views/pop2.rb +75 -0
- data/views/raw.eruby +11 -0
- metadata +390 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
dnl
|
|
2
|
+
dnl teax.m4,v 1.3 2005/09/29 00:52:33 jenglish Exp
|
|
3
|
+
dnl
|
|
4
|
+
dnl Additional autoconf macros for TEA
|
|
5
|
+
dnl
|
|
6
|
+
dnl
|
|
7
|
+
|
|
8
|
+
dnl _TEAX_CHECK_MSVC --
|
|
9
|
+
dnl
|
|
10
|
+
dnl Defines the shell variable "USING_MSVC" as "yes" or "no".
|
|
11
|
+
dnl Several tests on Windows work differently depending on
|
|
12
|
+
dnl whether we're using MSVC or GCC. Current heuristic:
|
|
13
|
+
dnl if it's Windows, and CC is not gcc, we're using MSVC.
|
|
14
|
+
dnl
|
|
15
|
+
dnl This macro doesn't need to be called from configure.ac;
|
|
16
|
+
dnl other macros that need it will AC_REQUIRE it.
|
|
17
|
+
dnl
|
|
18
|
+
AC_DEFUN([_TEAX_CHECK_MSVC],[
|
|
19
|
+
#@ _TEAX_CHECK_MSVC
|
|
20
|
+
AC_REQUIRE([AC_PROG_CC])
|
|
21
|
+
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
|
|
22
|
+
USING_MSVC="yes"
|
|
23
|
+
else
|
|
24
|
+
USING_MSVC="no"
|
|
25
|
+
fi;
|
|
26
|
+
])
|
|
27
|
+
|
|
28
|
+
dnl TEAX_CONFIG_LDFLAGS --
|
|
29
|
+
dnl
|
|
30
|
+
dnl Sets the following additional variables used when building libraries:
|
|
31
|
+
dnl
|
|
32
|
+
dnl SHLIB_LD_OUT
|
|
33
|
+
dnl Either "-o " or "/out:" depending on whether SHLIB_LD
|
|
34
|
+
dnl is a Unix-style linker (ld) or MS-style (link)
|
|
35
|
+
dnl
|
|
36
|
+
dnl STLIB_LD_OUT --
|
|
37
|
+
dnl Either " " or "/out:" depending on whether STLIB_LD
|
|
38
|
+
dnl is Unix-style (ar) or MS-style (lib)
|
|
39
|
+
dnl
|
|
40
|
+
dnl SHLIB_SUFFIX --
|
|
41
|
+
dnl Suffix for shared libraries. This is actually computed by
|
|
42
|
+
dnl TEA_CONFIG_CFLAGS, but it doesn't AC_SUBST() it.
|
|
43
|
+
dnl
|
|
44
|
+
dnl STLIB_SUFFIX --
|
|
45
|
+
dnl Suffix for static libraries (.a, .lib, ...)
|
|
46
|
+
dnl
|
|
47
|
+
dnl LIB_PREFIX --
|
|
48
|
+
dnl Prefix for library names; either "lib" or empty.
|
|
49
|
+
dnl
|
|
50
|
+
AC_DEFUN([TEAX_CONFIG_LDFLAGS],[
|
|
51
|
+
#@ TEAX_CONFIG_LDFLAGS
|
|
52
|
+
AC_REQUIRE([_TEAX_CHECK_MSVC])
|
|
53
|
+
if test "${USING_MSVC}" = "yes"; then
|
|
54
|
+
SHLIB_LD_OUT="/out:"
|
|
55
|
+
STLIB_LD_OUT="/out:"
|
|
56
|
+
STLIB_SUFFIX=".lib"
|
|
57
|
+
LIB_PREFIX=""
|
|
58
|
+
else
|
|
59
|
+
SHLIB_LD_OUT="-o "
|
|
60
|
+
STLIB_LD_OUT=" "
|
|
61
|
+
STLIB_SUFFIX=".a"
|
|
62
|
+
LIB_PREFIX="lib"
|
|
63
|
+
fi
|
|
64
|
+
AC_SUBST(SHLIB_LD_OUT)
|
|
65
|
+
AC_SUBST(STLIB_LD_OUT)
|
|
66
|
+
AC_SUBST(SHLIB_SUFFIX)
|
|
67
|
+
AC_SUBST(STLIB_SUFFIX)
|
|
68
|
+
AC_SUBST(LIB_PREFIX)
|
|
69
|
+
])
|
|
70
|
+
|
|
71
|
+
dnl TEAX_EXPAND_CFLAGS --
|
|
72
|
+
dnl Computes final value of CFLAGS macro.
|
|
73
|
+
dnl
|
|
74
|
+
dnl Uses the same logic as TEA_MAKE_LIB, except that
|
|
75
|
+
dnl ${CFLAGS_DEFAULT}, ${CFLAGS_WARNING}, and ${SHLIB_CFLAGS}
|
|
76
|
+
dnl are expanded at configure-time instead of at make-time.
|
|
77
|
+
dnl
|
|
78
|
+
AC_DEFUN([TEAX_EXPAND_CFLAGS],[
|
|
79
|
+
#@ TEAX_EXPAND_CFLAGS
|
|
80
|
+
AC_REQUIRE([TEA_ENABLE_SYMBOLS])
|
|
81
|
+
CFLAGS="${CFLAGS} ${CFLAGS_DEFAULT} ${CFLAGS_WARNING}"
|
|
82
|
+
if test "${SHARED_BUILD}" = "1" ; then
|
|
83
|
+
CFLAGS="${CFLAGS} ${SHLIB_CFLAGS}"
|
|
84
|
+
fi
|
|
85
|
+
])
|
|
86
|
+
|
|
87
|
+
dnl TEAX_FIX_LIB_SPECS --
|
|
88
|
+
dnl TCL_STUB_LIB_SPEC is supposed to contain the linker flags
|
|
89
|
+
dnl for picking up the Tcl stub library; however, the settings
|
|
90
|
+
dnl in tclConfig.sh only work on Unix and with GCC on Windows.
|
|
91
|
+
dnl TEAX_FIX_LIB_SPECS adjusts TCL_STUB_LIB_SPEC et. al. so
|
|
92
|
+
dnl they work with MSVC as well.
|
|
93
|
+
dnl
|
|
94
|
+
dnl (TEA_MAKE_LIB works around this in a different way.)
|
|
95
|
+
dnl
|
|
96
|
+
AC_DEFUN([TEAX_FIX_LIB_SPECS],[
|
|
97
|
+
#@TEAX_FIX_LIB_SPECS
|
|
98
|
+
AC_REQUIRE([_TEAX_CHECK_MSVC])
|
|
99
|
+
if test "${USING_MSVC}" = "yes"; then
|
|
100
|
+
TCL_STUB_LIB_SPEC="$TCL_STUB_LIB_PATH"
|
|
101
|
+
TK_STUB_LIB_SPEC="$TK_STUB_LIB_PATH"
|
|
102
|
+
# tclConfig.sh doesn't define TCL_LIB_SPEC, but if it did,
|
|
103
|
+
# it would be as follows:
|
|
104
|
+
eval TCL_LIB_SPEC="${TCL_EXEC_PREFIX}/lib/$TCL_LIB_FILE"
|
|
105
|
+
# Same for TK_LIB_SPEC:
|
|
106
|
+
eval TK_LIB_SPEC="${TK_EXEC_PREFIX}/lib/$TK_LIB_FILE"
|
|
107
|
+
fi
|
|
108
|
+
])
|
|
109
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#
|
|
2
|
+
# source all tests.
|
|
3
|
+
#
|
|
4
|
+
package require tcltest 2
|
|
5
|
+
|
|
6
|
+
namespace eval tile {
|
|
7
|
+
set dir [file dirname [info script]]
|
|
8
|
+
set ::tcltest::testsDirectory $dir
|
|
9
|
+
set library [set ::env(TILE_LIBRARY) [file join $dir .. library]]
|
|
10
|
+
}
|
|
11
|
+
lappend auto_path [pwd] $::tile::library
|
|
12
|
+
|
|
13
|
+
eval tcltest::configure $::argv
|
|
14
|
+
tcltest::runAllTests
|
|
15
|
+
|
|
16
|
+
if {![catch { package present Tk }]} {
|
|
17
|
+
destroy .
|
|
18
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Test BWidget / Tile compatibility.
|
|
3
|
+
#
|
|
4
|
+
# NOTE: This part of the test suite is no longer operative:
|
|
5
|
+
# [namespace import -force ttk::*] is not expected or intended to work.
|
|
6
|
+
#
|
|
7
|
+
# Keeping the file around for now since it contains some historical
|
|
8
|
+
# information about how tile *tried* to make it work, and what
|
|
9
|
+
# sort of things went wrong.
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
package require tcltest
|
|
13
|
+
tcltest::cleanupTests ; return
|
|
14
|
+
|
|
15
|
+
loadTestedCommands
|
|
16
|
+
|
|
17
|
+
lappend auto_path .
|
|
18
|
+
package require tile
|
|
19
|
+
|
|
20
|
+
set have_compat 0
|
|
21
|
+
if {![catch {ttk::pkgconfig get compat} compat]} {set have_compat $compat}
|
|
22
|
+
testConstraint bwidget [expr {$have_compat && ![catch {package require BWidget}]}]
|
|
23
|
+
|
|
24
|
+
test bwidget-1.0 "Setup for BWidget test" -constraints bwidget -body {
|
|
25
|
+
namespace import -force ttk::*
|
|
26
|
+
puts "Loaded BWidget version [package provide BWidget]"
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
test bwidget-1.1 "Make Label widget" -constraints bwidget -body {
|
|
30
|
+
pack [Label .w]
|
|
31
|
+
} -cleanup {destroy .w}
|
|
32
|
+
|
|
33
|
+
test bwidget-1.2 "Make ScrolledWindow widget" -constraints bwidget -body {
|
|
34
|
+
pack [ScrolledWindow .w -auto both -scrollbar vertical]
|
|
35
|
+
} -cleanup {destroy .w}
|
|
36
|
+
|
|
37
|
+
test bwidget-1.3 "Make PagesManager widget" -constraints bwidget -body {
|
|
38
|
+
pack [PagesManager .w]
|
|
39
|
+
} -cleanup {destroy .w}
|
|
40
|
+
|
|
41
|
+
#
|
|
42
|
+
# ProgressBar: this one fails with 'unknown color name "xxx"',
|
|
43
|
+
# where "xxx" is the default value of some other option
|
|
44
|
+
# (variously, "4m", "100", something else).
|
|
45
|
+
#
|
|
46
|
+
# Update: fixed now. Source of problem: widgets were using "unused"
|
|
47
|
+
# as the resource database name for compatibility options;
|
|
48
|
+
# BWidgets keys off the db name instead of the option name.
|
|
49
|
+
#
|
|
50
|
+
test bwidget-1.4 "Make ProgressBar widget" -constraints bwidget -body {
|
|
51
|
+
pack [ProgressBar .w]
|
|
52
|
+
} -cleanup {destroy .w}
|
|
53
|
+
|
|
54
|
+
# @@@ TODO: full BWidget coverage,
|
|
55
|
+
# @@@ not just the ones people have reported problems with.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
#
|
|
59
|
+
# <<NOTE-NULLOPTIONS>>:
|
|
60
|
+
#
|
|
61
|
+
# TK_OPTION_NULL_OK doesn't work for TK_OPTION_INT (among others);
|
|
62
|
+
# see Bug #967209.
|
|
63
|
+
#
|
|
64
|
+
# This means that [.l configure -width [.l cget -width]] -- which is
|
|
65
|
+
# essentially what BWidgets does -- will raise an error if -width has
|
|
66
|
+
# a NULL default.
|
|
67
|
+
#
|
|
68
|
+
# Temporary workaround: declare -width, etc. as TK_OPTION_STRING instead.
|
|
69
|
+
# This disables typechecking in the 'configure' method, but it seems
|
|
70
|
+
# to be the best way to avoid the BWidget incompatibility for now.
|
|
71
|
+
#
|
|
72
|
+
test nulloptions-1.1 "Test null options" -body {
|
|
73
|
+
ttk::label .tl
|
|
74
|
+
.tl configure -width [.tl cget -width]
|
|
75
|
+
} -cleanup { destroy .tl }
|
|
76
|
+
|
|
77
|
+
#
|
|
78
|
+
# <<NOTE-NULLOPTIONS-2>> This also means we have to (partially) disable
|
|
79
|
+
# the widget option / element option consistency checks.
|
|
80
|
+
#
|
|
81
|
+
test nulloptions-1.2 "Ensure workaround doesn't break -width" -body {
|
|
82
|
+
ttk::label .tl -text "x" -width 0
|
|
83
|
+
set w1 [winfo reqwidth .tl]
|
|
84
|
+
.tl configure -width 10
|
|
85
|
+
set w2 [winfo reqwidth .tl]
|
|
86
|
+
expr {$w2 > $w1}
|
|
87
|
+
} -result 1 -cleanup { destroy .tl }
|
|
88
|
+
|
|
89
|
+
test nulloptions-1.3 "Exhaustive test" -body {
|
|
90
|
+
set readonlyOpts [list -class]
|
|
91
|
+
foreach widget $::ttk::widgets {
|
|
92
|
+
#puts "$widget"
|
|
93
|
+
ttk::$widget .w
|
|
94
|
+
foreach configspec [.w configure] {
|
|
95
|
+
set option [lindex $configspec 0]
|
|
96
|
+
if {[lsearch -exact $readonlyOpts $option] >= 0} { continue }
|
|
97
|
+
.w configure $option [.w cget $option]
|
|
98
|
+
}
|
|
99
|
+
destroy .w
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
tcltest::cleanupTests
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
##
|
|
2
|
+
# combobox test program:
|
|
3
|
+
#
|
|
4
|
+
# side-by-side-by-side comparison of Tile, BWidget, and Brian Oakley's combobox
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# Autocomplete: maybe need custom match procedure? (string match -nocase)
|
|
9
|
+
#
|
|
10
|
+
# Things to check:
|
|
11
|
+
# Focus indicator
|
|
12
|
+
# Blinking insert cursor (none on readonly combobox)
|
|
13
|
+
# Listbox scrollbar arrow lines up with popdown arrow
|
|
14
|
+
# Mouse cursor (I-beam vs. normal) over various elements.
|
|
15
|
+
# Normal mouse cursor in readonly combobox
|
|
16
|
+
# Location of popdown menu when close to screen edge
|
|
17
|
+
# Focus returns to combobox on Unpost (Cancel and Select)
|
|
18
|
+
# ButtonRelease outside of popdown - Cancel? Select? Leave posted?
|
|
19
|
+
# Keyboard traversal (incl. Shift+Tab).
|
|
20
|
+
# -state disabled:
|
|
21
|
+
# + grayed out
|
|
22
|
+
# + do not take focus on click
|
|
23
|
+
# + do not post listbox
|
|
24
|
+
# Click in editable combobox -- should set icursor, don't select
|
|
25
|
+
# Keyboard traversal into combobox -- should select
|
|
26
|
+
# Traversal out of combobox (both <Tab> and <Shift-Tab>)
|
|
27
|
+
# Change value (using other combobox) -- repost listbox --
|
|
28
|
+
# make sure proper entry is highlighted.
|
|
29
|
+
#
|
|
30
|
+
|
|
31
|
+
lappend auto_path . ; package require tile
|
|
32
|
+
package require BWidget
|
|
33
|
+
package require combobox
|
|
34
|
+
|
|
35
|
+
source [file join [file dirname [info script]] testutils.tcl]
|
|
36
|
+
|
|
37
|
+
set values \
|
|
38
|
+
[list abc def ghi jkl mno pqrs tuv wxyz yabba dabba scooby doobie doo]
|
|
39
|
+
|
|
40
|
+
set t [ttk::frame .t]
|
|
41
|
+
|
|
42
|
+
grid [ttk::label $t.l1 -text "Tile"] \
|
|
43
|
+
[ttk::label $t.l2 -text "BWidget"] \
|
|
44
|
+
[ttk::label $t.l3 -text "Oakley"] \
|
|
45
|
+
-row 1 -sticky news;
|
|
46
|
+
|
|
47
|
+
ttk::combobox $t.rcb1 -width 30 -textvariable V -values $values -state readonly
|
|
48
|
+
ComboBox $t.rcb2 -width 30 -textvariable V -values $values -editable false
|
|
49
|
+
combobox::combobox $t.rcb3 -textvariable V -width 30 -listvar values -editable false
|
|
50
|
+
|
|
51
|
+
ttk::combobox $t.ecb1 -width 30 -textvariable V -values $values
|
|
52
|
+
ComboBox $t.ecb2 -width 30 -textvariable V -values $values -editable true ;#-autocomplete true
|
|
53
|
+
combobox::combobox $t.ecb3 -textvariable V -width 30 -listvar values -editable true
|
|
54
|
+
|
|
55
|
+
grid $t.rcb1 $t.rcb2 $t.rcb3 -sticky news -pady 4 -padx 4 -row 2
|
|
56
|
+
grid $t.ecb1 $t.ecb2 $t.ecb3 -sticky news -pady 4 -padx 4 -row 3
|
|
57
|
+
grid columnconfigure $t 0 -uniform c -weight 1
|
|
58
|
+
grid columnconfigure $t 1 -uniform c -weight 1
|
|
59
|
+
|
|
60
|
+
# Active element monitor:
|
|
61
|
+
#
|
|
62
|
+
bind $t.rcb1 <Motion> { set ::element [%W identify %x %y] }
|
|
63
|
+
bind $t.ecb1 <Motion> { set ::element [%W identify %x %y] }
|
|
64
|
+
|
|
65
|
+
# Focus monitor:
|
|
66
|
+
#
|
|
67
|
+
proc focusMonitor {} { set ::focusWidget [focus] ; after 200 focusMonitor }
|
|
68
|
+
focusMonitor
|
|
69
|
+
|
|
70
|
+
# Grab monitor:
|
|
71
|
+
#
|
|
72
|
+
proc grabMonitor {} {
|
|
73
|
+
global grabWidget
|
|
74
|
+
set grabWidget [grab current]
|
|
75
|
+
if {$grabWidget ne ""} {
|
|
76
|
+
lappend grabWidget [grab status $grabWidget]
|
|
77
|
+
}
|
|
78
|
+
after 200 grabMonitor
|
|
79
|
+
}
|
|
80
|
+
grabMonitor
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
set mon [ttk::frame $t.mon]
|
|
84
|
+
ttk::label $mon.el -text "Element:" -anchor e
|
|
85
|
+
ttk::label $mon.e -textvariable ::element -anchor w
|
|
86
|
+
ttk::label $mon.fl -text "Focus:" -anchor e
|
|
87
|
+
ttk::label $mon.f -textvariable ::focusWidget -anchor w
|
|
88
|
+
ttk::label $mon.gl -text "Grab:" -anchor e
|
|
89
|
+
ttk::label $mon.g -textvariable ::grabWidget -anchor w
|
|
90
|
+
grid $mon.el $mon.e -row 0 -sticky news
|
|
91
|
+
grid $mon.fl $mon.f -row 1 -sticky news
|
|
92
|
+
grid $mon.gl $mon.g -row 2 -sticky news
|
|
93
|
+
|
|
94
|
+
grid columnconfigure $mon 1 -weight 1
|
|
95
|
+
|
|
96
|
+
grid $t.mon -row 0 -columnspan 2 -sticky nwe
|
|
97
|
+
|
|
98
|
+
grid rowconfigure $t 4 -weight 1
|
|
99
|
+
grid [ttk::frame $t.cmd] -row 5 -sticky nwes -columnspan 3
|
|
100
|
+
pack [ttk::button $t.cmd.close -text "Close" -command [list destroy .]] \
|
|
101
|
+
-side right -padx 4 -pady 4
|
|
102
|
+
|
|
103
|
+
###
|
|
104
|
+
|
|
105
|
+
pack $t -expand true -fill both
|
|
106
|
+
focus $t.ecb1
|
|
107
|
+
|
|
108
|
+
if {[tk windowingsystem] eq "aqua"} { set Meta Command } { set Meta Alt }
|
|
109
|
+
|
|
110
|
+
bind all <$Meta-Key-d> { %W configure -state disabled } ;# "&disable"
|
|
111
|
+
bind all <$Meta-Key-e> { %W configure -state normal } ;# "&enable"
|
|
112
|
+
bind all <$Meta-Key-w> { %W configure -state readonly } ;# "&write-protect"
|
|
113
|
+
|
|
114
|
+
bind all <$Meta-Key-q> { destroy . }
|
|
115
|
+
bind all <$Meta-Key-b> { error "BGerror - testing" }
|
|
116
|
+
|
|
117
|
+
bind all <Control-ButtonPress-1> { focus -force %W }
|
|
118
|
+
|
|
119
|
+
bind all <FocusIn> { puts "+F: %W" }
|
|
120
|
+
bind all <FocusOut> { puts "-f: %W" }
|
|
121
|
+
bind all <ButtonPress> { puts "+B: %W" }
|
|
122
|
+
bind all <ButtonRelease> { puts "-b: %W" }
|
|
123
|
+
bind all <KeyPress-m> { puts "---- mark ----" }
|
|
124
|
+
|
|
125
|
+
# In case of a stuck grab: <Control-Button-1> to set focus; <Alt-q> to quit
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Tile package: combobox widget tests
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
package require Tk
|
|
6
|
+
package require tcltest ; namespace import -force tcltest::*
|
|
7
|
+
loadTestedCommands
|
|
8
|
+
|
|
9
|
+
lappend auto_path .
|
|
10
|
+
package require tile
|
|
11
|
+
|
|
12
|
+
test combobox-1.0 "Combobox tests -- setup" -body {
|
|
13
|
+
ttk::combobox .cb
|
|
14
|
+
} -result .cb
|
|
15
|
+
|
|
16
|
+
test combobox-1.1 "Bad -values list" -body {
|
|
17
|
+
.cb configure -values "bad \{list"
|
|
18
|
+
} -result "unmatched open brace in list" -returnCodes 1
|
|
19
|
+
|
|
20
|
+
test combobox-1.end "Combobox tests -- cleanup" -body {
|
|
21
|
+
destroy .cb
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
test combobox-2.0 "current command" -body {
|
|
25
|
+
ttk::combobox .cb -values [list a b c d e a]
|
|
26
|
+
.cb current
|
|
27
|
+
} -result -1
|
|
28
|
+
|
|
29
|
+
test combobox-2.1 "current -- set index" -body {
|
|
30
|
+
.cb current 5
|
|
31
|
+
.cb get
|
|
32
|
+
} -result a
|
|
33
|
+
|
|
34
|
+
test combobox-2.2 "current -- change -values" -body {
|
|
35
|
+
.cb configure -values [list c b a d e]
|
|
36
|
+
.cb current
|
|
37
|
+
} -result 2
|
|
38
|
+
|
|
39
|
+
test combobox-2.3 "current -- change value" -body {
|
|
40
|
+
.cb set "b"
|
|
41
|
+
.cb current
|
|
42
|
+
} -result 1
|
|
43
|
+
|
|
44
|
+
test combobox-2.4 "current -- value not in list" -body {
|
|
45
|
+
.cb set "z"
|
|
46
|
+
.cb current
|
|
47
|
+
} -result -1
|
|
48
|
+
|
|
49
|
+
test combobox-end "Cleanup" -body { destroy .cb }
|
|
50
|
+
|
|
51
|
+
tcltest::cleanupTests
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Interactive test for -compound option.
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
lappend auto_path .
|
|
6
|
+
package require tile
|
|
7
|
+
|
|
8
|
+
source [file join [file dirname [info script]] testutils.tcl]
|
|
9
|
+
|
|
10
|
+
# Load icons...
|
|
11
|
+
source [file join [file dirname [info script]] ../demos/iconlib.tcl]
|
|
12
|
+
set icons {new open error}
|
|
13
|
+
foreach icon $icons {
|
|
14
|
+
set Icon($icon) [image create photo -data $ImgData($icon)]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
ttk::label .tb -image $Icon(new) -text text -compound left -padding 0
|
|
18
|
+
label .b -image $Icon(new) -text text -compound left -padx 0 -pady 0
|
|
19
|
+
|
|
20
|
+
variable compoundStrings {text image center top bottom left right none}
|
|
21
|
+
|
|
22
|
+
set c [ttk::labelframe .cctl -text "Compound"]
|
|
23
|
+
foreach string $compoundStrings {
|
|
24
|
+
pack [ttk::radiobutton $c.$string -text [string totitle $string] \
|
|
25
|
+
-variable compound -value $string -command setCompound] \
|
|
26
|
+
-side top -expand false -fill x ;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
set c [ttk::labelframe .ictl -text "Icon"]
|
|
30
|
+
set ::Icon(none) ""
|
|
31
|
+
pack [ttk::radiobutton $c.inone -text "None" \
|
|
32
|
+
-variable icon -value $string -command setIcon] \
|
|
33
|
+
-side top -expand false -fill x;
|
|
34
|
+
foreach string $icons {
|
|
35
|
+
pack [ttk::radiobutton $c.i$string -text $string \
|
|
36
|
+
-variable icon -value $string -command setIcon] \
|
|
37
|
+
-side top -expand false -fill x;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
variable anchorStrings {n ne e se s sw w nw center}
|
|
41
|
+
set c [ttk::labelframe .actl -text "Anchor"]
|
|
42
|
+
foreach string $anchorStrings {
|
|
43
|
+
pack [ttk::radiobutton $c.$string -text $string \
|
|
44
|
+
-variable anchor -value $string -command setAnchor] \
|
|
45
|
+
-side top -expand false -fill x ;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
variable reliefStrings {flat groove raised ridge solid sunken}
|
|
49
|
+
set c [ttk::labelframe .rctl -text "Relief"]
|
|
50
|
+
foreach string $reliefStrings {
|
|
51
|
+
pack [ttk::radiobutton $c.$string -text $string \
|
|
52
|
+
-variable relief -value $string -command setRelief] \
|
|
53
|
+
-side top -expand false -fill x ;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
set width 0
|
|
57
|
+
spinbox .wctl -textvariable width -command setWidth \
|
|
58
|
+
-from -15 -to 15 -increment 1
|
|
59
|
+
|
|
60
|
+
pack .cctl -side left -expand false -fill none -anchor n
|
|
61
|
+
pack .ictl -side left -expand false -fill none -anchor n
|
|
62
|
+
pack .actl -side left -expand false -fill none -anchor n
|
|
63
|
+
pack .rctl -side left -expand false -fill none -anchor n
|
|
64
|
+
pack .wctl -side left -expand false -fill none -anchor n
|
|
65
|
+
pack .tb .b -side top -expand true -fill both
|
|
66
|
+
|
|
67
|
+
proc setCompound {} {
|
|
68
|
+
.tb configure -compound $::compound
|
|
69
|
+
catch { .b configure -compound $::compound }
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
proc setAnchor {} {
|
|
73
|
+
.tb configure -anchor $::anchor
|
|
74
|
+
.b configure -anchor $::anchor
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
proc setRelief {} {
|
|
78
|
+
.tb configure -relief $::relief
|
|
79
|
+
.b configure -relief $::relief
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
proc setIcon {} {
|
|
83
|
+
global Icon icon
|
|
84
|
+
.tb configure -image $Icon($icon)
|
|
85
|
+
.b configure -image $Icon($icon)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
proc setWidth {} {
|
|
89
|
+
.tb configure -width $::width
|
|
90
|
+
.b configure -width $::width
|
|
91
|
+
}
|
|
92
|
+
|