summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Roxborough <irox@redhat.com>2001-09-09 19:49:03 +0000
committerIan Roxborough <irox@redhat.com>2001-09-09 19:49:03 +0000
commit57e8350a3895a1579b77cc134d6d7d49b056678e (patch)
tree7584c16f5407dd1371b8290109b3b822067afd5a
parent7467241ff2a5cd6da7bbecb7111fc0dc3211c7de (diff)
downloadgdb-57e8350a3895a1579b77cc134d6d7d49b056678e.tar.gz
Itcl import for Tcl/Tk8.3 upgradeITCL_TCL_8_3
-rw-r--r--itcl/ChangeLog671
-rw-r--r--itcl/Makefile.in92
-rwxr-xr-xitcl/config/install-sh2
-rwxr-xr-xitcl/configure135
-rw-r--r--itcl/configure.in47
-rw-r--r--itcl/cygtcl.m4310
-rw-r--r--itcl/itcl/Makefile.in493
-rw-r--r--itcl/itcl/aclocal.m42
-rwxr-xr-xitcl/itcl/configure2637
-rw-r--r--itcl/itcl/configure.in409
-rw-r--r--itcl/itcl/doc/find.n40
-rw-r--r--itcl/itcl/doc/itcl_info.n2
-rw-r--r--itcl/itcl/doc/scope.n2
-rw-r--r--itcl/itcl/generic/itcl.decls111
-rw-r--r--itcl/itcl/generic/itcl.h100
-rw-r--r--itcl/itcl/generic/itclDecls.h263
-rw-r--r--itcl/itcl/generic/itclInt.decls500
-rw-r--r--itcl/itcl/generic/itclInt.h299
-rw-r--r--itcl/itcl/generic/itclIntDecls.h1048
-rw-r--r--itcl/itcl/generic/itclStubInit.c185
-rw-r--r--itcl/itcl/generic/itclStubLib.c83
-rw-r--r--itcl/itcl/generic/itcl_bicmds.c4
-rw-r--r--itcl/itcl/generic/itcl_class.c54
-rw-r--r--itcl/itcl/generic/itcl_cmds.c153
-rw-r--r--itcl/itcl/generic/itcl_ensemble.c17
-rw-r--r--itcl/itcl/generic/itcl_methods.c35
-rw-r--r--itcl/itcl/generic/itcl_objects.c16
-rw-r--r--itcl/itcl/generic/itcl_obsolete.c6
-rw-r--r--itcl/itcl/generic/itcl_parse.c14
-rw-r--r--itcl/itcl/generic/itcl_util.c4
-rw-r--r--itcl/itcl/itclConfig.sh.in20
-rw-r--r--itcl/itcl/library/itcl.tcl2
-rw-r--r--itcl/itcl/mac/MW_ItclHeader.pch74
-rw-r--r--itcl/itcl/mac/itclMacLibrary.r2
-rw-r--r--itcl/itcl/mac/pkgIndex.tcl2
-rw-r--r--itcl/itcl/pkgIndex.tcl3
-rw-r--r--itcl/itcl/pkgIndex.tcl.in3
-rw-r--r--itcl/itcl/tests/all5
-rw-r--r--itcl/itcl/tests/all.tcl122
-rw-r--r--itcl/itcl/tests/basic.test35
-rw-r--r--itcl/itcl/tests/body.test76
-rw-r--r--itcl/itcl/tests/chain.test10
-rw-r--r--itcl/itcl/tests/defs8
-rw-r--r--itcl/itcl/tests/delete.test56
-rw-r--r--itcl/itcl/tests/ensemble.test38
-rw-r--r--itcl/itcl/tests/import.test158
-rw-r--r--itcl/itcl/tests/info.test18
-rw-r--r--itcl/itcl/tests/inherit.test86
-rw-r--r--itcl/itcl/tests/interp.test8
-rw-r--r--itcl/itcl/tests/local.test18
-rw-r--r--itcl/itcl/tests/methods.test30
-rw-r--r--itcl/itcl/tests/mkindex.itcl5
-rw-r--r--itcl/itcl/tests/mkindex.test8
-rw-r--r--itcl/itcl/tests/namespace.test29
-rw-r--r--itcl/itcl/tests/protection.test12
-rw-r--r--itcl/itcl/tests/scope.test20
-rw-r--r--itcl/itcl/win/Makefile.in36
-rw-r--r--itcl/itcl/win/dllEntryPoint.c3
-rw-r--r--itcl/itcl/win/itcl.rc11
-rw-r--r--itcl/itcl/win/itclsh.rc74
-rw-r--r--itcl/itcl/win/makefile.vc358
-rw-r--r--itcl/itcl/win/pkgIndex.tcl2
-rw-r--r--itcl/itk/Makefile.in467
-rw-r--r--itcl/itk/aclocal.m43
-rwxr-xr-xitcl/itk/configure2921
-rw-r--r--itcl/itk/configure.in438
-rw-r--r--itcl/itk/generic/itk.decls111
-rw-r--r--itcl/itk/generic/itk.h55
-rw-r--r--itcl/itk/generic/itkDecls.h202
-rw-r--r--itcl/itk/generic/itkStubInit.c51
-rw-r--r--itcl/itk/generic/itkStubLib.c73
-rw-r--r--itcl/itk/generic/itk_archetype.c71
-rw-r--r--itcl/itk/generic/itk_cmds.c76
-rw-r--r--itcl/itk/itkConfig.sh.in20
-rw-r--r--itcl/itk/library/itk.tcl20
-rw-r--r--itcl/itk/mac/itkMacLibrary.r2
-rw-r--r--itcl/itk/mac/pkgIndex.tcl2
-rw-r--r--itcl/itk/pkgIndex.tcl3
-rw-r--r--itcl/itk/pkgIndex.tcl.in3
-rw-r--r--itcl/itk/tests/all5
-rw-r--r--itcl/itk/tests/all.tcl122
-rw-r--r--itcl/itk/tests/defs7
-rw-r--r--itcl/itk/tests/interp.test8
-rw-r--r--itcl/itk/tests/option.test14
-rw-r--r--itcl/itk/tests/privacy.test8
-rw-r--r--itcl/itk/tests/public.test8
-rw-r--r--itcl/itk/tests/toplevel.test8
-rw-r--r--itcl/itk/tests/widget.test37
-rw-r--r--itcl/itk/win/Makefile.in19
-rw-r--r--itcl/itk/win/dllEntryPoint.c17
-rw-r--r--itcl/itk/win/makefile.bc1
-rw-r--r--itcl/itk/win/makefile.vc90
-rw-r--r--itcl/itk/win/pkgIndex.tcl2
-rw-r--r--itcl/itk/win/rc/itk.rc252
-rw-r--r--itcl/itk/win/rc/itkwish.rc86
-rw-r--r--itcl/itk/win/winMain.c13
-rw-r--r--itcl/iwidgets3.0.0/CHANGES8
-rw-r--r--itcl/iwidgets3.0.0/Makefile.in242
-rw-r--r--itcl/iwidgets3.0.0/README1
-rw-r--r--itcl/iwidgets3.0.0/aclocal.m42
-rwxr-xr-xitcl/iwidgets3.0.0/configure1281
-rw-r--r--itcl/iwidgets3.0.0/configure.in131
-rw-r--r--itcl/iwidgets3.0.0/demos/canvasprintbox24
-rw-r--r--itcl/iwidgets3.0.0/demos/catalog409
-rw-r--r--itcl/iwidgets3.0.0/demos/feedback13
-rw-r--r--itcl/iwidgets3.0.0/demos/html/buttonbox.n.html462
-rw-r--r--itcl/iwidgets3.0.0/demos/html/calendar.n.html352
-rw-r--r--itcl/iwidgets3.0.0/demos/html/canvasprintbox.n.html607
-rw-r--r--itcl/iwidgets3.0.0/demos/html/canvasprintdialog.n.html455
-rw-r--r--itcl/iwidgets3.0.0/demos/html/checkbox.n.html209
-rw-r--r--itcl/iwidgets3.0.0/demos/html/combobox.n.html895
-rw-r--r--itcl/iwidgets3.0.0/demos/html/dateentry.n.html237
-rw-r--r--itcl/iwidgets3.0.0/demos/html/datefield.n.html225
-rw-r--r--itcl/iwidgets3.0.0/demos/html/dialog.n.html394
-rw-r--r--itcl/iwidgets3.0.0/demos/html/dialogshell.n.html523
-rw-r--r--itcl/iwidgets3.0.0/demos/html/disjointlistbox.n.html333
-rw-r--r--itcl/iwidgets3.0.0/demos/html/entryfield.n.html645
-rw-r--r--itcl/iwidgets3.0.0/demos/html/extfileselectionbox.n.html467
-rw-r--r--itcl/iwidgets3.0.0/demos/html/extfileselectiondialog.n.html375
-rw-r--r--itcl/iwidgets3.0.0/demos/html/feedback.n.html363
-rw-r--r--itcl/iwidgets3.0.0/demos/html/fileselectionbox.n.html966
-rw-r--r--itcl/iwidgets3.0.0/demos/html/fileselectiondialog.n.html594
-rw-r--r--itcl/iwidgets3.0.0/demos/html/finddialog.n.html392
-rw-r--r--itcl/iwidgets3.0.0/demos/html/hierarchy.n.html673
-rw-r--r--itcl/iwidgets3.0.0/demos/html/hyperhelp.n.html458
-rwxr-xr-xitcl/iwidgets3.0.0/demos/html/iwidgets3.0.0UserCmds.html129
-rw-r--r--itcl/iwidgets3.0.0/demos/html/labeledframe.n.html210
-rw-r--r--itcl/iwidgets3.0.0/demos/html/labeledwidget.n.html474
-rw-r--r--itcl/iwidgets3.0.0/demos/html/mainwindow.n.html373
-rw-r--r--itcl/iwidgets3.0.0/demos/html/menubar.n.html1247
-rw-r--r--itcl/iwidgets3.0.0/demos/html/messagebox.n.html358
-rw-r--r--itcl/iwidgets3.0.0/demos/html/messagedialog.n.html532
-rw-r--r--itcl/iwidgets3.0.0/demos/html/notebook.n.html911
-rw-r--r--itcl/iwidgets3.0.0/demos/html/optionmenu.n.html619
-rw-r--r--itcl/iwidgets3.0.0/demos/html/panedwindow.n.html695
-rw-r--r--itcl/iwidgets3.0.0/demos/html/promptdialog.n.html514
-rw-r--r--itcl/iwidgets3.0.0/demos/html/pushbutton.n.html372
-rw-r--r--itcl/iwidgets3.0.0/demos/html/radiobox.n.html458
-rw-r--r--itcl/iwidgets3.0.0/demos/html/scopedobject.n.html96
-rw-r--r--itcl/iwidgets3.0.0/demos/html/scrolledcanvas.n.html649
-rw-r--r--itcl/iwidgets3.0.0/demos/html/scrolledframe.n.html567
-rw-r--r--itcl/iwidgets3.0.0/demos/html/scrolledhtml.n.html820
-rw-r--r--itcl/iwidgets3.0.0/demos/html/scrolledlistbox.n.html857
-rw-r--r--itcl/iwidgets3.0.0/demos/html/scrolledtext.n.html671
-rw-r--r--itcl/iwidgets3.0.0/demos/html/selectionbox.n.html694
-rw-r--r--itcl/iwidgets3.0.0/demos/html/selectiondialog.n.html567
-rw-r--r--itcl/iwidgets3.0.0/demos/html/shell.n.html415
-rw-r--r--itcl/iwidgets3.0.0/demos/html/spindate.n.html915
-rw-r--r--itcl/iwidgets3.0.0/demos/html/spinint.n.html472
-rw-r--r--itcl/iwidgets3.0.0/demos/html/spinner.n.html566
-rw-r--r--itcl/iwidgets3.0.0/demos/html/spintime.n.html903
-rw-r--r--itcl/iwidgets3.0.0/demos/html/tabnotebook.n.html1630
-rw-r--r--itcl/iwidgets3.0.0/demos/html/tabset.n.html1240
-rw-r--r--itcl/iwidgets3.0.0/demos/html/timeentry.n.html256
-rw-r--r--itcl/iwidgets3.0.0/demos/html/timefield.n.html207
-rw-r--r--itcl/iwidgets3.0.0/demos/html/toolbar.n.html697
-rw-r--r--itcl/iwidgets3.0.0/demos/html/watch.n.html324
-rw-r--r--itcl/iwidgets3.0.0/demos/mainwindow32
-rw-r--r--itcl/iwidgets3.0.0/demos/scopedobject18
-rw-r--r--itcl/iwidgets3.0.0/demos/shell21
-rw-r--r--itcl/iwidgets3.0.0/demos/watch3
-rwxr-xr-xitcl/iwidgets3.0.0/doc/checkbox.n10
-rw-r--r--itcl/iwidgets3.0.0/doc/entryfield.n10
-rw-r--r--itcl/iwidgets3.0.0/doc/generateHtml.sh10
-rw-r--r--itcl/iwidgets3.0.0/doc/hierarchy.n71
-rw-r--r--itcl/iwidgets3.0.0/doc/radiobox.n12
-rw-r--r--itcl/iwidgets3.0.0/doc/scrolledlistbox.n8
-rw-r--r--itcl/iwidgets3.0.0/doc/scrolledtext.n7
-rw-r--r--itcl/iwidgets3.0.0/doc/toolbar.n2
-rw-r--r--itcl/iwidgets3.0.0/generic/calendar.itk6
-rw-r--r--itcl/iwidgets3.0.0/generic/canvasprintbox.itk1
-rwxr-xr-xitcl/iwidgets3.0.0/generic/checkbox.itk50
-rw-r--r--itcl/iwidgets3.0.0/generic/combobox.itk25
-rw-r--r--itcl/iwidgets3.0.0/generic/dateentry.itk1
-rwxr-xr-xitcl/iwidgets3.0.0/generic/disjointlistbox.itk3
-rw-r--r--itcl/iwidgets3.0.0/generic/entryfield.itk64
-rw-r--r--itcl/iwidgets3.0.0/generic/extfileselectionbox.itk15
-rw-r--r--itcl/iwidgets3.0.0/generic/feedback.itk19
-rw-r--r--itcl/iwidgets3.0.0/generic/fileselectionbox.itk3
-rwxr-xr-xitcl/iwidgets3.0.0/generic/finddialog.itk4
-rw-r--r--itcl/iwidgets3.0.0/generic/hierarchy.itk404
-rw-r--r--itcl/iwidgets3.0.0/generic/hyperhelp.itk5
-rw-r--r--itcl/iwidgets3.0.0/generic/labeledframe.itk12
-rw-r--r--itcl/iwidgets3.0.0/generic/menubar.itk14
-rw-r--r--itcl/iwidgets3.0.0/generic/messagedialog.itk2
-rw-r--r--itcl/iwidgets3.0.0/generic/notebook.itk2
-rw-r--r--itcl/iwidgets3.0.0/generic/optionmenu.itk24
-rw-r--r--itcl/iwidgets3.0.0/generic/pane.itk2
-rw-r--r--itcl/iwidgets3.0.0/generic/panedwindow.itk21
-rw-r--r--itcl/iwidgets3.0.0/generic/radiobox.itk46
-rw-r--r--itcl/iwidgets3.0.0/generic/scrolledhtml.itk76
-rw-r--r--itcl/iwidgets3.0.0/generic/scrolledlistbox.itk14
-rw-r--r--itcl/iwidgets3.0.0/generic/scrolledtext.itk21
-rw-r--r--itcl/iwidgets3.0.0/generic/shell.itk2
-rw-r--r--itcl/iwidgets3.0.0/generic/spindate.itk12
-rw-r--r--itcl/iwidgets3.0.0/generic/spinint.itk62
-rw-r--r--itcl/iwidgets3.0.0/generic/timeentry.itk1
-rw-r--r--itcl/iwidgets3.0.0/generic/timefield.itk91
-rw-r--r--itcl/iwidgets3.0.0/generic/toolbar.itk3
-rwxr-xr-xitcl/iwidgets3.0.0/generic/watch.itk2
-rw-r--r--itcl/iwidgets3.0.0/iwidgets.tcl35
-rw-r--r--itcl/iwidgets3.0.0/iwidgets.tcl.in35
-rw-r--r--itcl/iwidgets3.0.0/pkgIndex.tcl3
-rw-r--r--itcl/iwidgets3.0.0/pkgIndex.tcl.in3
-rw-r--r--itcl/iwidgets3.0.0/tests/all5
-rwxr-xr-xitcl/iwidgets3.0.0/tests/all.tcl122
-rw-r--r--itcl/iwidgets3.0.0/tests/buttonbox.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/calendar.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/canvasprintbox.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/canvasprintdialog.test6
-rwxr-xr-xitcl/iwidgets3.0.0/tests/checkbox.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/combobox.test10
-rw-r--r--itcl/iwidgets3.0.0/tests/dateentry.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/datefield.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/defs5
-rw-r--r--itcl/iwidgets3.0.0/tests/dialog.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/dialogshell.test6
-rwxr-xr-xitcl/iwidgets3.0.0/tests/disjointlistbox.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/entryfield.test9
-rw-r--r--itcl/iwidgets3.0.0/tests/extfileselectionbox.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/extfileselectiondialog.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/feedback.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/fileselectionbox.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/fileselectiondialog.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/finddialog.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/hierarchy.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/hyperhelp.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/labeledframe.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/labeledwidget.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/menubar.test180
-rw-r--r--itcl/iwidgets3.0.0/tests/messagebox.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/messagedialog.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/notebook.test209
-rw-r--r--itcl/iwidgets3.0.0/tests/optionmenu.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/panedwindow.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/promptdialog.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/pushbutton.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/radiobox.test8
-rwxr-xr-xitcl/iwidgets3.0.0/tests/regexpfield.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/scrolledcanvas.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/scrolledframe.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/scrolledhtml.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/scrolledlistbox.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/scrolledtext.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/selectionbox.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/selectiondialog.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/shell.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/spindate.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/spinint.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/spinner.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/spintime.test6
-rw-r--r--itcl/iwidgets3.0.0/tests/tabnotebook.test106
-rw-r--r--itcl/iwidgets3.0.0/tests/tabset.test98
-rwxr-xr-xitcl/iwidgets3.0.0/tests/timeentry.test8
-rwxr-xr-xitcl/iwidgets3.0.0/tests/timefield.test8
-rw-r--r--itcl/iwidgets3.0.0/tests/toolbar.test83
-rw-r--r--itcl/iwidgets3.0.0/tests/usual.test6
-rwxr-xr-xitcl/iwidgets3.0.0/tests/watch.test6
-rw-r--r--itcl/iwidgets3.0.0/unix/Makefile.in20
-rwxr-xr-xitcl/iwidgets3.0.0/unix/configure35
-rw-r--r--itcl/iwidgets3.0.0/unix/configure.in8
-rw-r--r--itcl/iwidgets3.0.0/win/iwidgets.tcl35
-rw-r--r--itcl/iwidgets3.0.0/win/makefile.vc36
-rw-r--r--itcl/iwidgets3.0.0/win/pkgIndex.tcl3
-rw-r--r--itcl/license.terms2
-rw-r--r--itcl/makefile.vc126
-rw-r--r--itcl/tcl.m4626
267 files changed, 35800 insertions, 12944 deletions
diff --git a/itcl/ChangeLog b/itcl/ChangeLog
index 3388565e1a6..63348b3c65e 100644
--- a/itcl/ChangeLog
+++ b/itcl/ChangeLog
@@ -1,3 +1,674 @@
+2001-08-08 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4: Update from Tcl.
+ * itcl/configure: Regen.
+ * itk/configure: Regen.
+
+2001-08-06 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4: Update from Tcl.
+ * itcl/configure: Regen.
+ * itk/configure: Regen.
+ This update pulls in the library name changes so Itcl
+ uses the "rh" or "cyg" vendor prefix if set.
+
+2001-08-01 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4: Update from Tcl.
+ * itcl/configure: Regen.
+ * itcl/configure.in: Use TCL_TOOL_SHARED_LIB_LONGNAME
+ and TCL_TOOL_STATIC_LIB_LONGNAME to generate lib names.
+ * itk/configure: Regen.
+ * itk/configure.in: Use TCL_TOOL_SHARED_LIB_LONGNAME
+ and TCL_TOOL_STATIC_LIB_LONGNAME to generate lib names.
+
+2001-07-12 Mo DeJong <mdejong@redhat.com>
+
+ * tcl.m4 (SC_MAKE_LIB): Add support for building with gcc
+ under Windows. Add POST_MAKE_LIB and POST_MAKE_STATIC_LIB
+ substitutions to deal with ranlib issues.
+ * itcl/Makefile.in: Subst POST_MAKE_LIB and POST_MAKE_STATIC_LIB
+ into lib and stub lib targets.
+ * itcl/configure: Regen.
+ * itcl/configure.in: Set ITCL_LIB_FILE to the static import lib
+ name when building a shared lib under Windows. Set itcl_LIB_FILE
+ to the dll name when building under Windows. Use unquoted
+ TCL_BUILD_STUB_LIB_SPEC in SHLIB_LD_LIBS.
+ * itk/Makefile.in: Subst POST_MAKE_LIB and POST_MAKE_STATIC_LIB
+ into lib and stub lib targets.
+ * itk/configure: Regen.
+ * itk/configure.in: Set ITK_LIB_FILE to the static import lib
+ name when building a shared lib under Windows. Set itk_LIB_FILE
+ to the dll name when building under Windows. Use unquoted
+ TCL_BUILD_STUB_LIB_SPEC in SHLIB_LD_LIBS.
+
+2001-07-11 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4: Update from Tcl.
+ * itcl/configure: Regen.
+ * itcl/configure.in: Use AC_CHECK_PROG to set CYGPATH
+ so that cross compiling works correctly.
+ * itk/configure: Regen.
+ * itk/configure.in: Use AC_CHECK_PROG to set CYGPATH
+ so that cross compiling works correctly.
+
+2001-07-11 Mo DeJong <mdejong@redhat.com>
+
+ * Makefile.in: If an error is returned by the make
+ in a subdirectory exit from the parent make instead
+ of processing the next subdirectory.
+
+2001-06-22 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4: Update from Tcl.
+ * tcl.m4: Use $host to determine system type
+ instead of invoking uname. Add support for
+ mingw32 and windows32 host identifiers.
+ * itcl/configure: Regen.
+ * itcl/configure.in: Ditto.
+ * itk/configure: Regen.
+ * itk/configure.in: Ditto.
+
+2001-06-20 Mo DeJong <mdejong@redhat.com>
+
+ * tcl.m4 (SC_ENABLE_GCC, SC_CONFIG_CFLAGS, SC_SERIAL_PORT,
+ SC_MISSING_POSIX_HEADERS, SC_PATH_X, SC_BLOCKING_STYLE,
+ SC_HAVE_VFORK, SC_TIME_HANLDER, SC_BUGGY_STRTOD,
+ SC_TCL_LINK_LIBS, SC_LIB_SPEC, SC_PUBLIC_TCL_HEADERS,
+ SC_PUBLIC_TK_HEADERS, SC_SIMPLE_EXEEXT, SC_PROG_TCLSH,
+ SC_PROG_WISH):
+ Remove unused macros. The Itcl version of tcl.m4 has
+ already diverged from the Tcl one. Since we need to
+ maintain this Itcl version separately, it should be
+ as simple as possible.
+
+2001-06-11 Mo DeJong <mdejong@redhat.com>
+
+ * tcl.m4 (SC_ENABLE_SHARED): Configure with shared library
+ support when building under Windows.
+ * itcl/configure: Regen.
+ * itk/configure: Regen.
+
+2001-06-06 Mo DeJong <mdejong@redhat.com>
+
+ * itk/aclocal.m4: Pull in ../../config/acinclude.m4
+ so we can use the CYG_AC_PATH_ITCLCONFIG and
+ CYG_AC_LOAD_ITCLCONFIG macros.
+ * itk/configure: Regen.
+ * itk/configure.in: Call CYG_AC_PATH_ITCLCONFIG
+ and CYG_AC_LOAD_ITCLCONFIG to load the itclConfig.sh
+ config file. The existing configure script would
+ try to figure out lib file names by hand.
+
+2001-06-06 Mo DeJong <mdejong@redhat.com>
+
+ * itk/configure: Regen.
+ * itk/configure.in: Use TCL_BUILD_STUB_LIB_SPEC in place
+ of TCL_BUILD_STUB_LIB_PATH. Use TK_BUILD_STUB_LIB_SPEC
+ in place of TK_STUB_LIB_SPEC since the tk stub lib
+ would not have been installed yet.
+
+2001-06-05 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/configure: Regen.
+ * itcl/configure.in: Use TCL_BUILD_STUB_LIB_PATH instead
+ of TCL_STUB_LIB_PATH since Tcl is not install yet.
+ * itk/configure: Regen.
+ * itk/configure.in: Use TCL_BUILD_STUB_LIB_PATH instead
+ of TCL_STUB_LIB_PATH since Tcl is not install yet.
+
+2001-06-05 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4:
+ * itcl/configure:
+ * itk/configure: Update from Tcl.
+
+2001-06-01 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4:
+ * itcl/configure:
+ * itk/configure: Update from Tcl.
+
+2001-06-01 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/configure: Regen.
+ * itcl/configure.in: Define ITCL_LIB_FILE and ITCL_STUB_LIB_FILE
+ before using them.
+ * itk/configure: Regen.
+ * itk/configure.in: Define ITK_LIB_FILE and ITK_STUB_LIB_FILE
+ before using them.
+ * itk/itkConfig.sh.in: Add ITK_STUB_LIB_FILE, ITK_BUILD_STUB_LIB_SPEC,
+ ITK_STUB_LIB_SPEC, and ITK_STUB_LIB_FULL_PATH variables.
+
+2001-05-31 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/win/dllEntryPoint.c: Add #endif that was
+ accidently left out during the Itcl 3.0 -> 3.2
+ merge process.
+
+2001-05-30 Mo DeJong <mdejong@redhat.com>
+
+ * configure: Regen.
+ * tcl.m4 (SC_PATH_TCLCONFIG, SC_PATH_TKCONFIG): Check
+ in win subdirectory in addition to unix subdirectory for
+ tclConfig.sh and tkConfig.sh files.
+ * itcl/configure:
+ * itk/configure: Regen.
+ * iwidgets3.0.0/configure: Regen.
+
+2001-05-30 Mo DeJong <mdejong@redhat.com>
+
+ * configure: Regen.
+ * tcl.m4 (SC_PATH_TCLCONFIG, SC_PATH_TKCONFIG): Generate
+ an error instead of a warning when config files cannot be found.
+ * itcl/configure:
+ * itk/configure: Regen.
+ * iwidgets3.0.0/configure: Regen.
+
+2001-05-29 Mo DeJong <mdejong@redhat.com>
+
+ * cygtcl.m4: Add from tcl module.
+ * itcl/aclocal.m4: Include cygtcl.m4.
+ * itcl/configure: Regen.
+ * itcl/configure.in: Fix --prefix variable. Use TCL_TOOL macros
+ to deal with path name portibility issues.
+ * itcl/itclConfig.sh.in: Add full path and stub lib vars.
+ * itk/aclocal.m4: Include cygtcl.m4.
+ * itk/configure: Regen.
+ * itk/configure.in: Fix --prefix variable. Use TCL_TOOL macros
+ to deal with path name portibility issues.
+ * iwidgets3.0.0/aclocal.m4: Include cygtcl.m4.
+ * iwidgets3.0.0/configure: Regen.
+
+2001-05-29 Mo DeJong <mdejong@redhat.com>
+
+ * itk/configure: Regen.
+ * itk/configure.in: Adjust AC_CONFIG_AUX_DIR()
+ and fix --prefix and --exec-prefix variables.
+
+2001-05-25 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/itcl/Makefile.in:
+ * itk/Makefile.in:
+ * iwidgets3.0.0/Makefile.in: Install cross
+ platform itk and itk files in @datadir@ (share).
+
+2001-05-24 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/configure: Regen.
+ * itcl/configure.in:
+ Use fully qualified srcdir, add ITCL_SRC_DIR_NATIVE variable.
+ Don't call the SC_PROG_TCLSH macro since it does not bootstrap.
+ Add itclConfig.sh back to configure.in, it was lost at some point.
+ * itk/configure: Regen.
+ * itk/configure.in:
+ Use fully qualified srcdir, add ITK_SRC_DIR_NATIVE variable.
+ Don't call SC_PROG_TCLSH or SC_PROG_WISH macros since they
+ do not bootstrap.
+ Add itkConfig.sh back to configure.in, it was lost at some point.
+ * iwidgets3.0.0/configure: Regen.
+ * iwidgets3.0.0/configure.in:
+ Don't call the SC_PROG_TCLSH macro since it does not bootstrap.
+
+2001-05-24 Mo DeJong <mdejong@redhat.com>
+
+ * tcl.m4 (SC_LIB_SPEC): Add note about broken
+ SC_LIB_SPEC macro. It does not effect us since
+ we only build static libs.
+ * itcl/configure: Regen.
+ * itcl/configure.in: Call AC_PROG_CC and not
+ SC_ENABLE_GCC since it break cross compiling.
+ * itk/configure: Regen.
+ * itk/configure.in: Ditto.
+
+2001-05-23 Mo DeJong <mdejong@redhat.com>
+
+ * configure: Regen.
+ * tcl.m4: Default to building an unshared
+ version of the Itcl library.
+ * itcl/configure: Regen.
+ * itk/configure: Regen.
+ * iwidgets3.0.0/configure: Regen.
+
+2001-05-23 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/unix/aclocal.m4:
+ * itcl/unix/tcl.m4:
+ * itcl/win/aclocal.m4:
+ * itcl/win/tcl.m4:
+ * itk/unix/aclocal.m4:
+ * itk/unix/tcl.m4:
+ * itk/win/aclocal.m4:
+ * itk/win/tcl.m4:
+ Remove old autoconf files, they should
+ have been removed as part of the 3.0 -> 3.2
+ transition.
+
+2001-05-23 Mo DeJong <mdejong@redhat.com>
+
+ * config/installFile.tcl: Removed ill conceived
+ Tcl install script since it does not bootstrap.
+ * itcl/Makefile.in:
+ * itk/Makefile.in:
+ * iwidgets3.0.0/Makefile.in: Use @INSTALL@ instead
+ of installFile.tcl.
+ Don't remove man pages or html files before
+ installing. Don't chmod the installed files
+ since that will make a second call to make install
+ fail.
+
+2001-05-17 Mo DeJong <mdejong@redhat.com>
+
+ Upgrade Itcl from 3.0 to 3.2.
+
+ * Makefile.in:
+ * aclocal.m4: Removed:
+ * configure:
+ * configure.in:
+ * license.terms:
+ * makefile.vc:
+ * tcl.m4: Added.
+ * config/install-sh:
+ * config/installFile.tcl: Added.
+ * itcl/Makefile.in: Added.
+ * itcl/aclocal.m4: Added.
+ * itcl/configure: Added.
+ * itcl/configure.in: Added.
+ * itcl/pkgIndex.tcl: Added.
+ * itcl/pkgIndex.tcl.in: Added.
+ * itcl/doc/Resolvers.3: Removed.
+ * itcl/doc/find.n:
+ * itcl/doc/itcl_info.n:
+ * itcl/doc/itclvars.n:
+ * itcl/doc/scope.n:
+ * itcl/generic/itcl.decls: Added.
+ * itcl/generic/itcl.h:
+ * itcl/generic/itclDecls.h: Added.
+ * itcl/generic/itclInt.decls: Added.
+ * itcl/generic/itclInt.h:
+ * itcl/generic/itclIntDecls.h: Added.
+ * itcl/generic/itclStubInit.c: Added.
+ * itcl/generic/itclStubLib.c: Added.
+ * itcl/generic/itcl_bicmds.c:
+ * itcl/generic/itcl_class.c:
+ * itcl/generic/itcl_cmds.c:
+ * itcl/generic/itcl_ensemble.c:
+ * itcl/generic/itcl_linkage.c:
+ * itcl/generic/itcl_methods.c:
+ * itcl/generic/itcl_migrate.c:
+ * itcl/generic/itcl_objects.c:
+ * itcl/generic/itcl_obsolete.c:
+ * itcl/generic/itcl_parse.c:
+ * itcl/generic/itcl_util.c:
+ * itcl/library/itcl.tcl:
+ * itcl/mac/MW_ItclHeader.pch: Added
+ * itcl/mac/itclMacLibrary.r:
+ * itcl/mac/pkgIndex.tcl:
+ * itcl/tests/all:
+ * itcl/tests/all.tcl: Added.
+ * itcl/tests/basic.test:
+ * itcl/tests/body.test:
+ * itcl/tests/chain.test:
+ * itcl/tests/defs:
+ * itcl/tests/delete.test:
+ * itcl/tests/ensemble.test:
+ * itcl/tests/import.test:
+ * itcl/tests/info.test:
+ * itcl/tests/inherit.test:
+ * itcl/tests/interp.test:
+ * itcl/tests/local.test:
+ * itcl/tests/methods.test:
+ * itcl/tests/mkindex.itcl:
+ * itcl/tests/mkindex.test:
+ * itcl/tests/namespace.test:
+ * itcl/tests/protection.test:
+ * itcl/tests/scope.test:
+ * itcl/tests/old/AAA.test:
+ * itcl/tests/old/Bar.tcl:
+ * itcl/tests/old/BarFoo.tcl:
+ * itcl/tests/old/Baz.tcl:
+ * itcl/tests/old/Foo.tcl:
+ * itcl/tests/old/FooBar.tcl:
+ * itcl/tests/old/Geek.tcl:
+ * itcl/tests/old/Mongrel.tcl:
+ * itcl/tests/old/VirtualErr.tcl:
+ * itcl/tests/old/all:
+ * itcl/tests/old/basic.test:
+ * itcl/tests/old/inherit.test:
+ * itcl/tests/old/testlib.tcl:
+ * itcl/tests/old/toaster.test:
+ * itcl/tests/old/uplevel.test:
+ * itcl/tests/old/upvar.test:
+ * itcl/tests/old/toasters/Appliance.tcl:
+ * itcl/tests/old/toasters/Hazard.tcl:
+ * itcl/tests/old/toasters/Outlet.tcl:
+ * itcl/tests/old/toasters/SmartToaster.tcl:
+ * itcl/tests/old/toasters/Toaster.tcl:
+ * itcl/tests/old/toasters/usualway.tcl:
+ * itcl/unix/Makefile.in: Removed.
+ * itcl/unix/confdefs.h: Removed.
+ * itcl/unix/config.log: Removed.
+ * itcl/unix/configure: Removed.
+ * itcl/unix/configure.in: Removed.
+ * itcl/unix/pkgIndex.tcl.in: Removed.
+ * itcl/win/Makefile.in: Removed.
+ * itcl/win/configure: Removed.
+ * itcl/win/configure.in: Removed.
+ * itcl/win/dllEntryPoint.c:
+ * itcl/win/itcl.rc:
+ * itcl/win/itclsh.rc:
+ * itcl/win/makefile.vc:
+ * itcl/win/pkgIndex.tcl:
+ * itk/Makefile.in: Added.
+ * itk/aclocal.m4: Added.
+ * itk/configure: Added.
+ * itk/configure.in: Added.
+ * itk/pkgIndex.tcl: Added.
+ * itk/pkgIndex.tcl.in: Added.
+ * itk/doc/Archetype.n:
+ * itk/doc/Toplevel.n:
+ * itk/doc/Widget.n:
+ * itk/doc/itk.n:
+ * itk/doc/itkvars.n:
+ * itk/doc/itkwish.1:
+ * itk/doc/usual.n:
+ * itk/generic/itk.decls: Added.
+ * itk/generic/itk.h:
+ * itk/generic/itkDecls.h: Added.
+ * itk/generic/itkStubInit.c: Added.
+ * itk/generic/itkStubLib.c: Added.
+ * itk/generic/itk_archetype.c:
+ * itk/generic/itk_cmds.c:
+ * itk/generic/itk_option.c:
+ * itk/generic/itk_util.c:
+ * itk/library/Archetype.itk:
+ * itk/library/Toplevel.itk:
+ * itk/library/Widget.itk:
+ * itk/library/itk.tcl:
+ * itk/mac/itkMacLibrary.r:
+ * itk/mac/pkgIndex.tcl:
+ * itk/tests/all:
+ * itk/tests/all.tcl: Added.
+ * itk/tests/defs:
+ * itk/tests/interp.test:
+ * itk/tests/option.test:
+ * itk/tests/privacy.test:
+ * itk/tests/public.test:
+ * itk/tests/toplevel.test:
+ * itk/tests/widget.test:
+ * itk/unix/Makefile.in: Removed.
+ * itk/unix/configure: Removed.
+ * itk/unix/configure.in: Removed.
+ * itk/unix/pkgIndex.tcl.in: Removed.
+ * itk/win/Makefile.in: Removed.
+ * itk/win/Makefile.in_first: Removed.
+ * itk/win/configure: Removed.
+ * itk/win/configure.in: Removed.
+ * itk/win/dllEntryPoint.c:
+ * itk/win/makefile.bc:
+ * itk/win/makefile.vc:
+ * itk/win/pkgIndex.tcl:
+ * itk/win/winMain.c:
+ * itk/win/rc/itk.rc:
+ * itk/win/rc/itkwish.rc:
+ * iwidgets3.0.0/CHANGES:
+ * iwidgets3.0.0/Makefile.in: Added.
+ * iwidgets3.0.0/README:
+ * iwidgets3.0.0/aclocal.m4: Added.
+ * iwidgets3.0.0/catalog: Removed.
+ * iwidgets3.0.0/configure: Added.
+ * iwidgets3.0.0/configure.in: Added.
+ * iwidgets3.0.0/iwidgets.tcl: Added.
+ * iwidgets3.0.0/iwidgets.tcl.in: Added.
+ * iwidgets3.0.0/pkgIndex.tcl: Added.
+ * iwidgets3.0.0/pkgIndex.tcl.in: Added.
+ * iwidgets3.0.0/demos/canvasprintbox: Added.
+ * iwidgets3.0.0/demos/catalog: Added.
+ * iwidgets3.0.0/demos/feedback:
+ * iwidgets3.0.0/demos/mainwindow:
+ * iwidgets3.0.0/demos/scopedobject: Added.
+ * iwidgets3.0.0/demos/shell: Added.
+ * iwidgets3.0.0/demos/watch:
+ * iwidgets3.0.0/demos/html/buttonbox.n.html:
+ * iwidgets3.0.0/demos/html/calendar.n.html: Added.
+ * iwidgets3.0.0/demos/html/canvasprintbox.n.html:
+ * iwidgets3.0.0/demos/html/canvasprintdialog.n.html:
+ * iwidgets3.0.0/demos/html/checkbox.n.html: Added.
+ * iwidgets3.0.0/demos/html/combobox.n.html:
+ * iwidgets3.0.0/demos/html/dateentry.n.html: Added.
+ * iwidgets3.0.0/demos/html/datefield.n.html: Added.
+ * iwidgets3.0.0/demos/html/dialog.n.html:
+ * iwidgets3.0.0/demos/html/dialogshell.n.html:
+ * iwidgets3.0.0/demos/html/disjointlistbox.n.html: Added.
+ * iwidgets3.0.0/demos/html/entryfield.n.html:
+ * iwidgets3.0.0/demos/html/extfileselectionbox.n.html: Added.
+ * iwidgets3.0.0/demos/html/extfileselectiondialog.n.html: Added.
+ * iwidgets3.0.0/demos/html/feedback.n.html:
+ * iwidgets3.0.0/demos/html/fileselectionbox.n.html:
+ * iwidgets3.0.0/demos/html/fileselectiondialog.n.html:
+ * iwidgets3.0.0/demos/html/finddialog.n.html: Added.
+ * iwidgets3.0.0/demos/html/hierarchy.n.html: Added.
+ * iwidgets3.0.0/demos/html/hyperhelp.n.html:
+ * iwidgets3.0.0/demos/html/iwidgets2.2.0UserCmds.html: Removed.
+ * iwidgets3.0.0/demos/html/iwidgets3.0.0UserCmds.html: Added.
+ * iwidgets3.0.0/demos/html/labeledframe.n.html: Added.
+ * iwidgets3.0.0/demos/html/labeledwidget.n.html:
+ * iwidgets3.0.0/demos/html/mainwindow.n.html: Added.
+ * iwidgets3.0.0/demos/html/menubar.n.html:
+ * iwidgets3.0.0/demos/html/messagebox.n.html: Added.
+ * iwidgets3.0.0/demos/html/messagedialog.n.html:
+ * iwidgets3.0.0/demos/html/notebook.n.html:
+ * iwidgets3.0.0/demos/html/optionmenu.n.html:
+ * iwidgets3.0.0/demos/html/panedwindow.n.html:
+ * iwidgets3.0.0/demos/html/promptdialog.n.html:
+ * iwidgets3.0.0/demos/html/pushbutton.n.html:
+ * iwidgets3.0.0/demos/html/radiobox.n.html:
+ * iwidgets3.0.0/demos/html/scopedobject.n.html: Added.
+ * iwidgets3.0.0/demos/html/scrolledcanvas.n.html:
+ * iwidgets3.0.0/demos/html/scrolledframe.n.html:
+ * iwidgets3.0.0/demos/html/scrolledhtml.n.html:
+ * iwidgets3.0.0/demos/html/scrolledlistbox.n.html:
+ * iwidgets3.0.0/demos/html/scrolledtext.n.html:
+ * iwidgets3.0.0/demos/html/selectionbox.n.html:
+ * iwidgets3.0.0/demos/html/selectiondialog.n.html:
+ * iwidgets3.0.0/demos/html/shell.n.html:
+ * iwidgets3.0.0/demos/html/spindate.n.html:
+ * iwidgets3.0.0/demos/html/spinint.n.html:
+ * iwidgets3.0.0/demos/html/spinner.n.html:
+ * iwidgets3.0.0/demos/html/spintime.n.html:
+ * iwidgets3.0.0/demos/html/tabnotebook.n.html:
+ * iwidgets3.0.0/demos/html/tabset.n.html:
+ * iwidgets3.0.0/demos/html/timeentry.n.html: Added.
+ * iwidgets3.0.0/demos/html/timefield.n.html: Added.
+ * iwidgets3.0.0/demos/html/toolbar.n.html:
+ * iwidgets3.0.0/demos/html/watch.n.html: Added.
+ * iwidgets3.0.0/doc/checkbox.n:
+ * iwidgets3.0.0/doc/entryfield.n:
+ * iwidgets3.0.0/doc/generateHtml.sh: Added.
+ * iwidgets3.0.0/doc/hierarchy.n:
+ * iwidgets3.0.0/doc/radiobox.n:
+ * iwidgets3.0.0/doc/scrolledlistbox.n:
+ * iwidgets3.0.0/doc/scrolledtext.n:
+ * iwidgets3.0.0/doc/toolbar.n:
+ * iwidgets3.0.0/generic/buttonbox.itk:
+ * iwidgets3.0.0/generic/calendar.itk:
+ * iwidgets3.0.0/generic/canvasprintbox.itk:
+ * iwidgets3.0.0/generic/checkbox.itk:
+ * iwidgets3.0.0/generic/colors.itcl:
+ * iwidgets3.0.0/generic/combobox.itk:
+ * iwidgets3.0.0/generic/dateentry.itk:
+ * iwidgets3.0.0/generic/datefield.itk:
+ * iwidgets3.0.0/generic/dialog.itk:
+ * iwidgets3.0.0/generic/dialogshell.itk:
+ * iwidgets3.0.0/generic/disjointlistbox.itk:
+ * iwidgets3.0.0/generic/entryfield.itk:
+ * iwidgets3.0.0/generic/extfileselectionbox.itk:
+ * iwidgets3.0.0/generic/extfileselectiondialog.itk:
+ * iwidgets3.0.0/generic/feedback.itk:
+ * iwidgets3.0.0/generic/fileselectionbox.itk:
+ * iwidgets3.0.0/generic/fileselectiondialog.itk:
+ * iwidgets3.0.0/generic/finddialog.itk:
+ * iwidgets3.0.0/generic/hierarchy.itk:
+ * iwidgets3.0.0/generic/hyperhelp.itk:
+ * iwidgets3.0.0/generic/labeledframe.itk:
+ * iwidgets3.0.0/generic/labeledwidget.itk:
+ * iwidgets3.0.0/generic/mainwindow.itk:
+ * iwidgets3.0.0/generic/menubar.itk:
+ * iwidgets3.0.0/generic/messagebox.itk:
+ * iwidgets3.0.0/generic/messagedialog.itk:
+ * iwidgets3.0.0/generic/notebook.itk:
+ * iwidgets3.0.0/generic/optionmenu.itk:
+ * iwidgets3.0.0/generic/pane.itk:
+ * iwidgets3.0.0/generic/panedwindow.itk:
+ * iwidgets3.0.0/generic/promptdialog.itk:
+ * iwidgets3.0.0/generic/pushbutton.itk:
+ * iwidgets3.0.0/generic/radiobox.itk:
+ * iwidgets3.0.0/generic/scrolledcanvas.itk:
+ * iwidgets3.0.0/generic/scrolledframe.itk:
+ * iwidgets3.0.0/generic/scrolledhtml.itk:
+ * iwidgets3.0.0/generic/scrolledlistbox.itk:
+ * iwidgets3.0.0/generic/scrolledtext.itk:
+ * iwidgets3.0.0/generic/scrolledwidget.itk:
+ * iwidgets3.0.0/generic/selectionbox.itk:
+ * iwidgets3.0.0/generic/selectiondialog.itk:
+ * iwidgets3.0.0/generic/shell.itk:
+ * iwidgets3.0.0/generic/spindate.itk:
+ * iwidgets3.0.0/generic/spinint.itk:
+ * iwidgets3.0.0/generic/spinner.itk:
+ * iwidgets3.0.0/generic/spintime.itk:
+ * iwidgets3.0.0/generic/tabnotebook.itk:
+ * iwidgets3.0.0/generic/tabset.itk:
+ * iwidgets3.0.0/generic/timeentry.itk:
+ * iwidgets3.0.0/generic/timefield.itk:
+ * iwidgets3.0.0/generic/toolbar.itk:
+ * iwidgets3.0.0/generic/watch.itk:
+ * iwidgets3.0.0/tests/all:
+ * iwidgets3.0.0/tests/all.tcl: Added.
+ * iwidgets3.0.0/tests/buttonbox.test:
+ * iwidgets3.0.0/tests/calendar.test:
+ * iwidgets3.0.0/tests/canvasprintbox.test:
+ * iwidgets3.0.0/tests/canvasprintdialog.test:
+ * iwidgets3.0.0/tests/checkbox.test:
+ * iwidgets3.0.0/tests/combobox.test:
+ * iwidgets3.0.0/tests/dateentry.test:
+ * iwidgets3.0.0/tests/datefield.test:
+ * iwidgets3.0.0/tests/defs:
+ * iwidgets3.0.0/tests/dialog.test:
+ * iwidgets3.0.0/tests/dialogshell.test:
+ * iwidgets3.0.0/tests/disjointlistbox.test:
+ * iwidgets3.0.0/tests/entryfield.test:
+ * iwidgets3.0.0/tests/extfileselectionbox.test:
+ * iwidgets3.0.0/tests/extfileselectiondialog.test:
+ * iwidgets3.0.0/tests/feedback.test:
+ * iwidgets3.0.0/tests/fileselectionbox.test:
+ * iwidgets3.0.0/tests/fileselectiondialog.test:
+ * iwidgets3.0.0/tests/finddialog.test:
+ * iwidgets3.0.0/tests/hierarchy.test:
+ * iwidgets3.0.0/tests/hyperhelp.test:
+ * iwidgets3.0.0/tests/labeledframe.test:
+ * iwidgets3.0.0/tests/labeledwidget.test:
+ * iwidgets3.0.0/tests/menubar.test:
+ * iwidgets3.0.0/tests/messagebox.test:
+ * iwidgets3.0.0/tests/messagedialog.test:
+ * iwidgets3.0.0/tests/notebook.test:
+ * iwidgets3.0.0/tests/optionmenu.test:
+ * iwidgets3.0.0/tests/panedwindow.test:
+ * iwidgets3.0.0/tests/promptdialog.test:
+ * iwidgets3.0.0/tests/pushbutton.test:
+ * iwidgets3.0.0/tests/radiobox.test:
+ * iwidgets3.0.0/tests/regexpfield.test:
+ * iwidgets3.0.0/tests/scrolledcanvas.test:
+ * iwidgets3.0.0/tests/scrolledframe.test:
+ * iwidgets3.0.0/tests/scrolledhtml.test:
+ * iwidgets3.0.0/tests/scrolledlistbox.test:
+ * iwidgets3.0.0/tests/scrolledtext.test:
+ * iwidgets3.0.0/tests/selectionbox.test:
+ * iwidgets3.0.0/tests/selectiondialog.test:
+ * iwidgets3.0.0/tests/shell.test:
+ * iwidgets3.0.0/tests/spindate.test:
+ * iwidgets3.0.0/tests/spinint.test:
+ * iwidgets3.0.0/tests/spinner.test:
+ * iwidgets3.0.0/tests/spintime.test:
+ * iwidgets3.0.0/tests/tabnotebook.test:
+ * iwidgets3.0.0/tests/tabset.test:
+ * iwidgets3.0.0/tests/timeentry.test:
+ * iwidgets3.0.0/tests/timefield.test:
+ * iwidgets3.0.0/tests/toolbar.test:
+ * iwidgets3.0.0/tests/usual.test:
+ * iwidgets3.0.0/tests/watch.test:
+ * iwidgets3.0.0/unix/Makefile.in: Removed.
+ * iwidgets3.0.0/unix/configure: Removed.
+ * iwidgets3.0.0/unix/configure.in: Removed.
+ * iwidgets3.0.0/unix/iwidgets.tcl.in: Removed.
+ * iwidgets3.0.0/unix/pkgIndex.tcl.in: Removed.
+ * iwidgets3.0.0/win/iwidgets.tcl: Added.
+ * iwidgets3.0.0/win/makefile.vc: Added.
+ * iwidgets3.0.0/win/pkgIndex.tcl: Added.
+
+2001-04-09 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/unix/aclocal.m4: Include tcl.m4.
+ * itcl/unix/configure: Regen.
+ * itcl/unix/configure.in: Call TCL_TOOL_PATH
+ to match use in win version.
+ * itcl/unix/tcl.m4: Add from tcl/unix.
+ * itcl/win/aclocal.m4: Include tcl.m4.
+ * itcl/win/configure: Regen.
+ * itcl/win/configure.in: Call TCL_TOOL_PATH for
+ TCL_BIN_DIR, TCL_SRC_DIR, TCL_BUILD_LIB_SPEC.
+ * itcl/win/tcl.m4: Add from tcl/win.
+ * itk/unix/aclocal.m4: Include tcl.m4.
+ * itk/unix/configure: Regen.
+ * itk/unix/configure.in: Call TCL_TOOL_PATH
+ to match use in win version. Remove
+ --with-cflags option.
+ * itk/unix/tcl.m4: Add from tcl/unix.
+ * itk/win/aclocal.m4: Include tcl.m4.
+ * itk/win/configure: Regen.
+ * itk/win/configure.in: Call TCL_TOOL_PATH for
+ ITK_SRC_DIR, TCL_BIN_DIR, TCL_SRC_DIR, TCL_BUILD_LIB_SPEC,
+ TCL_BUILD_STUB_LIB_SPEC, TK_BIN_DIR, TK_SRC_DIR, TK_BUILD_LIB_SPEC,
+ and ITCL_BIN_DIR. Remove --with-cflags option.
+ * itk/win/tcl.m4: Add from tcl/win.
+
+2001-04-05 Mo DeJong <mdejong@redhat.com>
+
+ * itcl/win/Makefile.in:
+ * itk/win/Makefile.in: Remove code that depends on dumpexts.exe
+ since it was removed from Tcl. Building a .dll no longer
+ requires a .def file.
+
+2001-04-05 Mo DeJong <mdejong@redhat.com>
+
+ * configure.in: Don't build iwidgets under Windows since there
+ is no build system in the win subdirectory.
+ * itcl/win/configure.in:
+ * itk/win/configure.in: Don't look for tclConfig.sh in the
+ ../unix directory, look in the win/ subdirectory instead.
+ Fix copy and paste error in --with argument. Add subst
+ of the TCL_BUILD_STUB_LIB_SPEC variable.
+ * configure:
+ * itcl/win/configure:
+ * itk/win/configure: Regen.
+
+2001-04-05 Mo DeJong <mdejong@redhat.com>
+
+ * itk/win/winMain.c: Replace calls
+ to TkConsoleCreate and TkConsoleInit
+ with call to Tk_CreateConsoleWindow.
+ The old methods were removed in
+ Tk 8.3 and replaced with a public API.
+
+2001-03-27 Ian Roxborough <irox@redhat.com>
+
+ * itcl/generic/itcl_cmds.c
+ * itcl/generic/itcl_ensemble.c
+ * itcl/generic/itcl_methods.c
+ * itcl/generic/itcl_obsolete.c
+ * itcl/generic/itcl_parse.c
+ * itcl/generic/itk_archetype.c: Tcl/Tk 8.3 support.
+ Call Tcl_EvalObj with only two parameter for Tcl8.3.
+
2000-01-26 DJ Delorie <dj@cygnus.com>
* itcl/win/dllEntryPoint.c (DllMain): Use _imp__ instead of __imp_
diff --git a/itcl/Makefile.in b/itcl/Makefile.in
index 7e2c2872c1e..c2c68aa43b1 100644
--- a/itcl/Makefile.in
+++ b/itcl/Makefile.in
@@ -23,66 +23,106 @@ subdirs = @subdirs@
SHELL = /bin/sh
all:
- @for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ for dir in $(subdirs) ; do \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
test:
- for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ for dir in itcl itk iwidgets3.0.0 ; do \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
static:
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
standalone:
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
plusplus:
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
install:
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
install-binaries:
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
install-libraries:
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
install-info info install-check:
clean:
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
distclean:
rm -f Makefile config.log config.status config.cache
for dir in $(subdirs) ; do \
- if (echo "Making in $$dir"; cd $$dir && $(MAKE) $@); \
- then true; else exit 1; fi \
+ if test -d $$dir ; then \
+ echo "$$dir: $(MAKE) $@" ;\
+ if (cd $$dir; $(MAKE) $@) ; then true ; else exit 1 ; fi ; \
+ else \
+ exit 1; \
+ fi \
done;
#
@@ -91,4 +131,12 @@ distclean:
# to put the distribution.
#
+# CYGNUS LOCAL
+#configure: configure.in
+# autoconf
+# for dir in $(subdirs) ; do \
+# if (cd $$dir; autoconf) ; then true ; else exit 1 ; fi ; \
+# done;
+# END CYGNUS LOCAL
+
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/itcl/config/install-sh b/itcl/config/install-sh
index 0ff4b6a08e8..95d784d7cf6 100755
--- a/itcl/config/install-sh
+++ b/itcl/config/install-sh
@@ -33,7 +33,7 @@ chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+mvcmd="$mvprog -f"
src=""
dst=""
diff --git a/itcl/configure b/itcl/configure
index 4e46ba23472..669b6450666 100755
--- a/itcl/configure
+++ b/itcl/configure
@@ -1,7 +1,7 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12.2
+# Generated automatically using autoconf version 2.13
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
@@ -11,6 +11,7 @@
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
+ac_default_prefix=/usr/local
# Initialize some variables set by options.
# The variables have the same names as the options, with
@@ -28,6 +29,7 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
+sitefile=
srcdir=
target=NONE
verbose=
@@ -142,6 +144,7 @@ Configuration:
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
+ --site-file=FILE use FILE as the site file
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -312,6 +315,11 @@ EOF
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
+ ac_prev=sitefile ;;
+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+ sitefile="$ac_optarg" ;;
+
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -333,7 +341,7 @@ EOF
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.12.2"
+ echo "configure generated by autoconf version 2.13"
exit 0 ;;
-with-* | --with-*)
@@ -477,12 +485,16 @@ fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+if test -z "$sitefile"; then
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
fi
+else
+ CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -547,7 +559,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:551: checking host system type" >&5
+echo "configure:563: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -568,32 +580,28 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
-if test -d itcl; then
- true
-else
- mkdir itcl
-fi
-if test -d itk; then
- true
-else
- mkdir itk
-fi
-if test -d iwidgets3.0.0; then
- true
-else
- mkdir iwidgets3.0.0
+# Note, we don't use the files in the config subdirectory!
+ac_aux_dir=
+for ac_dir in .. $srcdir/..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in .. $srcdir/.." 1>&2; exit 1; }
fi
-
-case "${host}" in
-*-*-cygwin*)
- CONFIGDIR="itcl/win itk/win iwidgets3.0.0/unix" ;;
-*)
- CONFIGDIR="itcl/unix itk/unix iwidgets3.0.0/unix" ;;
-esac
-
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:597: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:605: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -619,8 +627,60 @@ else
SET_MAKE="MAKE=${MAKE-make}"
fi
+# END CYGNUS LOCAL
+
+# -----------------------------------------------------------------------
+#
+# Set up a new default --prefix. If a previous installation of
+# [incr Tcl] can be found searching $PATH use that directory.
+#
+# -----------------------------------------------------------------------
+
+
+if test "x$prefix" = xNONE; then
+echo $ac_n "checking for prefix by $ac_c" 1>&6
+# Extract the first word of "itclsh", so it can be a program name with args.
+set dummy itclsh; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:646: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_ITCLSH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$ITCLSH" in
+ /*)
+ ac_cv_path_ITCLSH="$ITCLSH" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_ITCLSH="$ITCLSH" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_ITCLSH="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+ITCLSH="$ac_cv_path_ITCLSH"
+if test -n "$ITCLSH"; then
+ echo "$ac_t""$ITCLSH" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -n "$ac_cv_path_ITCLSH"; then
+ prefix=`echo $ac_cv_path_ITCLSH|sed 's%/[^/][^/]*//*[^/][^/]*$%%'`
+ fi
+fi
+
-subdirs="$CONFIGDIR"
+subdirs="itcl itk iwidgets3.0.0"
trap '' 1 2 15
@@ -646,7 +706,7 @@ EOF
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
- case `(ac_space=' '; set) 2>&1 | grep ac_space` in
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
*ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \).
@@ -725,7 +785,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.12.2"
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
@@ -748,6 +808,7 @@ s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
@@ -771,8 +832,8 @@ s%@host_alias@%$host_alias%g
s%@host_cpu@%$host_cpu%g
s%@host_vendor@%$host_vendor%g
s%@host_os@%$host_os%g
-s%@CONFIGDIR@%$CONFIGDIR%g
s%@SET_MAKE@%$SET_MAKE%g
+s%@ITCLSH@%$ITCLSH%g
s%@subdirs@%$subdirs%g
CEOF
@@ -874,7 +935,7 @@ cat >> $CONFIG_STATUS <<EOF
EOF
cat >> $CONFIG_STATUS <<\EOF
-
+chmod +x ${srcdir}/config/install-sh ${srcdir}/config/mkinstalldirs
exit 0
EOF
chmod +x $CONFIG_STATUS
@@ -906,7 +967,7 @@ if test "$no_recursion" != yes; then
esac
done
- for ac_config_dir in $CONFIGDIR; do
+ for ac_config_dir in itcl itk iwidgets3.0.0; do
# Do not complain, so a configure script can configure whichever
# parts of a large source tree are present.
diff --git a/itcl/configure.in b/itcl/configure.in
index 41de7dc7591..91cfa0b0dde 100644
--- a/itcl/configure.in
+++ b/itcl/configure.in
@@ -1,37 +1,30 @@
-dnl This entire file is CYGNUS LOCAL.
-dnl Itcl configure file.
+dnl This file is an input file used by the GNU "autoconf" program to
+dnl generate the file "configure", which is run during [incr Tcl]
+dnl installation to configure the system for the local environment.
+dnl RCS: $Id$
+# CYGNUS LOCAL
AC_PREREQ(2.5)
AC_INIT(itcl/generic/itcl.h)
AC_CANONICAL_HOST
-if test -d itcl; then
- true
-else
- mkdir itcl
-fi
-if test -d itk; then
- true
-else
- mkdir itk
-fi
-if test -d iwidgets3.0.0; then
- true
-else
- mkdir iwidgets3.0.0
-fi
+# Note, we don't use the files in the config subdirectory!
+AC_CONFIG_AUX_DIR(..)
+AC_PROG_MAKE_SET
+# END CYGNUS LOCAL
-case "${host}" in
-*-*-cygwin*)
- CONFIGDIR="itcl/win itk/win iwidgets3.0.0/unix" ;;
-*)
- CONFIGDIR="itcl/unix itk/unix iwidgets3.0.0/unix" ;;
-esac
-AC_SUBST(CONFIGDIR)
+# -----------------------------------------------------------------------
+#
+# Set up a new default --prefix. If a previous installation of
+# [incr Tcl] can be found searching $PATH use that directory.
+#
+# -----------------------------------------------------------------------
-AC_PROG_MAKE_SET
+AC_PREFIX_DEFAULT(/usr/local)
+AC_PREFIX_PROGRAM(itclsh)
-AC_CONFIG_SUBDIRS($CONFIGDIR)
+AC_CONFIG_SUBDIRS(itcl itk iwidgets3.0.0)
-AC_OUTPUT(Makefile)
+AC_OUTPUT(Makefile,
+ chmod +x ${srcdir}/config/install-sh ${srcdir}/config/mkinstalldirs)
diff --git a/itcl/cygtcl.m4 b/itcl/cygtcl.m4
new file mode 100644
index 00000000000..b74c2be7aca
--- /dev/null
+++ b/itcl/cygtcl.m4
@@ -0,0 +1,310 @@
+# CYGNUS LOCAL
+#
+# This entire file is Cygnus local, it contains a set of cross
+# platform autoconf macros to be used by Tcl extensions.
+
+# FIXME: There seems to be a problem with variable
+# names that still need an expansion (like $foo_FILE)
+# since another eval might be needed in these macros.
+
+#--------------------------------------------------------------------
+# TCL_TOOL_PATH
+#
+# Return a file path that the build system tool will understand.
+# This path might be different than the path used in the
+# Makefiles.
+#
+# Arguments:
+#
+# VAR
+# PATH
+#
+# Results:
+#
+#
+# Example:
+#
+# TCL_TOOL_PATH(TCL_CC_PATH, /usr/local/compiler)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(TCL_TOOL_PATH, [
+ val=$2
+
+ if test "$val" = "" ; then
+ AC_MSG_ERROR([Empty value for variable $1])
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ AC_MSG_ERROR([CYGPATH variable is not defined.])
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ $1=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ $1="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ $1=$val
+ ;;
+ esac
+])
+
+# FIXME: It would simplify things if no SUFFIX had to be passed
+# into these LONGNAME macros. Using the TCL_SHARED_LIB_SUFFIX
+# and TCL_UNSHARED_LIB_SUFFIX from tclConfig.sh might do the trick!
+
+#--------------------------------------------------------------------
+# TCL_TOOL_STATIC_LIB_LONGNAME
+#
+# Return static library name in the "long format" understood by
+# the build tools. This might involve prepending a suffix
+# and appending version information to the library name.
+#
+# Arguments:
+#
+# VAR
+# LIBNAME
+# SUFFIX
+#
+# Depends on:
+# TCL_DBGX
+# TCL_VENDOR_PREFIX
+#
+# Example:
+#
+# TCL_TOOL_STATIC_LIB_LONGNAME(TCL_LIB, tcl, $TCL_UNSHARED_LIB_SUFFIX)
+#
+# Results:
+#
+# TCL_LIB=libtcl83.a
+#
+# or
+#
+# TCL_LIB=tcl83.lib
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(TCL_TOOL_STATIC_LIB_LONGNAME, [
+ libname=$2
+ suffix=$3
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ else
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ fi
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ $1=$long_libname
+])
+
+#--------------------------------------------------------------------
+# TCL_TOOL_SHARED_LIB_LONGNAME
+#
+# Return the shared library name in the "long format" understood by
+# the build tools. This might involve prepending a suffix
+# and appending version information to the shared library name.
+#
+# Arguments:
+#
+# VAR
+# LIBNAME
+# SUFFIX
+#
+# Depends on:
+# TCL_DBGX
+# TCL_VENDOR_PREFIX
+#
+# Example:
+#
+# TCL_TOOL_SHARED_LIB_LONGNAME(TCL_SHLIB, tcl, $TCL_SHARED_LIB_SUFFIX)
+#
+# Results:
+# The above example could result in the following.
+#
+# TCL_SHLIB=libtcl83.so
+#
+# or
+#
+# TCL_SHLIB=tcl83.dll
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(TCL_TOOL_SHARED_LIB_LONGNAME, [
+ libname=$2
+ suffix=$3
+
+ case "${host}" in
+ *windows32* | *mingw32* | *cygwin*)
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ $1=$long_libname
+])
+
+#--------------------------------------------------------------------
+# TCL_TOOL_LIB_SHORTNAME
+#
+# Return the library name in the "short format" understood by
+# the build tools. This might involve prepending a suffix
+# and appending version information to the library name.
+# The VC++ compiler does not support short library names
+# so we just use the static import lib name in that case.
+#
+# Arguments:
+#
+# VAR
+# LIBNAME
+# VERSION
+#
+# Depends on:
+# TCL_LIB_VERSIONS_OK
+# TCL_DBGX
+# SHARED_BUILD
+#
+#
+# Example:
+#
+# TCL_TOOL_LIB_SHORTNAME(TCL_LIB, tcl, 8.3)
+#
+# Results:
+# The above example could result in the following.
+#
+# TCL_LIB=-ltcl83
+#
+# or
+#
+# TCL_LIB=tcl83.lib
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(TCL_TOOL_LIB_SHORTNAME, [
+ libname=$2
+ version=$3
+
+ if test "$TCL_LIB_SUFFIX" = "" ; then
+ AC_MSG_ERROR([The TCL_LIB_SUFFIX variable is not defined])
+ fi
+
+ # If the . character is not allowed in lib name, remove it from version
+ if test "${TCL_LIB_VERSIONS_OK}" != "ok"; then
+ version=`echo $version | tr -d .`
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "short_libname=\"${TCL_VENDOR_PREFIX}${libname}${version}${TCL_LIB_SUFFIX}\""
+ else
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}${TCL_DBGX}"
+ fi
+ ;;
+ *)
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}\${TCL_DBGX}"
+ ;;
+ esac
+
+ $1=$short_libname
+])
+
+#--------------------------------------------------------------------
+# TCL_TOOL_LIB_SPEC
+#
+# Return the "lib spec format" understood by the build tools.
+#
+# Arguments:
+#
+# VAR
+# DIR
+# LIBARG
+#
+# Depends on:
+#
+#
+# Example:
+#
+# TCL_TOOL_LIB_SPEC(SPEC, /usr/lib, -ltcl)
+#
+# Results:
+# The above example could result in the following.
+#
+# SPEC="-L/usr/lib -ltcl83"
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(TCL_TOOL_LIB_SPEC, [
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ TCL_TOOL_PATH($1, "$2/$3")
+ else
+ TCL_TOOL_PATH(dirname, $2)
+ $1="-L${dirname} $3"
+ fi
+ ;;
+ *)
+ $1="-L$2 $3"
+ ;;
+ esac
+])
+
+#--------------------------------------------------------------------
+# TCL_TOOL_LIB_PATH
+#
+# Return the "lib path format" understood by the build tools.
+# Typically, this is the fully qualified path name of the library.
+#
+# Arguments:
+#
+# VAR
+# DIR
+# LIBARG
+#
+# Depends on:
+#
+#
+# Example:
+#
+# TCL_TOOL_LIB_PATH(TMP_PATH, /usr/lib, libtcl83.a)
+#
+# Results:
+# The above example could result in the following.
+#
+# TMP_PATH="/usr/lib/libtcl83.a"
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(TCL_TOOL_LIB_PATH, [
+ TCL_TOOL_PATH($1, "$2/$3")
+])
diff --git a/itcl/itcl/Makefile.in b/itcl/itcl/Makefile.in
new file mode 100644
index 00000000000..1fb42d93e0c
--- /dev/null
+++ b/itcl/itcl/Makefile.in
@@ -0,0 +1,493 @@
+# Makefile.in --
+#
+# This file is a Makefile for Sample TEA Extension. If it has the name
+# "Makefile.in" then it is a template for a Makefile; to generate the
+# actual Makefile, run "./configure", which is a configuration script
+# generated by the "autoconf" program (constructs like "@foo@" will get
+# replaced in the actual Makefile.
+#
+# Copyright (c) 1999 Scriptics Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id$
+
+#========================================================================
+# Edit the following few lines when writing a new extension
+#========================================================================
+
+#========================================================================
+# Change the name of the variable "exampleA_LIB_FILE" to match the one
+# used in the configure script. This is the parameterized name of the
+# library that we are building.
+#========================================================================
+
+lib_BINARIES=$(itcl_LIB_FILE) $(itclstub_LIB_FILE)
+BINARIES=$(lib_BINARIES)
+
+#========================================================================
+# Enumerate the names of the source files included in this package.
+# This will be used when a dist target is added to the Makefile.
+#========================================================================
+
+WIN_DIR=$(srcdir)/win
+UNIX_DIR=$(srcdir)/unix
+GENERIC_DIR=$(srcdir)/generic
+PLATFORM_DIR=@PLATFORM_DIR@
+
+WIN_SOURCES=$(PLATFORM_DIR)/tclAppInit.c \
+ $(PLATFORM_DIR)/dllEntryPoint.c
+UNIX_SOURCES=$(PLATFORM_DIR)/tclAppInit.c
+GENERIC_SOURCES = $(GENERIC_DIR)/itclStubInit.c \
+ $(GENERIC_DIR)/itclStubLib.c \
+ $(GENERIC_DIR)/itcl_bicmds.c \
+ $(GENERIC_DIR)/itcl_class.c \
+ $(GENERIC_DIR)/itcl_cmds.c \
+ $(GENERIC_DIR)/itcl_ensemble.c \
+ $(GENERIC_DIR)/itcl_linkage.c \
+ $(GENERIC_DIR)/itcl_methods.c \
+ $(GENERIC_DIR)/itcl_migrate.c \
+ $(GENERIC_DIR)/itcl_objects.c \
+ $(GENERIC_DIR)/itcl_obsolete.c \
+ $(GENERIC_DIR)/itcl_parse.c \
+ $(GENERIC_DIR)/itcl_util.c
+PLATFORM_SOURCES = @PLATFORM_SOURCES@
+itcl_SOURCES = $(PLATFORM_SOURCES) $(GENERIC_SOURCES)
+SOURCES = $(itcl_SOURCES)
+
+#========================================================================
+# Enumerate the names of the object files included in this package.
+# These objects are created and linked into the final library. In
+# most cases these object files will correspond to the source files
+# above.
+#
+#========================================================================
+
+WIN_OBJECTS = dllEntryPoint.$(OBJEXT)
+UNIX_OBJECTS =
+GENERIC_OBJECTS = itclStubInit.$(OBJEXT) \
+ itcl_bicmds.$(OBJEXT) \
+ itcl_class.$(OBJEXT) \
+ itcl_cmds.$(OBJEXT) \
+ itcl_ensemble.$(OBJEXT) \
+ itcl_linkage.$(OBJEXT) \
+ itcl_methods.$(OBJEXT) \
+ itcl_migrate.$(OBJEXT) \
+ itcl_objects.$(OBJEXT) \
+ itcl_obsolete.$(OBJEXT) \
+ itcl_parse.$(OBJEXT) \
+ itcl_util.$(OBJEXT)
+PLATFORM_OBJECTS = @PLATFORM_OBJECTS@
+itclstub_OBJECTS = itclStubLib.$(OBJEXT)
+itcl_OBJECTS = $(PLATFORM_OBJECTS) $(GENERIC_OBJECTS)
+OBJECTS = $(itcl_OBJECTS) $(itclstub_OBJECTS)
+
+#========================================================================
+# The substitution of "exampleA_LIB_FILE" into the variable name below
+# let's us refer to the objects for the library without knowing the name
+# of the library in advance. It also lets us use the "$@" variable in
+# the rule for building the library, so we can refer to both the list of
+# objects and the library itself in a platform-independent manner.
+#========================================================================
+
+itcl_LIB_FILE = @itcl_LIB_FILE@
+@itcl_LIB_FILE@_OBJECTS = $(itcl_OBJECTS)
+
+itclstub_LIB_FILE = @itclstub_LIB_FILE@
+@itclstub_LIB_FILE@_OBJECTS = $(itclstub_OBJECTS)
+
+#========================================================================
+# This is a list of header files to be installed
+# itk.h includes itclInt.h, which needs itclIntDecls.h, so we must install them.
+#========================================================================
+
+GENERIC_HDRS= \
+ $(srcdir)/generic/itcl.h \
+ $(srcdir)/generic/itclDecls.h \
+ $(srcdir)/generic/itclInt.h \
+ $(srcdir)/generic/itclIntDecls.h
+
+#========================================================================
+# Add additional lines to handle any additional AC_SUBST cases that
+# have been added to the configure script.
+#========================================================================
+
+SAMPLE_NEW_VAR=@SAMPLE_NEW_VAR@
+
+# CYGNUS LOCAL
+ITCL_LIBRARY = @datadir@/itcl$(VERSION)
+# END CYGNUS LOCAL
+
+ITCL_GENERIC_DIR_NATIVE = @ITCL_GENERIC_DIR_NATIVE@
+ITCL_UNIX_DIR_NATIVE = @ITCL_UNIX_DIR_NATIVE@
+ITCL_WIN_DIR_NATIVE = @ITCL_WIN_DIR_NATIVE@
+
+#========================================================================
+# Nothing of the variables below this line need to be changed. Please
+# check the TARGETS section below to make sure the make targets are
+# correct.
+#========================================================================
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@@VERSION@
+pkglibdir = $(libdir)/@PACKAGE@@VERSION@
+pkgincludedir = $(includedir)/@PACKAGE@@VERSION@
+
+top_builddir = .
+
+# CYGNUS LOCAL
+INSTALL = @INSTALL@
+# END CYGNUS LOCAL
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_FLAG =
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+CC = @CC@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
+CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
+CLEANFILES = @CLEANFILES@
+EXEEXT = @EXEEXT@
+LDFLAGS_DEBUG = @LDFLAGS_DEBUG@
+LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
+LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@
+MAKE_LIB = @MAKE_LIB@
+MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
+MAKE_STATIC_LIB = @MAKE_STATIC_LIB@
+OBJEXT = @OBJEXT@
+RANLIB = @RANLIB@
+SHLIB_CFLAGS = @SHLIB_CFLAGS@
+SHLIB_LD = @SHLIB_LD@
+SHLIB_LDFLAGS = @SHLIB_LDFLAGS@
+SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
+STLIB_LD = @STLIB_LD@
+TCL_BIN_DIR = @TCL_BIN_DIR@
+TCL_DEFS = @TCL_DEFS@
+TCL_EXTRA_CFLAGS = @TCL_EXTRA_CFLAGS@
+TCL_LD_FLAGS = @TCL_LD_FLAGS@
+TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_LD_LIBS = @TCL_SHLIB_LD_LIBS@
+TCL_SRC_DIR = @TCL_SRC_DIR@
+TCL_DBGX = @TCL_DBGX@
+TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
+TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
+TCL_TOOL_DIR_NATIVE = @TCL_TOOL_DIR_NATIVE@
+TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@
+TCL_UNIX_DIR_NATIVE = @TCL_UNIX_DIR_NATIVE@
+TCL_WIN_DIR_NATIVE = @TCL_WIN_DIR_NATIVE@
+INCLUDE_DIR_NATIVE = @INCLUDE_DIR_NATIVE@
+TCL_BMAP_DIR_NATIVE = @TCL_BMAP_DIR_NATIVE@
+TCL_PLATFORM_DIR_NATIVE = @TCL_PLATFORM_DIR_NATIVE@
+TCL_GENERIC_DIR_NATIVE = @TCL_GENERIC_DIR_NATIVE@
+TCLSH_PROG = @TCLSH_PROG@
+ITCL_INCLUDES = @ITCL_INCLUDES@
+
+AUTOCONF = autoconf
+
+LDFLAGS = $(LDFLAGS_DEFAULT)
+
+INCLUDES = @TCL_INCLUDES@ @ITCL_INCLUDES@
+
+EXTRA_CFLAGS = $(AC_FLAGS) $(PROTO_FLAGS) $(MEM_DEBUG_FLAGS) $(NO_DEPRECATED_FLAGS) $(TCL_EXTRA_CFLAGS)
+
+DEFS = @DEFS@ $(EXTRA_CFLAGS) -DITCL_LIBRARY=\"$(ITCL_LIBRARY)\"
+
+ACLOCAL_M4 = $(srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/../config/mkinstalldirs
+
+CPPFLAGS = @CPPFLAGS@
+LIBS = @LIBS@
+AR = ar
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+
+#========================================================================
+# Start of user-definable TARGETS section
+#========================================================================
+
+#========================================================================
+# TEA TARGETS. Please note that the "libraries:" target refers to platform
+# independent files, and the "binaries:" target inclues executable programs and
+# platform-dependent libraries. Modify these targets so that they install
+# the various pieces of your package. The make and install rules
+# for the BINARIES that you specified above have already been done.
+#========================================================================
+
+all: binaries libraries doc
+
+#========================================================================
+# The binaries target builds executable programs, Windows .dll's, unix
+# shared/static libraries, and any other platform-dependent files.
+# The list of targets to build for "binaries:" is specified at the top
+# of the Makefile, in the "BINARIES" variable.
+#========================================================================
+
+binaries: $(BINARIES)
+
+libraries:
+
+doc:
+
+install: all install-binaries install-libraries install-doc
+
+install-binaries: binaries install-lib-binaries install-bin-binaries
+
+#========================================================================
+# This rule installs platform-independent files, such as header files.
+#========================================================================
+
+install-libraries: libraries
+ $(mkinstalldirs) $(includedir)
+ @echo "Installing header files in $(includedir)"
+ @for i in $(GENERIC_HDRS) ; do \
+ echo "Installing $$i" ; \
+ $(INSTALL_DATA) $$i $(includedir) ; \
+ done;
+ @echo "Installing library files in $(ITCL_LIBRARY)"
+ @for i in $(srcdir)/library/*.tcl ; do \
+ echo "Installing $$i" ; \
+ $(INSTALL_DATA) $$i $(ITCL_LIBRARY) ; \
+ done;
+
+#========================================================================
+# Install documentation. Unix manpages should go in the $(mandir)
+# directory.
+#========================================================================
+
+install-doc: doc
+ $(mkinstalldirs) $(mandir)/mann
+ @echo "Installing man pages in $(mandir)"
+ @for i in $(srcdir)/doc/*.n; \
+ do \
+ echo "Installing $$i"; \
+ $(INSTALL_DATA) $$i $(mandir)/mann ; \
+ done
+
+test: $(TCLSH_PROG)
+ $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/tests/all.tcl` \
+ -exedir `@CYGPATH@ $(bindir)` $(TESTFLAGS)
+
+depend:
+
+#========================================================================
+# Enumerate the names of the object files included in this package.
+# These objects are created and linked into the final library. In
+# most cases these object files will correspond to the source files
+# above.
+#
+# $(exampleA_LIB_FILE) should be listed as part of the BINARIES variable
+# at the top of the Makefile. That will ensure that this target is built
+# when you run "make binaries".
+#
+# You shouldn't need to modify this target, except to change the package
+# name from "exampleA" to your package's name.
+#========================================================================
+
+$(itcl_LIB_FILE): $(itcl_OBJECTS)
+ -rm -f $(itcl_LIB_FILE)
+ @MAKE_LIB@
+ @POST_MAKE_LIB@
+
+$(itclstub_LIB_FILE): $(itclstub_OBJECTS)
+ -rm -f $(itclstub_LIB_FILE)
+ @MAKE_STATIC_LIB@
+ @POST_MAKE_STATIC_LIB@
+
+#========================================================================
+# We need to enumerate the list of .c to .o lines here.
+# Unfortunately, there does not seem to be any other way to do this
+# in a Makefile-independent way. We can't use VPATH because it picks up
+# object files that may be located in the source directory.
+#
+# In the following lines, $(srcdir) refers to the toplevel directory
+# containing your extension. If your sources are in a subdirectory,
+# you will have to modify the paths to reflect this:
+#
+# exampleA.$(OBJEXT): $(srcdir)/src/win/exampleA.c
+# $(COMPILE) -c `@CYGPATH@ $(srcdir)/src/win/exampleA.c` -o $@
+#========================================================================
+
+dllEntryPoint.$(OBJEXT): $(WIN_DIR)/dllEntryPoint.c
+ $(COMPILE) -c `@CYGPATH@ $(WIN_DIR)/dllEntryPoint.c` -o $@
+
+tclAppInit.$(OBJEXT): $(PLATFORM_DIR)/tclAppInit.c
+ $(COMPILE) -c `@CYGPATH@ $(PLATFORM_DIR)/tclAppInit.c` -o $@
+
+itclStubInit.$(OBJEXT): $(GENERIC_DIR)/itclStubInit.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itclStubInit.c` -o $@
+
+itclStubLib.$(OBJEXT): $(GENERIC_DIR)/itclStubLib.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itclStubLib.c` -o $@
+
+itcl_bicmds.$(OBJEXT): $(GENERIC_DIR)/itcl_bicmds.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_bicmds.c` -o $@
+
+itcl_class.$(OBJEXT): $(GENERIC_DIR)/itcl_class.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_class.c` -o $@
+
+itcl_cmds.$(OBJEXT): $(GENERIC_DIR)/itcl_cmds.c Makefile
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_cmds.c` -o $@
+
+itcl_ensemble.$(OBJEXT): $(GENERIC_DIR)/itcl_ensemble.c Makefile
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_ensemble.c` -o $@
+
+itcl_linkage.$(OBJEXT): $(GENERIC_DIR)/itcl_linkage.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_linkage.c` -o $@
+
+itcl_methods.$(OBJEXT): $(GENERIC_DIR)/itcl_methods.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_methods.c` -o $@
+
+itcl_migrate.$(OBJEXT): $(GENERIC_DIR)/itcl_migrate.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_migrate.c` -o $@
+
+itcl_objects.$(OBJEXT): $(GENERIC_DIR)/itcl_objects.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_objects.c` -o $@
+
+itcl_obsolete.$(OBJEXT): $(GENERIC_DIR)/itcl_obsolete.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_obsolete.c` -o $@
+
+itcl_parse.$(OBJEXT): $(GENERIC_DIR)/itcl_parse.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_parse.c` -o $@
+
+itcl_util.$(OBJEXT): $(GENERIC_DIR)/itcl_util.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itcl_util.c` -o $@
+
+
+#========================================================================
+# End of user-definable section
+#========================================================================
+
+#========================================================================
+# Don't modify the file to clean here. Instead, set the "CLEANFILES"
+# variable in configure.in
+#========================================================================
+
+clean:
+ -test -z "$(BINARIES)" || rm -f $(BINARIES)
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean: clean
+ -rm -f *.tab.c
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -rm -f config.status
+
+#========================================================================
+# Install binary object libraries. On Windows this includes both .dll and
+# .lib files. Because the .lib files are not explicitly listed anywhere,
+# we need to deduce their existence from the .dll file of the same name.
+# Additionally, the .dll files go into the bin directory, but the .lib
+# files go into the lib directory. On Unix platforms, all library files
+# go into the lib directory. In addition, this will generate the pkgIndex.tcl
+# file in the install location (assuming it can find a usable tclsh8.2 shell)
+#
+# You should not have to modify this target.
+#========================================================================
+
+install-lib-binaries: installdirs
+ @list='$(lib_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ ext=`echo $$p|sed -e "s/.*\.//"`; \
+ if test "x$$ext" = "xdll"; then \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p; \
+ lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \
+ if test -f $$lib; then \
+ echo " $(INSTALL_PROGRAM) $$lib $(DESTDIR)$(libdir)/$$lib"; \
+ $(INSTALL_PROGRAM) $$lib $(DESTDIR)$(libdir)/$$lib; \
+ fi; \
+ else \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \
+ fi; \
+ else :; fi; \
+ done
+ @list='$(lib_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
+ $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+ else :; fi; \
+ done
+ $(INSTALL_DATA) pkgIndex.tcl $(pkglibdir)
+
+#========================================================================
+# Install binary executables (e.g. .exe files)
+#
+# You should not have to modify this target.
+#========================================================================
+
+install-bin-binaries: installdirs
+ @list='$(bin_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(bindir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(bindir)/$$p; \
+ else :; fi; \
+ done
+
+.SUFFIXES: .c .o .obj
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+#config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+# $(SHELL) ./config.status --recheck
+#$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+# cd $(srcdir) && $(AUTOCONF)
+
+
+uninstall-binaries:
+ @$(NORMAL_UNINSTALL)
+ list='$(BINARIES)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(libdir)/$$p; \
+ done
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ $(mkinstalldirs) $(DESTDIR)$(pkglibdir)
+ $(mkinstalldirs) $(ITCL_LIBRARY)
+
+.PHONY: all binaries clean depend distclean doc install installdirs \
+libraries test
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/itcl/itcl/aclocal.m4 b/itcl/itcl/aclocal.m4
new file mode 100644
index 00000000000..09bc09fa2b7
--- /dev/null
+++ b/itcl/itcl/aclocal.m4
@@ -0,0 +1,2 @@
+builtin(include,../tcl.m4)
+builtin(include,../cygtcl.m4)
diff --git a/itcl/itcl/configure b/itcl/itcl/configure
new file mode 100755
index 00000000000..31c237447c5
--- /dev/null
+++ b/itcl/itcl/configure
@@ -0,0 +1,2637 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --with-tcl directory containing tcl configuration (tclConfig.sh)"
+ac_help="$ac_help
+ --enable-threads build with threads"
+ac_help="$ac_help
+ --enable-shared build and link with shared libraries [--enable-shared]"
+ac_help="$ac_help
+ --enable-symbols build with debugging symbols [--disable-symbols]"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+sitefile=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --site-file=FILE use FILE as the site file
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
+ ac_prev=sitefile ;;
+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+ sitefile="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=generic/itcl.h
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$sitefile"; then
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+else
+ CONFIG_SITE="$sitefile"
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+# CYGNUS LOCAL
+ac_aux_dir=
+for ac_dir in ../.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in ../.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Set your package name and version numbers here. The NODOT_VERSION is
+# required for constructing the library name on systems that don't like
+# dots in library names (Windows). The VERSION variable is used on the
+# other systems.
+#--------------------------------------------------------------------
+
+PACKAGE=itcl
+
+MAJOR_VERSION=3
+MINOR_VERSION=2
+PATCHLEVEL=.0
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}
+NODOT_VERSION=${MAJOR_VERSION}${MINOR_VERSION}
+
+
+
+
+
+#--------------------------------------------------------------------
+# We put this here so that you can compile with -DVERSION="1.2" to
+# encode the package version directly into the source files.
+#--------------------------------------------------------------------
+
+eval cat >> confdefs.h <<EOF
+#define VERSION "${VERSION}"
+EOF
+
+
+#------------------------------------------------------------------------
+# Handle the --prefix=... option
+#------------------------------------------------------------------------
+
+if test "${prefix}" = "NONE"; then
+ prefix=/usr/local
+fi
+if test "${exec_prefix}" = "NONE"; then
+ exec_prefix=$prefix
+fi
+
+#--------------------------------------------------------------------
+# Check whether --enable-gcc or --disable-gcc was given. Do this
+# before AC_CYGWIN is called so the compiler can
+# be fully tested by built-in autoconf tools.
+# This macro also calls AC_PROG_CC to set the compiler if --enable-gcc
+# was not used.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:620: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:650: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:701: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:733: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 744 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:775: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:780: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:808: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+# END CYGNUS LOCAL
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:852: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+#--------------------------------------------------------------------
+# Checks to see if the make program sets the $MAKE variable.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:910: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+#--------------------------------------------------------------------
+# Find ranlib
+#--------------------------------------------------------------------
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:944: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+#--------------------------------------------------------------------
+# This macro performs additional compiler tests.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:977: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 982 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_cygwin=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+
+#--------------------------------------------------------------------
+# Determines the correct binary file extension (.o, .obj, .exe etc.)
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+echo "configure:1015: checking for object suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ rm -f conftest*
+echo 'int i = 1;' > conftest.$ac_ext
+if { (eval echo configure:1021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ for ac_file in conftest.*; do
+ case $ac_file in
+ *.c) ;;
+ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
+ esac
+ done
+else
+ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_objext" 1>&6
+OBJEXT=$ac_cv_objext
+ac_objext=$ac_cv_objext
+
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:1039: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1044 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:1051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_mingw32=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:1070: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+ ac_cv_exeext=.exe
+else
+ rm -f conftest*
+ echo 'int main () { return 0; }' > conftest.$ac_ext
+ ac_cv_exeext=
+ if { (eval echo configure:1080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ for file in conftest.*; do
+ case $file in
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+ esac
+ done
+ else
+ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ rm -f conftest*
+ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+
+#--------------------------------------------------------------------
+# "cygpath" is used on windows to generate native path names for include
+# files.
+# These variables should only be used with the compiler and linker since
+# they generate native path names.
+#
+# Unix tclConfig.sh points SRC_DIR at the top-level directory of
+# the Tcl sources, while the Windows tclConfig.sh points SRC_DIR at
+# the win subdirectory. Hence the different usages of SRC_DIR below.
+#
+# This must be done before calling SC_PUBLIC_TCL_HEADERS
+#
+# RELPATH is used to locate binary extensions relative to the lib directory.
+# It is only needed if mkIndex.tcl can't generate an installed pkgIndex.tcl
+# file for you.
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *mingw32* | *windows32*)
+ # Extract the first word of "cygpath", so it can be a program name with args.
+set dummy cygpath; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1123: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CYGPATH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CYGPATH"; then
+ ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CYGPATH="cygpath -w"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo"
+fi
+fi
+CYGPATH="$ac_cv_prog_CYGPATH"
+if test -n "$CYGPATH"; then
+ echo "$ac_t""$CYGPATH" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ RELPATH=".. .. bin"
+ ;;
+ *)
+ CYGPATH=echo
+ RELPATH=..
+ ;;
+esac
+
+
+
+
+#--------------------------------------------------------------------
+# Includes for this package
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+srcdir=`cd ${srcdir} ; pwd`
+ITCL_SRC_DIR_NATIVE=`${CYGPATH} ${srcdir}`
+# END CYGNUS LOCAL
+ITCL_GENERIC_DIR_NATIVE=`${CYGPATH} ${srcdir}/generic`
+ITCL_WIN_DIR_NATIVE=`${CYGPATH} ${srcdir}/win`
+ITCL_UNIX_DIR_NATIVE=`${CYGPATH} ${srcdir}/unix`
+
+case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ ITCL_PLATFORM_DIR_NATIVE=${ITCL_WIN_DIR_NATIVE}
+ ;;
+ *)
+ ITCL_PLATFORM_DIR_NATIVE=${ITCL_UNIX_DIR_NATIVE}
+ ;;
+esac
+
+ITCL_INCLUDES="-I\"${ITCL_GENERIC_DIR_NATIVE}\" -I\"${ITCL_PLATFORM_DIR_NATIVE}\""
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+
+
+ #
+ # Ok, lets find the tcl configuration
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-tcl
+ #
+
+ if test x"${no_tcl}" = x ; then
+ # we reset no_tcl in case something fails here
+ no_tcl=true
+ # Check whether --with-tcl or --without-tcl was given.
+if test "${with_tcl+set}" = set; then
+ withval="$with_tcl"
+ with_tclconfig=${withval}
+fi
+
+ echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
+echo "configure:1210: checking for Tcl configuration" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+
+ # First check to see if --with-tcl was specified.
+ if test x"${with_tclconfig}" != x ; then
+ if test -f "${with_tclconfig}/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+ else
+ { echo "configure: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" 1>&2; exit 1; }
+ fi
+ fi
+
+ # then check for a private Tcl installation
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ../tcl \
+ `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
+ ../../tcl \
+ `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
+ ../../../tcl \
+ `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few common install locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib 2>/dev/null` \
+ `ls -d /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few other private locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ${srcdir}/../tcl \
+ `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+fi
+
+
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ TCL_BIN_DIR="# no Tcl configs found"
+ { echo "configure: error: Can't find Tcl configuration definitions" 1>&2; exit 1; }
+ exit 0
+ else
+ no_tcl=
+ TCL_BIN_DIR=${ac_cv_c_tclconfig}
+ echo "$ac_t""found $TCL_BIN_DIR/tclConfig.sh" 1>&6
+ fi
+ fi
+
+
+ echo $ac_n "checking for existence of $TCL_BIN_DIR/tclConfig.sh""... $ac_c" 1>&6
+echo "configure:1288: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
+
+ if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+ echo "$ac_t""loading" 1>&6
+ . $TCL_BIN_DIR/tclConfig.sh
+ else
+ echo "$ac_t""file not found" 1>&6
+ fi
+
+ #
+ # The eval is required to do the TCL_DBGX substitution in the
+ # TCL_LIB_FILE variable
+ #
+
+ eval TCL_LIB_FILE=${TCL_LIB_FILE}
+ eval TCL_LIB_FLAG=${TCL_LIB_FLAG}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Choose which headers you need. Extension authors should try very
+# hard to only rely on the Tcl public header files. Internal headers
+# contain private data structures and are subject to change without
+# notice.
+# This must be done AFTER calling SC_PATH_TCLCONFIG/SC_LOAD_TCLCONFIG
+# so that we can extract TCL_SRC_DIR from the config file (in the case
+# of private headers
+#--------------------------------------------------------------------
+
+#SC_PUBLIC_TCL_HEADERS
+
+ echo $ac_n "checking for Tcl private include files""... $ac_c" 1>&6
+echo "configure:1336: checking for Tcl private include files" >&5
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ TCL_TOP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}`\"
+ TCL_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/generic`\"
+ TCL_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/unix`\"
+ TCL_WIN_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/win`\"
+ TCL_BMAP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/bitmaps`\"
+ TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\"
+ TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\"
+ TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE}
+ ;;
+ *)
+ TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)'
+ TCL_GENERIC_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/generic'
+ TCL_UNIX_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/unix'
+ TCL_WIN_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/win'
+ TCL_BMAP_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/bitmaps'
+ TCL_TOOL_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/tools'
+ TCL_COMPAT_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/compat'
+ TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE}
+ ;;
+ esac
+
+
+
+
+
+
+
+
+
+ TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
+
+ echo "$ac_t""Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}" 1>&6
+
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# A few miscellaneous platform-specific items:
+#
+# Define a special symbol for Windows (BUILD_itcl in this case) so
+# that we create the export library with the dll. See sha1.h on how
+# to use this.
+#
+# Windows creates a few extra files that need to be cleaned up.
+# You can add more files to clean if your extension creates any extra
+# files.
+#
+# Define any extra compiler flags in the PACKAGE_CFLAGS variable.
+# These will be appended to the current set of compiler flags for
+# your system.
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *cygwin*| *mingw32* | *windows32*)
+ cat >> confdefs.h <<\EOF
+#define BUILD_itcl 1
+EOF
+
+ CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc50.pch"
+ PLATFORM_SOURCES='$(WIN_SOURCES)'
+ PLATFORM_OBJECTS='$(WIN_OBJECTS)'
+ PLATFORM_DIR='$(WIN_DIR)'
+ ;;
+ *)
+ CLEANFILES=
+ PLATFORM_SOURCES='$(UNIX_SOURCES)'
+ PLATFORM_OBJECTS='$(UNIX_OBJECTS)'
+ PLATFORM_DIR='$(UNIX_DIR)'
+ ;;
+esac
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# So far only Tcl responds to this one.
+#--------------------------------------------------------------------
+
+
+ echo $ac_n "checking for building with threads""... $ac_c" 1>&6
+echo "configure:1422: checking for building with threads" >&5
+ # Check whether --enable-threads or --disable-threads was given.
+if test "${enable_threads+set}" = set; then
+ enableval="$enable_threads"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+
+ if test "$tcl_ok" = "yes"; then
+ TCL_THREADS=1
+ cat >> confdefs.h <<\EOF
+#define TCL_THREADS 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define _REENTRANT 1
+EOF
+
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ echo "$ac_t""yes" 1>&6
+ ;;
+ *)
+ echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
+echo "configure:1449: checking for pthread_mutex_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lpthread $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1457 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pthread_mutex_init();
+
+int main() {
+pthread_mutex_init()
+; return 0; }
+EOF
+if { (eval echo configure:1468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=yes
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=no
+fi
+
+ if test "$tcl_ok" = "yes"; then
+ # The space is needed
+ THREADS_LIBS=" -lpthread"
+ echo "$ac_t""yes" 1>&6
+ else
+ TCL_THREADS=0
+ echo "$ac_t""no" 1>&6
+ echo "configure: warning: "Don t know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile..."" 1>&2
+ fi
+ ;;
+ esac
+ else
+ TCL_THREADS=0
+ echo "$ac_t""no (default)" 1>&6
+ fi
+
+
+
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+
+ echo $ac_n "checking how to build libraries""... $ac_c" 1>&6
+echo "configure:1514: checking how to build libraries" >&5
+ # Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+
+# CYGNUS LOCAL
+ case "${host}" in
+ *mingw32* | *windows32*)
+ # Default to shared build for Windows
+ if test "${enable_shared+set}" != set; then
+ tcl_ok=yes
+ fi
+ ;;
+ esac
+# END CYGNUS LOCAL
+
+ if test "$tcl_ok" = "yes" ; then
+ echo "$ac_t""shared" 1>&6
+ SHARED_BUILD=1
+ else
+ echo "$ac_t""static" 1>&6
+ SHARED_BUILD=0
+ cat >> confdefs.h <<\EOF
+#define STATIC_BUILD 1
+EOF
+
+ fi
+
+
+#--------------------------------------------------------------------
+# This macro figures out what flags to use with the compiler/linker
+# when building shared/static debug/optimized objects. This information
+# is all taken from the tclConfig.sh file.
+#--------------------------------------------------------------------
+
+CFLAGS_DEBUG=${TCL_CFLAGS_DEBUG}
+CFLAGS_OPTIMIZE=${TCL_CFLAGS_OPTIMIZE}
+LDFLAGS_DEBUG=${TCL_LDFLAGS_DEBUG}
+LDFLAGS_OPTIMIZE=${TCL_LDFLAGS_OPTIMIZE}
+SHLIB_LD=${TCL_SHLIB_LD}
+STLIB_LD=${TCL_STLIB_LD}
+SHLIB_CFLAGS=${TCL_SHLIB_CFLAGS}
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols
+# option.
+#--------------------------------------------------------------------
+
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ tcl_dbgx=d
+ ;;
+ *)
+ tcl_dbgx=g
+ ;;
+ esac
+
+ echo $ac_n "checking for build with symbols""... $ac_c" 1>&6
+echo "configure:1585: checking for build with symbols" >&5
+ # Check whether --enable-symbols or --disable-symbols was given.
+if test "${enable_symbols+set}" = set; then
+ enableval="$enable_symbols"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+ if test "$tcl_ok" = "yes"; then
+ CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+ LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
+ DBGX=${tcl_dbgx}
+ TCL_DBGX=${tcl_dbgx}
+ echo "$ac_t""yes" 1>&6
+ else
+ CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+ LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+ DBGX=""
+ TCL_DBGX=""
+ echo "$ac_t""no" 1>&6
+ fi
+
+
+
+
+
+
+if test "${SHARED_BUILD}" = "1" ; then
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING} ${SHLIB_CFLAGS}'
+else
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING}'
+fi
+
+#--------------------------------------------------------------------
+# Everyone should be linking against the Tcl stub library. If you
+# can't for some reason, remove this definition. If you aren't using
+# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
+# link against the non-stubbed Tcl library.
+#--------------------------------------------------------------------
+
+if test "${SHARED_BUILD}" = "1" ; then
+ cat >> confdefs.h <<\EOF
+#define USE_TCL_STUBS 1
+EOF
+
+fi
+
+#--------------------------------------------------------------------
+# This macro generates a line to use when building a library. It
+# depends on values set by the SC_ENABLE_SHARED, SC_ENABLE_SYMBOLS,
+# and SC_LOAD_TCLCONFIG macros above.
+#--------------------------------------------------------------------
+
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ if test "${CC}" = "cl"; then
+ MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(\$@_OBJECTS) "
+ MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS} \$(LDFLAGS) -out:\$@ \$(\$@_OBJECTS) "
+ else
+ MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(\$@_OBJECTS) "
+ POST_MAKE_STATIC_LIB="\${RANLIB} \$@"
+ MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(\$@_OBJECTS) \${SHLIB_LDFLAGS} \$(LDFLAGS) \${SHLIB_LD_LIBS} -Wl,--out-implib,\$(patsubst %.dll,lib%.a,\$@)"
+ fi
+ ;;
+ *)
+ MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(\$@_OBJECTS)"
+ POST_MAKE_STATIC_LIB="\${RANLIB} \$@"
+ MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(\$@_OBJECTS) \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS}"
+ ;;
+ esac
+
+ if test "${SHARED_BUILD}" = "1" ; then
+ MAKE_LIB=${MAKE_SHARED_LIB}
+ else
+ MAKE_LIB=${MAKE_STATIC_LIB}
+ POST_MAKE_LIB=${POST_MAKE_STATIC_LIB}
+ fi
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# eval these two values to dereference the ${DBGX} variable.
+#--------------------------------------------------------------------
+
+eval "SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}"
+eval "UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}"
+
+#--------------------------------------------------------------------
+# Shared libraries and static libraries have different names.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+if test "${SHARED_BUILD}" = "1" ; then
+ # FIXME: Need to devise a TCL_TOOL macro to deal with this!
+ case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ SHLIB_LD_LIBS="${TCL_BUILD_STUB_LIB_SPEC} ${TCL_SHLIB_LD_LIBS}"
+ # Need to link to the .a or .lib not the .dll!
+
+ libname=${PACKAGE}
+ suffix=${SHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32* | *cygwin*)
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITCL_SHLIB_FILE=$long_libname
+
+
+ libname=${PACKAGE}
+ suffix=${UNSHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ else
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ fi
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITCL_LIB_FILE=$long_libname
+
+ ITCL_TARGET_FILE=${ITCL_SHLIB_FILE}
+ ;;
+ *)
+ SHLIB_LD_LIBS="${TCL_BUILD_LIB_SPEC}"
+
+ libname=${PACKAGE}
+ suffix=${SHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32* | *cygwin*)
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITCL_LIB_FILE=$long_libname
+
+ ITCL_TARGET_FILE=${ITCL_LIB_FILE}
+ ;;
+ esac
+else
+
+ libname=${PACKAGE}
+ suffix=${UNSHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ else
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ fi
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITCL_LIB_FILE=$long_libname
+
+ ITCL_TARGET_FILE=${ITCL_LIB_FILE}
+fi
+
+
+ libname=${PACKAGE}stub
+ suffix=${UNSHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ else
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ fi
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITCL_STUB_LIB_FILE=$long_libname
+
+
+
+
+
+
+ libname=${PACKAGE}
+ version=${VERSION}
+
+ if test "$TCL_LIB_SUFFIX" = "" ; then
+ { echo "configure: error: The TCL_LIB_SUFFIX variable is not defined" 1>&2; exit 1; }
+ fi
+
+ # If the . character is not allowed in lib name, remove it from version
+ if test "${TCL_LIB_VERSIONS_OK}" != "ok"; then
+ version=`echo $version | tr -d .`
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "short_libname=\"${TCL_VENDOR_PREFIX}${libname}${version}${TCL_LIB_SUFFIX}\""
+ else
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}${TCL_DBGX}"
+ fi
+ ;;
+ *)
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}\${TCL_DBGX}"
+ ;;
+ esac
+
+ ITCL_LIB_FLAG=$short_libname
+
+
+ libname=${PACKAGE}stub
+ version=${VERSION}
+
+ if test "$TCL_LIB_SUFFIX" = "" ; then
+ { echo "configure: error: The TCL_LIB_SUFFIX variable is not defined" 1>&2; exit 1; }
+ fi
+
+ # If the . character is not allowed in lib name, remove it from version
+ if test "${TCL_LIB_VERSIONS_OK}" != "ok"; then
+ version=`echo $version | tr -d .`
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "short_libname=\"${TCL_VENDOR_PREFIX}${libname}${version}${TCL_LIB_SUFFIX}\""
+ else
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}${TCL_DBGX}"
+ fi
+ ;;
+ *)
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}\${TCL_DBGX}"
+ ;;
+ esac
+
+ ITCL_STUB_LIB_FLAG=$short_libname
+
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="`pwd`/${ITCL_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITCL_BUILD_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITCL_BUILD_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITCL_BUILD_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITCL_BUILD_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=`pwd`
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITCL_BUILD_LIB_SPEC="-L${dirname} ${ITCL_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITCL_BUILD_LIB_SPEC="-L`pwd` ${ITCL_LIB_FLAG}"
+ ;;
+ esac
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="`pwd`/${ITCL_STUB_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITCL_BUILD_STUB_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITCL_BUILD_STUB_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITCL_BUILD_STUB_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITCL_BUILD_STUB_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=`pwd`
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITCL_BUILD_STUB_LIB_SPEC="-L${dirname} ${ITCL_STUB_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITCL_BUILD_STUB_LIB_SPEC="-L`pwd` ${ITCL_STUB_LIB_FLAG}"
+ ;;
+ esac
+
+
+
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="${exec_prefix}/lib/${ITCL_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITCL_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITCL_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITCL_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITCL_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=${exec_prefix}/lib
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITCL_LIB_SPEC="-L${dirname} ${ITCL_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITCL_LIB_SPEC="-L${exec_prefix}/lib ${ITCL_LIB_FLAG}"
+ ;;
+ esac
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="${exec_prefix}/lib/${ITCL_STUB_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITCL_STUB_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITCL_STUB_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITCL_STUB_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITCL_STUB_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=${exec_prefix}/lib
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITCL_STUB_LIB_SPEC="-L${dirname} ${ITCL_STUB_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITCL_STUB_LIB_SPEC="-L${exec_prefix}/lib ${ITCL_STUB_LIB_FLAG}"
+ ;;
+ esac
+
+
+
+
+
+
+ val="`pwd`/${ITCL_LIB_FILE}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITCL_LIB_FULL_PATH" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITCL_LIB_FULL_PATH=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITCL_LIB_FULL_PATH="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITCL_LIB_FULL_PATH=$val
+ ;;
+ esac
+
+
+
+
+ val="`pwd`/${ITCL_STUB_LIB_FILE}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITCL_STUB_LIB_FULL_PATH" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITCL_STUB_LIB_FULL_PATH=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITCL_STUB_LIB_FULL_PATH="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITCL_STUB_LIB_FULL_PATH=$val
+ ;;
+ esac
+
+
+
+
+
+itclstub_LIB_FILE=${ITCL_STUB_LIB_FILE}
+itcl_LIB_FILE=${ITCL_TARGET_FILE}
+
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Change the name from exampeA_LIB_FILE to match your package name.
+# Use the stub_LIB_FILE substitution if your package creates a stub
+# library.
+#--------------------------------------------------------------------
+
+
+
+
+
+#--------------------------------------------------------------------
+# Cache the stub library name so that the itk configure script can pick
+# it up.
+#--------------------------------------------------------------------
+
+if eval "test \"`echo '$''{'ac_cv_itclstub_LIB_FILE'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_cv_itclstub_LIB_FILE=${itclstub_LIB_FILE}
+fi
+
+
+#--------------------------------------------------------------------
+# Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl
+# file during the install process. Don't run the TCLSH_PROG through
+# ${CYGPATH} because it's being used directly by make.
+# Require that we use a tclsh shell version 8.2 or later since earlier
+# versions have bugs in the pkg_mkIndex routine.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# A Tcl shell is not available when bootstrapping!
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+# Note: The itclConfig.sh file below is not included in the net release.
+# We subst these variables to retain compatibility with the previous
+# version of itclConfig.sh.
+
+ITCL_VERSION=${VERSION}
+
+
+ITCL_MAJOR_VERSION=${MAJOR_VERSION}
+
+
+ITCL_MINOR_VERSION=${MINOR_VERSION}
+
+
+ITCL_RELEASE_LEVEL=${PATCHLEVEL}
+
+
+ITCL_SRC_DIR=${ITCL_SRC_DIR_NATIVE}
+
+
+ITCL_SH=NONE
+
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile \
+ itclConfig.sh \
+ pkgIndex.tcl" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@CC@%$CC%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@RANLIB@%$RANLIB%g
+s%@OBJEXT@%$OBJEXT%g
+s%@EXEEXT@%$EXEEXT%g
+s%@CYGPATH@%$CYGPATH%g
+s%@RELPATH@%$RELPATH%g
+s%@ITCL_GENERIC_DIR_NATIVE@%$ITCL_GENERIC_DIR_NATIVE%g
+s%@ITCL_WIN_DIR_NATIVE@%$ITCL_WIN_DIR_NATIVE%g
+s%@ITCL_UNIX_DIR_NATIVE@%$ITCL_UNIX_DIR_NATIVE%g
+s%@ITCL_INCLUDES@%$ITCL_INCLUDES%g
+s%@TCL_DBGX@%$TCL_DBGX%g
+s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g
+s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
+s%@TCL_LIB_FILE@%$TCL_LIB_FILE%g
+s%@TCL_LIBS@%$TCL_LIBS%g
+s%@TCL_DEFS@%$TCL_DEFS%g
+s%@TCL_SHLIB_LD_LIBS@%$TCL_SHLIB_LD_LIBS%g
+s%@TCL_EXTRA_CFLAGS@%$TCL_EXTRA_CFLAGS%g
+s%@TCL_LD_FLAGS@%$TCL_LD_FLAGS%g
+s%@TCL_STUB_LIB_FILE@%$TCL_STUB_LIB_FILE%g
+s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g
+s%@TCL_BUILD_LIB_SPEC@%$TCL_BUILD_LIB_SPEC%g
+s%@TCL_STUB_LIB_SPEC@%$TCL_STUB_LIB_SPEC%g
+s%@TCL_BUILD_STUB_LIB_SPEC@%$TCL_BUILD_STUB_LIB_SPEC%g
+s%@TCL_TOP_DIR_NATIVE@%$TCL_TOP_DIR_NATIVE%g
+s%@TCL_GENERIC_DIR_NATIVE@%$TCL_GENERIC_DIR_NATIVE%g
+s%@TCL_UNIX_DIR_NATIVE@%$TCL_UNIX_DIR_NATIVE%g
+s%@TCL_WIN_DIR_NATIVE@%$TCL_WIN_DIR_NATIVE%g
+s%@TCL_BMAP_DIR_NATIVE@%$TCL_BMAP_DIR_NATIVE%g
+s%@TCL_TOOL_DIR_NATIVE@%$TCL_TOOL_DIR_NATIVE%g
+s%@TCL_PLATFORM_DIR_NATIVE@%$TCL_PLATFORM_DIR_NATIVE%g
+s%@TCL_INCLUDES@%$TCL_INCLUDES%g
+s%@CLEANFILES@%$CLEANFILES%g
+s%@PLATFORM_SOURCES@%$PLATFORM_SOURCES%g
+s%@PLATFORM_OBJECTS@%$PLATFORM_OBJECTS%g
+s%@PLATFORM_DIR@%$PLATFORM_DIR%g
+s%@CFLAGS_DEBUG@%$CFLAGS_DEBUG%g
+s%@CFLAGS_OPTIMIZE@%$CFLAGS_OPTIMIZE%g
+s%@STLIB_LD@%$STLIB_LD%g
+s%@SHLIB_LD@%$SHLIB_LD%g
+s%@SHLIB_CFLAGS@%$SHLIB_CFLAGS%g
+s%@SHLIB_LDFLAGS@%$SHLIB_LDFLAGS%g
+s%@CFLAGS_DEFAULT@%$CFLAGS_DEFAULT%g
+s%@LDFLAGS_DEFAULT@%$LDFLAGS_DEFAULT%g
+s%@MAKE_LIB@%$MAKE_LIB%g
+s%@MAKE_SHARED_LIB@%$MAKE_SHARED_LIB%g
+s%@MAKE_STATIC_LIB@%$MAKE_STATIC_LIB%g
+s%@POST_MAKE_LIB@%$POST_MAKE_LIB%g
+s%@POST_MAKE_STATIC_LIB@%$POST_MAKE_STATIC_LIB%g
+s%@ITCL_LIB_FILE@%$ITCL_LIB_FILE%g
+s%@ITCL_STUB_LIB_FILE@%$ITCL_STUB_LIB_FILE%g
+s%@ITCL_BUILD_LIB_SPEC@%$ITCL_BUILD_LIB_SPEC%g
+s%@ITCL_BUILD_STUB_LIB_SPEC@%$ITCL_BUILD_STUB_LIB_SPEC%g
+s%@ITCL_LIB_SPEC@%$ITCL_LIB_SPEC%g
+s%@ITCL_STUB_LIB_SPEC@%$ITCL_STUB_LIB_SPEC%g
+s%@ITCL_LIB_FULL_PATH@%$ITCL_LIB_FULL_PATH%g
+s%@ITCL_STUB_LIB_FULL_PATH@%$ITCL_STUB_LIB_FULL_PATH%g
+s%@itclstub_LIB_FILE@%$itclstub_LIB_FILE%g
+s%@itcl_LIB_FILE@%$itcl_LIB_FILE%g
+s%@SHLIB_LD_LIBS@%$SHLIB_LD_LIBS%g
+s%@ITCL_VERSION@%$ITCL_VERSION%g
+s%@ITCL_MAJOR_VERSION@%$ITCL_MAJOR_VERSION%g
+s%@ITCL_MINOR_VERSION@%$ITCL_MINOR_VERSION%g
+s%@ITCL_RELEASE_LEVEL@%$ITCL_RELEASE_LEVEL%g
+s%@ITCL_SRC_DIR@%$ITCL_SRC_DIR%g
+s%@ITCL_SH@%$ITCL_SH%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile \
+ itclConfig.sh \
+ pkgIndex.tcl"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
+# END CYGNUS LOCAL
diff --git a/itcl/itcl/configure.in b/itcl/itcl/configure.in
new file mode 100644
index 00000000000..c33a8ffa904
--- /dev/null
+++ b/itcl/itcl/configure.in
@@ -0,0 +1,409 @@
+#--------------------------------------------------------------------
+# Sample configure.in for Tcl Extensions. The only places you should
+# need to modify this file are marked by the string __CHANGE__
+#--------------------------------------------------------------------
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# This very first macro is used to verify that the configure script can
+# find the sources. The argument to AC_INIT should be a unique filename
+# for this package, and can be a relative path, such as:
+#
+# AC_INIT(../generic/tcl.h)
+#--------------------------------------------------------------------
+
+AC_INIT(generic/itcl.h)
+# CYGNUS LOCAL
+AC_CONFIG_AUX_DIR(../..)
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Set your package name and version numbers here. The NODOT_VERSION is
+# required for constructing the library name on systems that don't like
+# dots in library names (Windows). The VERSION variable is used on the
+# other systems.
+#--------------------------------------------------------------------
+
+PACKAGE=itcl
+
+MAJOR_VERSION=3
+MINOR_VERSION=2
+PATCHLEVEL=.0
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}
+NODOT_VERSION=${MAJOR_VERSION}${MINOR_VERSION}
+
+
+AC_SUBST(PACKAGE)
+AC_SUBST(VERSION)
+
+#--------------------------------------------------------------------
+# We put this here so that you can compile with -DVERSION="1.2" to
+# encode the package version directly into the source files.
+#--------------------------------------------------------------------
+
+eval AC_DEFINE_UNQUOTED(VERSION, "${VERSION}")
+
+#------------------------------------------------------------------------
+# Handle the --prefix=... option
+#------------------------------------------------------------------------
+
+if test "${prefix}" = "NONE"; then
+ prefix=/usr/local
+fi
+if test "${exec_prefix}" = "NONE"; then
+ exec_prefix=$prefix
+fi
+
+#--------------------------------------------------------------------
+# Check whether --enable-gcc or --disable-gcc was given. Do this
+# before AC_CYGWIN is called so the compiler can
+# be fully tested by built-in autoconf tools.
+# This macro also calls AC_PROG_CC to set the compiler if --enable-gcc
+# was not used.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+dnl SC_ENABLE_GCC
+AC_PROG_CC
+# END CYGNUS LOCAL
+AC_PROG_INSTALL
+
+#--------------------------------------------------------------------
+# Checks to see if the make program sets the $MAKE variable.
+#--------------------------------------------------------------------
+
+AC_PROG_MAKE_SET
+
+#--------------------------------------------------------------------
+# Find ranlib
+#--------------------------------------------------------------------
+
+AC_PROG_RANLIB
+
+#--------------------------------------------------------------------
+# This macro performs additional compiler tests.
+#--------------------------------------------------------------------
+
+AC_CYGWIN
+
+#--------------------------------------------------------------------
+# Determines the correct binary file extension (.o, .obj, .exe etc.)
+#--------------------------------------------------------------------
+
+AC_OBJEXT
+AC_EXEEXT
+
+#--------------------------------------------------------------------
+# "cygpath" is used on windows to generate native path names for include
+# files.
+# These variables should only be used with the compiler and linker since
+# they generate native path names.
+#
+# Unix tclConfig.sh points SRC_DIR at the top-level directory of
+# the Tcl sources, while the Windows tclConfig.sh points SRC_DIR at
+# the win subdirectory. Hence the different usages of SRC_DIR below.
+#
+# This must be done before calling SC_PUBLIC_TCL_HEADERS
+#
+# RELPATH is used to locate binary extensions relative to the lib directory.
+# It is only needed if mkIndex.tcl can't generate an installed pkgIndex.tcl
+# file for you.
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *mingw32* | *windows32*)
+ AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo)
+ RELPATH=".. .. bin"
+ ;;
+ *)
+ CYGPATH=echo
+ RELPATH=..
+ ;;
+esac
+
+AC_SUBST(CYGPATH)
+AC_SUBST(RELPATH)
+
+#--------------------------------------------------------------------
+# Includes for this package
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+srcdir=`cd ${srcdir} ; pwd`
+ITCL_SRC_DIR_NATIVE=`${CYGPATH} ${srcdir}`
+# END CYGNUS LOCAL
+ITCL_GENERIC_DIR_NATIVE=`${CYGPATH} ${srcdir}/generic`
+ITCL_WIN_DIR_NATIVE=`${CYGPATH} ${srcdir}/win`
+ITCL_UNIX_DIR_NATIVE=`${CYGPATH} ${srcdir}/unix`
+
+case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ ITCL_PLATFORM_DIR_NATIVE=${ITCL_WIN_DIR_NATIVE}
+ ;;
+ *)
+ ITCL_PLATFORM_DIR_NATIVE=${ITCL_UNIX_DIR_NATIVE}
+ ;;
+esac
+
+ITCL_INCLUDES="-I\"${ITCL_GENERIC_DIR_NATIVE}\" -I\"${ITCL_PLATFORM_DIR_NATIVE}\""
+
+AC_SUBST(ITCL_GENERIC_DIR_NATIVE)
+AC_SUBST(ITCL_WIN_DIR_NATIVE)
+AC_SUBST(ITCL_UNIX_DIR_NATIVE)
+AC_SUBST(ITCL_INCLUDES)
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+
+SC_PATH_TCLCONFIG
+SC_LOAD_TCLCONFIG
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Choose which headers you need. Extension authors should try very
+# hard to only rely on the Tcl public header files. Internal headers
+# contain private data structures and are subject to change without
+# notice.
+# This must be done AFTER calling SC_PATH_TCLCONFIG/SC_LOAD_TCLCONFIG
+# so that we can extract TCL_SRC_DIR from the config file (in the case
+# of private headers
+#--------------------------------------------------------------------
+
+#SC_PUBLIC_TCL_HEADERS
+SC_PRIVATE_TCL_HEADERS
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# A few miscellaneous platform-specific items:
+#
+# Define a special symbol for Windows (BUILD_itcl in this case) so
+# that we create the export library with the dll. See sha1.h on how
+# to use this.
+#
+# Windows creates a few extra files that need to be cleaned up.
+# You can add more files to clean if your extension creates any extra
+# files.
+#
+# Define any extra compiler flags in the PACKAGE_CFLAGS variable.
+# These will be appended to the current set of compiler flags for
+# your system.
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *cygwin*| *mingw32* | *windows32*)
+ AC_DEFINE(BUILD_itcl)
+ CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc50.pch"
+ PLATFORM_SOURCES='$(WIN_SOURCES)'
+ PLATFORM_OBJECTS='$(WIN_OBJECTS)'
+ PLATFORM_DIR='$(WIN_DIR)'
+ ;;
+ *)
+ CLEANFILES=
+ PLATFORM_SOURCES='$(UNIX_SOURCES)'
+ PLATFORM_OBJECTS='$(UNIX_OBJECTS)'
+ PLATFORM_DIR='$(UNIX_DIR)'
+ ;;
+esac
+
+AC_SUBST(CLEANFILES)
+AC_SUBST(PLATFORM_SOURCES)
+AC_SUBST(PLATFORM_OBJECTS)
+AC_SUBST(PLATFORM_DIR)
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# So far only Tcl responds to this one.
+#--------------------------------------------------------------------
+
+SC_ENABLE_THREADS
+
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+SC_ENABLE_SHARED
+
+#--------------------------------------------------------------------
+# This macro figures out what flags to use with the compiler/linker
+# when building shared/static debug/optimized objects. This information
+# is all taken from the tclConfig.sh file.
+#--------------------------------------------------------------------
+
+CFLAGS_DEBUG=${TCL_CFLAGS_DEBUG}
+CFLAGS_OPTIMIZE=${TCL_CFLAGS_OPTIMIZE}
+LDFLAGS_DEBUG=${TCL_LDFLAGS_DEBUG}
+LDFLAGS_OPTIMIZE=${TCL_LDFLAGS_OPTIMIZE}
+SHLIB_LD=${TCL_SHLIB_LD}
+STLIB_LD=${TCL_STLIB_LD}
+SHLIB_CFLAGS=${TCL_SHLIB_CFLAGS}
+
+AC_SUBST(CFLAGS_DEBUG)
+AC_SUBST(CFLAGS_OPTIMIZE)
+AC_SUBST(STLIB_LD)
+AC_SUBST(SHLIB_LD)
+AC_SUBST(SHLIB_CFLAGS)
+AC_SUBST(SHLIB_LDFLAGS)
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols
+# option.
+#--------------------------------------------------------------------
+
+SC_ENABLE_SYMBOLS
+
+if test "${SHARED_BUILD}" = "1" ; then
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING} ${SHLIB_CFLAGS}'
+else
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING}'
+fi
+
+#--------------------------------------------------------------------
+# Everyone should be linking against the Tcl stub library. If you
+# can't for some reason, remove this definition. If you aren't using
+# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
+# link against the non-stubbed Tcl library.
+#--------------------------------------------------------------------
+
+if test "${SHARED_BUILD}" = "1" ; then
+ AC_DEFINE(USE_TCL_STUBS)
+fi
+
+#--------------------------------------------------------------------
+# This macro generates a line to use when building a library. It
+# depends on values set by the SC_ENABLE_SHARED, SC_ENABLE_SYMBOLS,
+# and SC_LOAD_TCLCONFIG macros above.
+#--------------------------------------------------------------------
+
+SC_MAKE_LIB
+
+#--------------------------------------------------------------------
+# eval these two values to dereference the ${DBGX} variable.
+#--------------------------------------------------------------------
+
+eval "SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}"
+eval "UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}"
+
+#--------------------------------------------------------------------
+# Shared libraries and static libraries have different names.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+if test "${SHARED_BUILD}" = "1" ; then
+ # FIXME: Need to devise a TCL_TOOL macro to deal with this!
+ case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ SHLIB_LD_LIBS="${TCL_BUILD_STUB_LIB_SPEC} ${TCL_SHLIB_LD_LIBS}"
+ # Need to link to the .a or .lib not the .dll!
+ TCL_TOOL_SHARED_LIB_LONGNAME(ITCL_SHLIB_FILE, ${PACKAGE}, ${SHARED_LIB_SUFFIX})
+ TCL_TOOL_STATIC_LIB_LONGNAME(ITCL_LIB_FILE, ${PACKAGE}, ${UNSHARED_LIB_SUFFIX})
+ ITCL_TARGET_FILE=${ITCL_SHLIB_FILE}
+ ;;
+ *)
+ SHLIB_LD_LIBS="${TCL_BUILD_LIB_SPEC}"
+ TCL_TOOL_SHARED_LIB_LONGNAME(ITCL_LIB_FILE, ${PACKAGE}, ${SHARED_LIB_SUFFIX})
+ ITCL_TARGET_FILE=${ITCL_LIB_FILE}
+ ;;
+ esac
+else
+ TCL_TOOL_STATIC_LIB_LONGNAME(ITCL_LIB_FILE, ${PACKAGE}, ${UNSHARED_LIB_SUFFIX})
+ ITCL_TARGET_FILE=${ITCL_LIB_FILE}
+fi
+
+TCL_TOOL_STATIC_LIB_LONGNAME(ITCL_STUB_LIB_FILE, ${PACKAGE}stub, ${UNSHARED_LIB_SUFFIX})
+
+AC_SUBST(ITCL_LIB_FILE)
+AC_SUBST(ITCL_STUB_LIB_FILE)
+
+TCL_TOOL_LIB_SHORTNAME(ITCL_LIB_FLAG, ${PACKAGE}, ${VERSION})
+TCL_TOOL_LIB_SHORTNAME(ITCL_STUB_LIB_FLAG, ${PACKAGE}stub, ${VERSION})
+
+TCL_TOOL_LIB_SPEC(ITCL_BUILD_LIB_SPEC, `pwd`, ${ITCL_LIB_FLAG})
+TCL_TOOL_LIB_SPEC(ITCL_BUILD_STUB_LIB_SPEC, `pwd`, ${ITCL_STUB_LIB_FLAG})
+AC_SUBST(ITCL_BUILD_LIB_SPEC)
+AC_SUBST(ITCL_BUILD_STUB_LIB_SPEC)
+
+TCL_TOOL_LIB_SPEC(ITCL_LIB_SPEC, ${exec_prefix}/lib, ${ITCL_LIB_FLAG})
+TCL_TOOL_LIB_SPEC(ITCL_STUB_LIB_SPEC, ${exec_prefix}/lib, ${ITCL_STUB_LIB_FLAG})
+AC_SUBST(ITCL_LIB_SPEC)
+AC_SUBST(ITCL_STUB_LIB_SPEC)
+
+TCL_TOOL_LIB_PATH(ITCL_LIB_FULL_PATH, `pwd`, ${ITCL_LIB_FILE})
+TCL_TOOL_LIB_PATH(ITCL_STUB_LIB_FULL_PATH, `pwd`, ${ITCL_STUB_LIB_FILE})
+AC_SUBST(ITCL_LIB_FULL_PATH)
+AC_SUBST(ITCL_STUB_LIB_FULL_PATH)
+
+itclstub_LIB_FILE=${ITCL_STUB_LIB_FILE}
+itcl_LIB_FILE=${ITCL_TARGET_FILE}
+
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Change the name from exampeA_LIB_FILE to match your package name.
+# Use the stub_LIB_FILE substitution if your package creates a stub
+# library.
+#--------------------------------------------------------------------
+
+AC_SUBST(itclstub_LIB_FILE)
+AC_SUBST(itcl_LIB_FILE)
+AC_SUBST(SHLIB_LD_LIBS)
+
+#--------------------------------------------------------------------
+# Cache the stub library name so that the itk configure script can pick
+# it up.
+#--------------------------------------------------------------------
+
+AC_CACHE_VAL(ac_cv_itclstub_LIB_FILE, ac_cv_itclstub_LIB_FILE=${itclstub_LIB_FILE})
+
+#--------------------------------------------------------------------
+# Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl
+# file during the install process. Don't run the TCLSH_PROG through
+# ${CYGPATH} because it's being used directly by make.
+# Require that we use a tclsh shell version 8.2 or later since earlier
+# versions have bugs in the pkg_mkIndex routine.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# A Tcl shell is not available when bootstrapping!
+dnl SC_PROG_TCLSH
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+# Note: The itclConfig.sh file below is not included in the net release.
+# We subst these variables to retain compatibility with the previous
+# version of itclConfig.sh.
+
+ITCL_VERSION=${VERSION}
+AC_SUBST(ITCL_VERSION)
+
+ITCL_MAJOR_VERSION=${MAJOR_VERSION}
+AC_SUBST(ITCL_MAJOR_VERSION)
+
+ITCL_MINOR_VERSION=${MINOR_VERSION}
+AC_SUBST(ITCL_MINOR_VERSION)
+
+ITCL_RELEASE_LEVEL=${PATCHLEVEL}
+AC_SUBST(ITCL_RELEASE_LEVEL)
+
+ITCL_SRC_DIR=${ITCL_SRC_DIR_NATIVE}
+AC_SUBST(ITCL_SRC_DIR)
+
+ITCL_SH=NONE
+AC_SUBST(ITCL_SH)
+
+
+AC_OUTPUT([Makefile \
+ itclConfig.sh \
+ pkgIndex.tcl])
+
+# END CYGNUS LOCAL
diff --git a/itcl/itcl/doc/find.n b/itcl/itcl/doc/find.n
index 154cfbbf50c..5dfbedacb0e 100644
--- a/itcl/itcl/doc/find.n
+++ b/itcl/itcl/doc/find.n
@@ -19,34 +19,39 @@ find \- search for classes and objects
.SH DESCRIPTION
.PP
The \fBfind\fR command is used to find classes and objects
-that are available in the current context. A class or object is
-"available" if its access command can be found in the current
-namespace context or in the global namespace. Therefore,
-classes and objects created in the global namespace are
-available to all other namespaces in a program. Classes and
-objects created in one namespace can also be imported into
-another using the \fBnamespace import\fR command.
+that are available in the current interpreter. Classes and objects
+are reported first in the active namespace, then in all other
+namespaces in the interpreter.
.PP
The \fIoption\fR argument determines what action is carried out
by the command. The legal \fIoptions\fR (which may be abbreviated)
are:
.TP
\fBfind classes ?\fIpattern\fR?
-Returns a list of classes found in the current namespace context.
-If the optional \fIpattern\fR is specified, then the reported names
-are compared using the rules of the "\fBstring match\fR" command,
-and only matching names are reported.
+Returns a list of [incr Tcl] classes. Classes in the current
+namespace are listed first, followed by classes in all other
+namespaces in the interpreter. If the optional \fIpattern\fR
+is specified, then the reported names are compared using the rules
+of the "\fBstring match\fR" command, and only matching names are
+reported.
.sp
If a class resides in the current namespace context, this command
reports its simple name--without any qualifiers. However, if the
\fIpattern\fR contains \fB::\fR qualifiers, or if the class resides
in another context, this command reports its fully-qualified name.
+Therefore, you can use the following command to obtain a list where
+all names are fully-qualified:
+.CS
+find classes ::*
+.CE
.TP
\fBfind objects ?\fIpattern\fR? ?\fB-class \fIclassName\fR? ?\fB-isa \fIclassName\fR?
-Returns a list of objects found in the current namespace context.
-If the optional \fIpattern\fR is specified, then the reported names
-are compared using the rules of the "\fBstring match\fR" command,
-and only matching names are reported.
+Returns a list of [incr Tcl] objects. Objects in the current
+namespace are listed first, followed by objects in all other
+namespaces in the interpreter. If the optional \fIpattern\fR is
+specified, then the reported names are compared using the rules
+of the "\fBstring match\fR" command, and only matching names are
+reported.
If the optional "\fB-class\fR" parameter is specified, this list is
restricted to objects whose most-specific class is \fIclassName\fR.
If the optional "\fB-isa\fR" parameter is specified, this list is
@@ -57,6 +62,11 @@ If an object resides in the current namespace context, this command
reports its simple name--without any qualifiers. However, if the
\fIpattern\fR contains \fB::\fR qualifiers, or if the object resides
in another context, this command reports its fully-qualified name.
+Therefore, you can use the following command to obtain a list where
+all names are fully-qualified:
+.CS
+find objects ::*
+.CE
.SH KEYWORDS
class, object, search, import
diff --git a/itcl/itcl/doc/itcl_info.n b/itcl/itcl/doc/itcl_info.n
index 083616a3503..454da934788 100644
--- a/itcl/itcl/doc/itcl_info.n
+++ b/itcl/itcl/doc/itcl_info.n
@@ -22,7 +22,7 @@ itcl_info \- query info regarding classes and objects (obsolete)
.PP
This command is considered obsolete, but is retained for
backward-compatibility with earlier versions of \fB[incr\ Tcl]\fR.
-It has been replaced by the "\fBinfo classes\fR" and "\fBinfo objects\fR"
+It has been replaced by the "\fBfind classes\fR" and "\fBfind objects\fR"
commands, which should be used for any new development.
.PP
diff --git a/itcl/itcl/doc/scope.n b/itcl/itcl/doc/scope.n
index 690a99e7511..f49591e435d 100644
--- a/itcl/itcl/doc/scope.n
+++ b/itcl/itcl/doc/scope.n
@@ -7,7 +7,7 @@
'\" RCS: $Id$
'\"
.so man.macros
-.TH scope n "" Tcl "[incr\ Tcl]"
+.TH scope n "" itcl "[incr\ Tcl]"
.BS
'\" Note: do not modify the .SH NAME line immediately below!
.SH NAME
diff --git a/itcl/itcl/generic/itcl.decls b/itcl/itcl/generic/itcl.decls
new file mode 100644
index 00000000000..a644f17c2e2
--- /dev/null
+++ b/itcl/itcl/generic/itcl.decls
@@ -0,0 +1,111 @@
+# itcl.decls --
+#
+# This file contains the declarations for all supported public
+# functions that are exported by the Itcl library via the stubs table.
+# This file is used to generate the itclDecls.h, itclPlatDecls.h,
+# itclStub.c, and itclPlatStub.c files.
+#
+#
+# Copyright (c) 1998-1999 by Scriptics Corporation.
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: $Id$
+
+library itcl
+
+# Define the itcl interface with several sub interfaces:
+# itclPlat - platform specific public
+# itclInt - generic private
+# itclPlatInt - platform specific private
+
+interface itcl
+hooks {itclInt}
+
+# Declare each of the functions in the public Tcl interface. Note that
+# the an index should never be reused for a different function in order
+# to preserve backwards compatibility.
+
+declare 0 generic {
+ int Itcl_Init(Tcl_Interp *interp)
+}
+declare 1 generic {
+ int Itcl_SafeInit(Tcl_Interp *interp)
+}
+declare 2 generic {
+ int Itcl_RegisterC(Tcl_Interp *interp, char *name, \
+ Tcl_CmdProc *proc, ClientData clientData, \
+ Tcl_CmdDeleteProc *deleteProc)
+}
+declare 3 generic {
+ int Itcl_RegisterObjC (Tcl_Interp *interp, char *name, \
+ Tcl_ObjCmdProc *proc, ClientData clientData, \
+ Tcl_CmdDeleteProc *deleteProc)
+}
+declare 4 generic {
+ int Itcl_FindC(Tcl_Interp *interp, char *name, Tcl_CmdProc **argProcPtr, \
+ Tcl_ObjCmdProc **objProcPtr, ClientData *cDataPtr)
+}
+declare 5 generic {
+ void Itcl_InitStack(Itcl_Stack *stack)
+}
+declare 6 generic {
+ void Itcl_DeleteStack(Itcl_Stack *stack)
+}
+declare 7 generic {
+ void Itcl_PushStack(ClientData cdata, Itcl_Stack *stack)
+}
+declare 8 generic {
+ ClientData Itcl_PopStack(Itcl_Stack *stack)
+}
+declare 9 generic {
+ ClientData Itcl_PeekStack(Itcl_Stack *stack)
+}
+declare 10 generic {
+ ClientData Itcl_GetStackValue(Itcl_Stack *stack, int pos)
+}
+declare 11 generic {
+ void Itcl_InitList(Itcl_List *listPtr)
+}
+declare 12 generic {
+ void Itcl_DeleteList(Itcl_List *listPtr)
+}
+declare 13 generic {
+ Itcl_ListElem* Itcl_CreateListElem(Itcl_List *listPtr)
+}
+declare 14 generic {
+ Itcl_ListElem* Itcl_DeleteListElem(Itcl_ListElem *elemPtr)
+}
+declare 15 generic {
+ Itcl_ListElem* Itcl_InsertList(Itcl_List *listPtr, ClientData val)
+}
+declare 16 generic {
+ Itcl_ListElem* Itcl_InsertListElem (Itcl_ListElem *pos, ClientData val)
+}
+declare 17 generic {
+ Itcl_ListElem* Itcl_AppendList(Itcl_List *listPtr, ClientData val)
+}
+declare 18 generic {
+ Itcl_ListElem* Itcl_AppendListElem(Itcl_ListElem *pos, ClientData val)
+}
+declare 19 generic {
+ void Itcl_SetListValue(Itcl_ListElem *elemPtr, ClientData val)
+}
+declare 20 generic {
+ void Itcl_EventuallyFree(ClientData cdata, Tcl_FreeProc *fproc)
+}
+declare 21 generic {
+ void Itcl_PreserveData(ClientData cdata)
+}
+declare 22 generic {
+ void Itcl_ReleaseData(ClientData cdata)
+}
+declare 23 generic {
+ Itcl_InterpState Itcl_SaveInterpState(Tcl_Interp* interp, int status)
+}
+declare 24 generic {
+ int Itcl_RestoreInterpState(Tcl_Interp* interp, Itcl_InterpState state)
+}
+declare 25 generic {
+ void Itcl_DiscardInterpState(Itcl_InterpState state)
+}
diff --git a/itcl/itcl/generic/itcl.h b/itcl/itcl/generic/itcl.h
index fa4c2d36e9e..4e0ad39a2d6 100644
--- a/itcl/itcl/generic/itcl.h
+++ b/itcl/itcl/generic/itcl.h
@@ -39,6 +39,9 @@
* mmclennan@lucent.com
* http://www.tcltk.com/itcl
*
+ * modified for Stubs 5/20/1999 by
+ * David Gravereaux <davygrvy@bigfoot.com>
+ *
* RCS: $Id$
* ========================================================================
* Copyright (c) 1993-1998 Lucent Technologies, Inc.
@@ -51,10 +54,21 @@
#include "tcl.h"
-#define ITCL_VERSION "3.0"
-#define ITCL_PATCH_LEVEL "3.0"
+#undef TCL_STORAGE_CLASS
+#ifdef BUILD_itcl
+# define TCL_STORAGE_CLASS DLLEXPORT
+#else
+# ifdef USE_ITCL_STUBS
+# define TCL_STORAGE_CLASS
+# else
+# define TCL_STORAGE_CLASS DLLIMPORT
+# endif
+#endif
+
+#define ITCL_VERSION "3.2"
+#define ITCL_PATCH_LEVEL "3.2.0"
#define ITCL_MAJOR_VERSION 3
-#define ITCL_MINOR_VERSION 0
+#define ITCL_MINOR_VERSION 2
#define ITCL_RELEASE_LEVEL 0
/*
@@ -66,13 +80,6 @@
#ifndef RESOURCE_INCLUDED
-#include "tclInt.h"
-
-#ifdef BUILD_itcl
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
/*
* Protection levels:
*
@@ -130,55 +137,32 @@ typedef struct Itcl_InterpState_ *Itcl_InterpState;
/*
- * Exported functions
+ * Include the public function declarations that are accessible via
+ * the stubs table.
*/
-EXTERN int Itcl_Init _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN int Itcl_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
-
-EXTERN int Itcl_RegisterC _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, Tcl_CmdProc *proc, ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc));
-EXTERN int Itcl_RegisterObjC _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, Tcl_ObjCmdProc *proc, ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc));
-EXTERN int Itcl_FindC _ANSI_ARGS_((Tcl_Interp *interp, char *name,
- Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc **objProcPtr,
- ClientData *cDataPtr));
-
-EXTERN void Itcl_InitStack _ANSI_ARGS_((Itcl_Stack *stack));
-EXTERN void Itcl_DeleteStack _ANSI_ARGS_((Itcl_Stack *stack));
-EXTERN void Itcl_PushStack _ANSI_ARGS_((ClientData cdata,
- Itcl_Stack *stack));
-EXTERN ClientData Itcl_PopStack _ANSI_ARGS_((Itcl_Stack *stack));
-EXTERN ClientData Itcl_PeekStack _ANSI_ARGS_((Itcl_Stack *stack));
-EXTERN ClientData Itcl_GetStackValue _ANSI_ARGS_((Itcl_Stack *stack,
- int pos));
-
-EXTERN void Itcl_InitList _ANSI_ARGS_((Itcl_List *listPtr));
-EXTERN void Itcl_DeleteList _ANSI_ARGS_((Itcl_List *listPtr));
-EXTERN Itcl_ListElem* Itcl_CreateListElem _ANSI_ARGS_((Itcl_List *listPtr));
-EXTERN Itcl_ListElem* Itcl_DeleteListElem _ANSI_ARGS_((Itcl_ListElem *elemPtr));
-EXTERN Itcl_ListElem* Itcl_InsertList _ANSI_ARGS_((Itcl_List *listPtr,
- ClientData val));
-EXTERN Itcl_ListElem* Itcl_InsertListElem _ANSI_ARGS_((Itcl_ListElem *pos,
- ClientData val));
-EXTERN Itcl_ListElem* Itcl_AppendList _ANSI_ARGS_((Itcl_List *listPtr,
- ClientData val));
-EXTERN Itcl_ListElem* Itcl_AppendListElem _ANSI_ARGS_((Itcl_ListElem *pos,
- ClientData val));
-EXTERN void Itcl_SetListValue _ANSI_ARGS_((Itcl_ListElem *elemPtr,
- ClientData val));
-
-EXTERN void Itcl_EventuallyFree _ANSI_ARGS_((ClientData cdata,
- Tcl_FreeProc *fproc));
-EXTERN void Itcl_PreserveData _ANSI_ARGS_((ClientData cdata));
-EXTERN void Itcl_ReleaseData _ANSI_ARGS_((ClientData cdata));
-
-EXTERN Itcl_InterpState Itcl_SaveInterpState _ANSI_ARGS_((Tcl_Interp* interp,
- int status));
-EXTERN int Itcl_RestoreInterpState _ANSI_ARGS_((Tcl_Interp* interp,
- Itcl_InterpState state));
-EXTERN void Itcl_DiscardInterpState _ANSI_ARGS_((Itcl_InterpState state));
+
+#include "itclDecls.h"
+
+
+/*
+ * Itcl_InitStubs is used by extensions like Itk that can be linked
+ * against the itcl stubs library. If we are not using stubs
+ * then this reduces to package require.
+ */
+
+#ifdef USE_ITCL_STUBS
+
+char * Itcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,
+ char *version, int exact));
+#else
+#define Itcl_InitStubs(interp, version, exact) \
+ Tcl_PkgRequire(interp, "Itcl", version, exact)
+#endif
+
+/*
+ * Public functions that are not accessible via the stubs table.
+ */
+
#endif /* RESOURCE_INCLUDED */
diff --git a/itcl/itcl/generic/itclDecls.h b/itcl/itcl/generic/itclDecls.h
new file mode 100644
index 00000000000..aeb220d1c48
--- /dev/null
+++ b/itcl/itcl/generic/itclDecls.h
@@ -0,0 +1,263 @@
+/*
+ * itclDecls.h --
+ *
+ * Declarations of functions in the platform independent public Itcl API.
+ *
+ * Copyright (c) 1998-1999 by XXXX
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: $Id$
+ */
+
+#ifndef _ITCLDECLS
+#define _ITCLDECLS
+
+/*
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
+ * script. Any modifications to the function declarations below should be made
+ * in the itcl/generic/tcl.decls script.
+ */
+
+/* !BEGIN!: Do not edit below this line. */
+
+/*
+ * Exported function declarations:
+ */
+
+/* 0 */
+EXTERN int Itcl_Init _ANSI_ARGS_((Tcl_Interp * interp));
+/* 1 */
+EXTERN int Itcl_SafeInit _ANSI_ARGS_((Tcl_Interp * interp));
+/* 2 */
+EXTERN int Itcl_RegisterC _ANSI_ARGS_((Tcl_Interp * interp,
+ char * name, Tcl_CmdProc * proc,
+ ClientData clientData,
+ Tcl_CmdDeleteProc * deleteProc));
+/* 3 */
+EXTERN int Itcl_RegisterObjC _ANSI_ARGS_((Tcl_Interp * interp,
+ char * name, Tcl_ObjCmdProc * proc,
+ ClientData clientData,
+ Tcl_CmdDeleteProc * deleteProc));
+/* 4 */
+EXTERN int Itcl_FindC _ANSI_ARGS_((Tcl_Interp * interp,
+ char * name, Tcl_CmdProc ** argProcPtr,
+ Tcl_ObjCmdProc ** objProcPtr,
+ ClientData * cDataPtr));
+/* 5 */
+EXTERN void Itcl_InitStack _ANSI_ARGS_((Itcl_Stack * stack));
+/* 6 */
+EXTERN void Itcl_DeleteStack _ANSI_ARGS_((Itcl_Stack * stack));
+/* 7 */
+EXTERN void Itcl_PushStack _ANSI_ARGS_((ClientData cdata,
+ Itcl_Stack * stack));
+/* 8 */
+EXTERN ClientData Itcl_PopStack _ANSI_ARGS_((Itcl_Stack * stack));
+/* 9 */
+EXTERN ClientData Itcl_PeekStack _ANSI_ARGS_((Itcl_Stack * stack));
+/* 10 */
+EXTERN ClientData Itcl_GetStackValue _ANSI_ARGS_((Itcl_Stack * stack,
+ int pos));
+/* 11 */
+EXTERN void Itcl_InitList _ANSI_ARGS_((Itcl_List * listPtr));
+/* 12 */
+EXTERN void Itcl_DeleteList _ANSI_ARGS_((Itcl_List * listPtr));
+/* 13 */
+EXTERN Itcl_ListElem* Itcl_CreateListElem _ANSI_ARGS_((Itcl_List * listPtr));
+/* 14 */
+EXTERN Itcl_ListElem* Itcl_DeleteListElem _ANSI_ARGS_((
+ Itcl_ListElem * elemPtr));
+/* 15 */
+EXTERN Itcl_ListElem* Itcl_InsertList _ANSI_ARGS_((Itcl_List * listPtr,
+ ClientData val));
+/* 16 */
+EXTERN Itcl_ListElem* Itcl_InsertListElem _ANSI_ARGS_((Itcl_ListElem * pos,
+ ClientData val));
+/* 17 */
+EXTERN Itcl_ListElem* Itcl_AppendList _ANSI_ARGS_((Itcl_List * listPtr,
+ ClientData val));
+/* 18 */
+EXTERN Itcl_ListElem* Itcl_AppendListElem _ANSI_ARGS_((Itcl_ListElem * pos,
+ ClientData val));
+/* 19 */
+EXTERN void Itcl_SetListValue _ANSI_ARGS_((
+ Itcl_ListElem * elemPtr, ClientData val));
+/* 20 */
+EXTERN void Itcl_EventuallyFree _ANSI_ARGS_((ClientData cdata,
+ Tcl_FreeProc * fproc));
+/* 21 */
+EXTERN void Itcl_PreserveData _ANSI_ARGS_((ClientData cdata));
+/* 22 */
+EXTERN void Itcl_ReleaseData _ANSI_ARGS_((ClientData cdata));
+/* 23 */
+EXTERN Itcl_InterpState Itcl_SaveInterpState _ANSI_ARGS_((
+ Tcl_Interp* interp, int status));
+/* 24 */
+EXTERN int Itcl_RestoreInterpState _ANSI_ARGS_((
+ Tcl_Interp* interp, Itcl_InterpState state));
+/* 25 */
+EXTERN void Itcl_DiscardInterpState _ANSI_ARGS_((
+ Itcl_InterpState state));
+
+typedef struct ItclStubHooks {
+ struct ItclIntStubs *itclIntStubs;
+} ItclStubHooks;
+
+typedef struct ItclStubs {
+ int magic;
+ struct ItclStubHooks *hooks;
+
+ int (*itcl_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 0 */
+ int (*itcl_SafeInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 1 */
+ int (*itcl_RegisterC) _ANSI_ARGS_((Tcl_Interp * interp, char * name, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 2 */
+ int (*itcl_RegisterObjC) _ANSI_ARGS_((Tcl_Interp * interp, char * name, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 3 */
+ int (*itcl_FindC) _ANSI_ARGS_((Tcl_Interp * interp, char * name, Tcl_CmdProc ** argProcPtr, Tcl_ObjCmdProc ** objProcPtr, ClientData * cDataPtr)); /* 4 */
+ void (*itcl_InitStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 5 */
+ void (*itcl_DeleteStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 6 */
+ void (*itcl_PushStack) _ANSI_ARGS_((ClientData cdata, Itcl_Stack * stack)); /* 7 */
+ ClientData (*itcl_PopStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 8 */
+ ClientData (*itcl_PeekStack) _ANSI_ARGS_((Itcl_Stack * stack)); /* 9 */
+ ClientData (*itcl_GetStackValue) _ANSI_ARGS_((Itcl_Stack * stack, int pos)); /* 10 */
+ void (*itcl_InitList) _ANSI_ARGS_((Itcl_List * listPtr)); /* 11 */
+ void (*itcl_DeleteList) _ANSI_ARGS_((Itcl_List * listPtr)); /* 12 */
+ Itcl_ListElem* (*itcl_CreateListElem) _ANSI_ARGS_((Itcl_List * listPtr)); /* 13 */
+ Itcl_ListElem* (*itcl_DeleteListElem) _ANSI_ARGS_((Itcl_ListElem * elemPtr)); /* 14 */
+ Itcl_ListElem* (*itcl_InsertList) _ANSI_ARGS_((Itcl_List * listPtr, ClientData val)); /* 15 */
+ Itcl_ListElem* (*itcl_InsertListElem) _ANSI_ARGS_((Itcl_ListElem * pos, ClientData val)); /* 16 */
+ Itcl_ListElem* (*itcl_AppendList) _ANSI_ARGS_((Itcl_List * listPtr, ClientData val)); /* 17 */
+ Itcl_ListElem* (*itcl_AppendListElem) _ANSI_ARGS_((Itcl_ListElem * pos, ClientData val)); /* 18 */
+ void (*itcl_SetListValue) _ANSI_ARGS_((Itcl_ListElem * elemPtr, ClientData val)); /* 19 */
+ void (*itcl_EventuallyFree) _ANSI_ARGS_((ClientData cdata, Tcl_FreeProc * fproc)); /* 20 */
+ void (*itcl_PreserveData) _ANSI_ARGS_((ClientData cdata)); /* 21 */
+ void (*itcl_ReleaseData) _ANSI_ARGS_((ClientData cdata)); /* 22 */
+ Itcl_InterpState (*itcl_SaveInterpState) _ANSI_ARGS_((Tcl_Interp* interp, int status)); /* 23 */
+ int (*itcl_RestoreInterpState) _ANSI_ARGS_((Tcl_Interp* interp, Itcl_InterpState state)); /* 24 */
+ void (*itcl_DiscardInterpState) _ANSI_ARGS_((Itcl_InterpState state)); /* 25 */
+} ItclStubs;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern ItclStubs *itclStubsPtr;
+#ifdef __cplusplus
+}
+#endif
+
+#if defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS)
+
+/*
+ * Inline function declarations:
+ */
+
+#ifndef Itcl_Init
+#define Itcl_Init \
+ (itclStubsPtr->itcl_Init) /* 0 */
+#endif
+#ifndef Itcl_SafeInit
+#define Itcl_SafeInit \
+ (itclStubsPtr->itcl_SafeInit) /* 1 */
+#endif
+#ifndef Itcl_RegisterC
+#define Itcl_RegisterC \
+ (itclStubsPtr->itcl_RegisterC) /* 2 */
+#endif
+#ifndef Itcl_RegisterObjC
+#define Itcl_RegisterObjC \
+ (itclStubsPtr->itcl_RegisterObjC) /* 3 */
+#endif
+#ifndef Itcl_FindC
+#define Itcl_FindC \
+ (itclStubsPtr->itcl_FindC) /* 4 */
+#endif
+#ifndef Itcl_InitStack
+#define Itcl_InitStack \
+ (itclStubsPtr->itcl_InitStack) /* 5 */
+#endif
+#ifndef Itcl_DeleteStack
+#define Itcl_DeleteStack \
+ (itclStubsPtr->itcl_DeleteStack) /* 6 */
+#endif
+#ifndef Itcl_PushStack
+#define Itcl_PushStack \
+ (itclStubsPtr->itcl_PushStack) /* 7 */
+#endif
+#ifndef Itcl_PopStack
+#define Itcl_PopStack \
+ (itclStubsPtr->itcl_PopStack) /* 8 */
+#endif
+#ifndef Itcl_PeekStack
+#define Itcl_PeekStack \
+ (itclStubsPtr->itcl_PeekStack) /* 9 */
+#endif
+#ifndef Itcl_GetStackValue
+#define Itcl_GetStackValue \
+ (itclStubsPtr->itcl_GetStackValue) /* 10 */
+#endif
+#ifndef Itcl_InitList
+#define Itcl_InitList \
+ (itclStubsPtr->itcl_InitList) /* 11 */
+#endif
+#ifndef Itcl_DeleteList
+#define Itcl_DeleteList \
+ (itclStubsPtr->itcl_DeleteList) /* 12 */
+#endif
+#ifndef Itcl_CreateListElem
+#define Itcl_CreateListElem \
+ (itclStubsPtr->itcl_CreateListElem) /* 13 */
+#endif
+#ifndef Itcl_DeleteListElem
+#define Itcl_DeleteListElem \
+ (itclStubsPtr->itcl_DeleteListElem) /* 14 */
+#endif
+#ifndef Itcl_InsertList
+#define Itcl_InsertList \
+ (itclStubsPtr->itcl_InsertList) /* 15 */
+#endif
+#ifndef Itcl_InsertListElem
+#define Itcl_InsertListElem \
+ (itclStubsPtr->itcl_InsertListElem) /* 16 */
+#endif
+#ifndef Itcl_AppendList
+#define Itcl_AppendList \
+ (itclStubsPtr->itcl_AppendList) /* 17 */
+#endif
+#ifndef Itcl_AppendListElem
+#define Itcl_AppendListElem \
+ (itclStubsPtr->itcl_AppendListElem) /* 18 */
+#endif
+#ifndef Itcl_SetListValue
+#define Itcl_SetListValue \
+ (itclStubsPtr->itcl_SetListValue) /* 19 */
+#endif
+#ifndef Itcl_EventuallyFree
+#define Itcl_EventuallyFree \
+ (itclStubsPtr->itcl_EventuallyFree) /* 20 */
+#endif
+#ifndef Itcl_PreserveData
+#define Itcl_PreserveData \
+ (itclStubsPtr->itcl_PreserveData) /* 21 */
+#endif
+#ifndef Itcl_ReleaseData
+#define Itcl_ReleaseData \
+ (itclStubsPtr->itcl_ReleaseData) /* 22 */
+#endif
+#ifndef Itcl_SaveInterpState
+#define Itcl_SaveInterpState \
+ (itclStubsPtr->itcl_SaveInterpState) /* 23 */
+#endif
+#ifndef Itcl_RestoreInterpState
+#define Itcl_RestoreInterpState \
+ (itclStubsPtr->itcl_RestoreInterpState) /* 24 */
+#endif
+#ifndef Itcl_DiscardInterpState
+#define Itcl_DiscardInterpState \
+ (itclStubsPtr->itcl_DiscardInterpState) /* 25 */
+#endif
+
+#endif /* defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS) */
+
+/* !END!: Do not edit above this line. */
+
+#endif /* _ITCLDECLS */
+
diff --git a/itcl/itcl/generic/itclInt.decls b/itcl/itcl/generic/itclInt.decls
new file mode 100644
index 00000000000..50d16764783
--- /dev/null
+++ b/itcl/itcl/generic/itclInt.decls
@@ -0,0 +1,500 @@
+# itclInt.decls --
+#
+# This file contains the declarations for all unsupported
+# functions that are exported by the Tcl library. This file
+# is used to generate the itclIntDecls.h and itclIntStub.c
+# files
+#
+# Copyright (c) 1998-1999 by Scriptics Corporation.
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id$
+
+library itcl
+
+# Define the unsupported generic interfaces.
+
+interface itclInt
+
+
+#
+# Functions used within the package, but not considered "public"
+#
+
+declare 0 generic {
+ int Itcl_IsClassNamespace(Tcl_Namespace *namesp)
+}
+declare 1 generic {
+ int Itcl_IsClass (Tcl_Command cmd)
+}
+declare 2 generic {
+ ItclClass* Itcl_FindClass (Tcl_Interp* interp, char* path, int autoload)
+}
+declare 3 generic {
+ int Itcl_FindObject (Tcl_Interp *interp, char *name, ItclObject **roPtr)
+}
+declare 4 generic {
+ int Itcl_IsObject (Tcl_Command cmd)
+}
+declare 5 generic {
+ int Itcl_ObjectIsa (ItclObject *contextObj, ItclClass *cdefn)
+}
+declare 6 generic {
+ int Itcl_Protection (Tcl_Interp *interp, int newLevel)
+}
+declare 7 generic {
+ char* Itcl_ProtectionStr (int pLevel)
+}
+declare 8 generic {
+ int Itcl_CanAccess (ItclMember* memberPtr, Tcl_Namespace* fromNsPtr)
+}
+declare 9 generic {
+ int Itcl_CanAccessFunc (ItclMemberFunc* mfunc, Tcl_Namespace* fromNsPtr)
+}
+declare 10 generic {
+ Tcl_Namespace* Itcl_GetTrueNamespace (Tcl_Interp *interp, \
+ ItclObjectInfo *info)
+}
+declare 11 generic {
+ void Itcl_ParseNamespPath (char *name, Tcl_DString *buffer, \
+ char **head, char **tail)
+}
+declare 12 generic {
+ int Itcl_DecodeScopedCommand (Tcl_Interp *interp, char *name, \
+ Tcl_Namespace **rNsPtr, char **rCmdPtr)
+}
+declare 13 generic {
+ int Itcl_EvalArgs (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
+}
+declare 14 generic {
+ Tcl_Obj* Itcl_CreateArgs (Tcl_Interp *interp, char *string, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 15 generic {
+ int Itcl_PushContext (Tcl_Interp *interp, ItclMember *member, \
+ ItclClass *contextClass, ItclObject *contextObj, \
+ ItclContext *contextPtr)
+}
+declare 16 generic {
+ void Itcl_PopContext (Tcl_Interp *interp, ItclContext *contextPtr)
+}
+declare 17 generic {
+ int Itcl_GetContext (Tcl_Interp *interp, ItclClass **cdefnPtr, \
+ ItclObject **odefnPtr)
+}
+declare 18 generic {
+ void Itcl_InitHierIter (ItclHierIter *iter, ItclClass *cdefn)
+}
+declare 19 generic {
+ void Itcl_DeleteHierIter (ItclHierIter *iter)
+}
+declare 20 generic {
+ ItclClass* Itcl_AdvanceHierIter (ItclHierIter *iter)
+}
+declare 21 generic {
+ int Itcl_FindClassesCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 22 generic {
+ int Itcl_FindObjectsCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 23 generic {
+ int Itcl_ProtectionCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 24 generic {
+ int Itcl_DelClassCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 25 generic {
+ int Itcl_DelObjectCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 26 generic {
+ int Itcl_ScopeCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 27 generic {
+ int Itcl_CodeCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 28 generic {
+ int Itcl_StubCreateCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 29 generic {
+ int Itcl_StubExistsCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 30 generic {
+ int Itcl_IsStub (Tcl_Command cmd)
+}
+
+
+#
+# Functions for manipulating classes
+#
+
+declare 31 generic {
+ int Itcl_CreateClass (Tcl_Interp* interp, char* path, \
+ ItclObjectInfo *info, ItclClass **rPtr)
+}
+declare 32 generic {
+ int Itcl_DeleteClass (Tcl_Interp *interp, ItclClass *cdefnPtr)
+}
+declare 33 generic {
+ Tcl_Namespace* Itcl_FindClassNamespace (Tcl_Interp* interp, char* path)
+}
+declare 34 generic {
+ int Itcl_HandleClass (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 35 generic {
+ int Itcl_ClassCmdResolver (Tcl_Interp *interp, char* name, \
+ Tcl_Namespace *context, int flags, Tcl_Command *rPtr)
+}
+declare 36 generic {
+ int Itcl_ClassVarResolver (Tcl_Interp *interp, char* name, \
+ Tcl_Namespace *context, int flags, Tcl_Var *rPtr)
+}
+declare 37 generic {
+ int Itcl_ClassCompiledVarResolver (Tcl_Interp *interp, char* name, \
+ int length, Tcl_Namespace *context, Tcl_ResolvedVarInfo **rPtr)
+}
+declare 38 generic {
+ void Itcl_BuildVirtualTables (ItclClass* cdefnPtr)
+}
+declare 39 generic {
+ int Itcl_CreateVarDefn (Tcl_Interp *interp, ItclClass* cdefn, \
+ char* name, char* init, char* config, ItclVarDefn** vdefnPtr)
+}
+declare 40 generic {
+ void Itcl_DeleteVarDefn (ItclVarDefn *vdefn)
+}
+declare 41 generic {
+ char* Itcl_GetCommonVar (Tcl_Interp *interp, char *name, \
+ ItclClass *contextClass)
+}
+declare 42 generic {
+ ItclMember* Itcl_CreateMember (Tcl_Interp* interp, ItclClass *cdefn, \
+ char* name)
+}
+declare 43 generic {
+ void Itcl_DeleteMember (ItclMember *memPtr)
+}
+
+
+#
+# Functions for manipulating objects
+#
+
+declare 44 generic {
+ int Itcl_CreateObject (Tcl_Interp *interp, char* name, ItclClass *cdefn, \
+ int objc, Tcl_Obj *CONST objv[], ItclObject **roPtr)
+}
+declare 45 generic {
+ int Itcl_DeleteObject (Tcl_Interp *interp, ItclObject *contextObj)
+}
+declare 46 generic {
+ int Itcl_DestructObject (Tcl_Interp *interp, ItclObject *contextObj, \
+ int flags)
+}
+declare 47 generic {
+ int Itcl_HandleInstance (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 48 generic {
+ char* Itcl_GetInstanceVar (Tcl_Interp *interp, char *name, \
+ ItclObject *contextObj, ItclClass *contextClass)
+}
+declare 49 generic {
+ int Itcl_ScopedVarResolver (Tcl_Interp *interp, char *name, \
+ Tcl_Namespace *contextNs, int flags, Tcl_Var *rPtr)
+}
+
+
+#
+# Functions for manipulating methods and procs
+#
+
+declare 50 generic {
+ int Itcl_BodyCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 51 generic {
+ int Itcl_ConfigBodyCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 52 generic {
+ int Itcl_CreateMethod (Tcl_Interp* interp, ItclClass *cdefn, char* name, \
+ char* arglist, char* body)
+}
+declare 53 generic {
+ int Itcl_CreateProc (Tcl_Interp* interp, ItclClass *cdefn, char* name, \
+ char* arglist, char* body)
+}
+declare 54 generic {
+ int Itcl_CreateMemberFunc (Tcl_Interp* interp, ItclClass *cdefn, \
+ char* name, char* arglist, char* body, ItclMemberFunc** mfuncPtr)
+}
+declare 55 generic {
+ int Itcl_ChangeMemberFunc (Tcl_Interp* interp, ItclMemberFunc* mfunc, \
+ char* arglist, char* body)
+}
+declare 56 generic {
+ void Itcl_DeleteMemberFunc (char* cdata)
+}
+declare 57 generic {
+ int Itcl_CreateMemberCode (Tcl_Interp* interp, ItclClass *cdefn, \
+ char* arglist, char* body, ItclMemberCode** mcodePtr)
+}
+declare 58 generic {
+ void Itcl_DeleteMemberCode (char* cdata)
+}
+declare 59 generic {
+ int Itcl_GetMemberCode (Tcl_Interp* interp, ItclMember* member)
+}
+#declare 60 generic {
+# int Itcl_CompileMemberCodeBody (Tcl_Interp *interp, ItclMember *member, \
+# char *desc, Tcl_Obj *bodyPtr)
+#}
+declare 61 generic {
+ int Itcl_EvalMemberCode (Tcl_Interp *interp, ItclMemberFunc *mfunc, \
+ ItclMember *member, ItclObject *contextObj, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 62 generic {
+ int Itcl_CreateArgList (Tcl_Interp* interp, char* decl, int* argcPtr, \
+ CompiledLocal** argPtr)
+}
+declare 63 generic {
+ CompiledLocal* Itcl_CreateArg (char* name, char* init)
+}
+declare 64 generic {
+ void Itcl_DeleteArgList (CompiledLocal *arglist)
+}
+declare 65 generic {
+ Tcl_Obj* Itcl_ArgList (int argc, CompiledLocal* arglist)
+}
+declare 66 generic {
+ int Itcl_EquivArgLists (CompiledLocal* arg1, int arg1c, \
+ CompiledLocal* arg2, int arg2c)
+}
+declare 67 generic {
+ void Itcl_GetMemberFuncUsage (ItclMemberFunc *mfunc, \
+ ItclObject *contextObj, Tcl_Obj *objPtr)
+}
+declare 68 generic {
+ int Itcl_ExecMethod (ClientData clientData, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 69 generic {
+ int Itcl_ExecProc (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 70 generic {
+ int Itcl_AssignArgs (Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], \
+ ItclMemberFunc *mfunc)
+}
+declare 71 generic {
+ int Itcl_ConstructBase (Tcl_Interp *interp, ItclObject *contextObj, \
+ ItclClass *contextClass)
+}
+declare 72 generic {
+ int Itcl_InvokeMethodIfExists (Tcl_Interp *interp, char *name, \
+ ItclClass *contextClass, ItclObject *contextObj, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+#declare 73 generic {
+# int Itcl_EvalBody (Tcl_Interp *interp, Tcl_Obj *bodyPtr)
+#}
+declare 74 generic {
+ int Itcl_ReportFuncErrors (Tcl_Interp* interp, ItclMemberFunc *mfunc, \
+ ItclObject *contextObj, int result)
+}
+
+
+#
+# Commands for parsing class definitions
+#
+
+declare 75 generic {
+ int Itcl_ParseInit (Tcl_Interp *interp, ItclObjectInfo *info)
+}
+declare 76 generic {
+ int Itcl_ClassCmd (ClientData clientData, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 77 generic {
+ int Itcl_ClassInheritCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 78 generic {
+ int Itcl_ClassProtectionCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 79 generic {
+ int Itcl_ClassConstructorCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 80 generic {
+ int Itcl_ClassDestructorCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 81 generic {
+ int Itcl_ClassMethodCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 82 generic {
+ int Itcl_ClassProcCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 83 generic {
+ int Itcl_ClassVariableCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 84 generic {
+ int Itcl_ClassCommonCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 85 generic {
+ int Itcl_ParseVarResolver (Tcl_Interp *interp, char* name, \
+ Tcl_Namespace *contextNs, int flags, Tcl_Var* rPtr)
+}
+
+
+#
+# Commands in the "builtin" namespace
+#
+
+declare 86 generic {
+ int Itcl_BiInit (Tcl_Interp *interp)
+}
+declare 87 generic {
+ int Itcl_InstallBiMethods (Tcl_Interp *interp, ItclClass *cdefn)
+}
+declare 88 generic {
+ int Itcl_BiIsaCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 89 generic {
+ int Itcl_BiConfigureCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 90 generic {
+ int Itcl_BiCgetCmd (ClientData clientData, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 91 generic {
+ int Itcl_BiChainCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 92 generic {
+ int Itcl_BiInfoClassCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 93 generic {
+ int Itcl_BiInfoInheritCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 94 generic {
+ int Itcl_BiInfoHeritageCmd (ClientData dummy, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 95 generic {
+ int Itcl_BiInfoFunctionCmd (ClientData dummy, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 96 generic {
+ int Itcl_BiInfoVariableCmd (ClientData dummy, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 97 generic {
+ int Itcl_BiInfoBodyCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 98 generic {
+ int Itcl_BiInfoArgsCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 99 generic {
+ int Itcl_DefaultInfoCmd (ClientData dummy, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+
+
+#
+# Ensembles
+#
+
+declare 100 generic {
+ int Itcl_EnsembleInit (Tcl_Interp *interp)
+}
+declare 101 generic {
+ int Itcl_CreateEnsemble (Tcl_Interp *interp, char* ensName)
+}
+declare 102 generic {
+ int Itcl_AddEnsemblePart (Tcl_Interp *interp, char* ensName, \
+ char* partName, char* usageInfo, Tcl_ObjCmdProc *objProc, \
+ ClientData clientData, Tcl_CmdDeleteProc *deleteProc)
+}
+declare 103 generic {
+ int Itcl_GetEnsemblePart (Tcl_Interp *interp, char *ensName, \
+ char *partName, Tcl_CmdInfo *infoPtr)
+}
+declare 104 generic {
+ int Itcl_IsEnsemble (Tcl_CmdInfo* infoPtr)
+}
+declare 105 generic {
+ int Itcl_GetEnsembleUsage (Tcl_Interp *interp, char *ensName, \
+ Tcl_Obj *objPtr)
+}
+declare 106 generic {
+ int Itcl_GetEnsembleUsageForObj (Tcl_Interp *interp, Tcl_Obj *ensObjPtr, \
+ Tcl_Obj *objPtr)
+}
+declare 107 generic {
+ int Itcl_EnsembleCmd (ClientData clientData, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 108 generic {
+ int Itcl_EnsPartCmd (ClientData clientData, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+declare 109 generic {
+ int Itcl_EnsembleErrorCmd (ClientData clientData, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+
+
+#
+# Commands provided for backward compatibility
+#
+
+declare 110 generic {
+ int Itcl_OldInit (Tcl_Interp* interp, ItclObjectInfo* info)
+}
+declare 111 generic {
+ int Itcl_InstallOldBiMethods (Tcl_Interp *interp, ItclClass *cdefn)
+}
+
+
+#
+# Things that should be in the Tcl core.
+#
+
+declare 112 generic {
+ Tcl_CallFrame* _Tcl_GetCallFrame (Tcl_Interp *interp, int level)
+}
+declare 113 generic {
+ Tcl_CallFrame* _Tcl_ActivateCallFrame (Tcl_Interp *interp, \
+ Tcl_CallFrame *framePtr)
+}
+declare 114 generic {
+ Var* _TclNewVar (void)
+}
+declare 115 generic {
+ void Itcl_Assert (char *testExpr, char *fileName, int lineNum)
+}
diff --git a/itcl/itcl/generic/itclInt.h b/itcl/itcl/generic/itclInt.h
index 9ca1323dab0..a3bb712729e 100644
--- a/itcl/itcl/generic/itclInt.h
+++ b/itcl/itcl/generic/itclInt.h
@@ -57,24 +57,6 @@
# define TCL_STORAGE_CLASS DLLEXPORT
#endif
-/*
- * Since the Tcl/Tk distribution doesn't perform any asserts,
- * dynamic loading can fail to find the __assert function.
- * As a workaround, we'll include our own.
- */
-#undef assert
-#ifdef NDEBUG
-#define assert(EX) ((void)0)
-#else
-EXTERN void Itcl_Assert _ANSI_ARGS_((char *testExpr, char *fileName, int lineNum)
-);
-#if defined(__STDC__)
-#define assert(EX) (void)((EX) || (Itcl_Assert(#EX, __FILE__, __LINE__), 0))
-#else
-#define assert(EX) (void)((EX) || (Itcl_Assert("EX", __FILE__, __LINE__), 0))
-#endif /* __STDC__ */
-#endif /* NDEBUG */
-
/*
* Common info for managing all known objects.
@@ -257,277 +239,24 @@ typedef struct ItclContext {
} ItclContext;
-/*
- * Functions used within the package, but not considered "public"
- */
-
-EXTERN int Itcl_IsClassNamespace _ANSI_ARGS_((Tcl_Namespace *namesp));
-EXTERN int Itcl_IsClass _ANSI_ARGS_((Tcl_Command cmd));
-EXTERN ItclClass* Itcl_FindClass _ANSI_ARGS_((Tcl_Interp* interp,
- char* path, int autoload));
-
-EXTERN int Itcl_FindObject _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, ItclObject **roPtr));
-EXTERN int Itcl_IsObject _ANSI_ARGS_((Tcl_Command cmd));
-EXTERN int Itcl_ObjectIsa _ANSI_ARGS_((ItclObject *contextObj,
- ItclClass *cdefn));
-
-
-EXTERN int Itcl_Protection _ANSI_ARGS_((Tcl_Interp *interp,
- int newLevel));
-EXTERN char* Itcl_ProtectionStr _ANSI_ARGS_((int pLevel));
-EXTERN int Itcl_CanAccess _ANSI_ARGS_((ItclMember* memberPtr,
- Tcl_Namespace* fromNsPtr));
-EXTERN int Itcl_CanAccessFunc _ANSI_ARGS_((ItclMemberFunc* mfunc,
- Tcl_Namespace* fromNsPtr));
-EXTERN Tcl_Namespace* Itcl_GetTrueNamespace _ANSI_ARGS_((Tcl_Interp *interp,
- ItclObjectInfo *info));
-
-EXTERN void Itcl_ParseNamespPath _ANSI_ARGS_((char *name,
- Tcl_DString *buffer, char **head, char **tail));
-EXTERN int Itcl_DecodeScopedCommand _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, Tcl_Namespace **rNsPtr, char **rCmdPtr));
-EXTERN int Itcl_EvalArgs _ANSI_ARGS_((Tcl_Interp *interp, int objc,
- Tcl_Obj *CONST objv[]));
-EXTERN Tcl_Obj* Itcl_CreateArgs _ANSI_ARGS_((Tcl_Interp *interp,
- char *string, int objc, Tcl_Obj *CONST objv[]));
-
-EXTERN int Itcl_PushContext _ANSI_ARGS_((Tcl_Interp *interp,
- ItclMember *member, ItclClass *contextClass, ItclObject *contextObj,
- ItclContext *contextPtr));
-EXTERN void Itcl_PopContext _ANSI_ARGS_((Tcl_Interp *interp,
- ItclContext *contextPtr));
-EXTERN int Itcl_GetContext _ANSI_ARGS_((Tcl_Interp *interp,
- ItclClass **cdefnPtr, ItclObject **odefnPtr));
-
-EXTERN void Itcl_InitHierIter _ANSI_ARGS_((ItclHierIter *iter,
- ItclClass *cdefn));
-EXTERN void Itcl_DeleteHierIter _ANSI_ARGS_((ItclHierIter *iter));
-EXTERN ItclClass* Itcl_AdvanceHierIter _ANSI_ARGS_((ItclHierIter *iter));
-
-EXTERN int Itcl_FindClassesCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_FindObjectsCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ProtectionCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_DelClassCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_DelObjectCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ScopeCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_CodeCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_StubCreateCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_StubExistsCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_IsStub _ANSI_ARGS_((Tcl_Command cmd));
-
-
-/*
- * Functions for manipulating classes
- */
-EXTERN int Itcl_CreateClass _ANSI_ARGS_((Tcl_Interp* interp, char* path,
- ItclObjectInfo *info, ItclClass **rPtr));
-EXTERN int Itcl_DeleteClass _ANSI_ARGS_((Tcl_Interp *interp,
- ItclClass *cdefnPtr));
-EXTERN Tcl_Namespace* Itcl_FindClassNamespace _ANSI_ARGS_((Tcl_Interp* interp,
- char* path));
-EXTERN int Itcl_HandleClass _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassCmdResolver _ANSI_ARGS_((Tcl_Interp *interp,
- char* name, Tcl_Namespace *context, int flags, Tcl_Command *rPtr));
-EXTERN int Itcl_ClassVarResolver _ANSI_ARGS_((Tcl_Interp *interp,
- char* name, Tcl_Namespace *context, int flags, Tcl_Var *rPtr));
-EXTERN int Itcl_ClassCompiledVarResolver _ANSI_ARGS_((Tcl_Interp *interp,
- char* name, int length, Tcl_Namespace *context, Tcl_ResolvedVarInfo **rPtr));
-EXTERN void Itcl_BuildVirtualTables _ANSI_ARGS_((ItclClass* cdefnPtr));
-EXTERN int Itcl_CreateVarDefn _ANSI_ARGS_((Tcl_Interp *interp,
- ItclClass* cdefn, char* name, char* init, char* config,
- ItclVarDefn** vdefnPtr));
-EXTERN void Itcl_DeleteVarDefn _ANSI_ARGS_((ItclVarDefn *vdefn));
-EXTERN char* Itcl_GetCommonVar _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, ItclClass *contextClass));
-EXTERN ItclMember* Itcl_CreateMember _ANSI_ARGS_((Tcl_Interp* interp,
- ItclClass *cdefn, char* name));
-EXTERN void Itcl_DeleteMember _ANSI_ARGS_((ItclMember *memPtr));
-
+#include "itclIntDecls.h"
/*
- * Functions for manipulating objects
- */
-EXTERN int Itcl_CreateObject _ANSI_ARGS_((Tcl_Interp *interp,
- char* name, ItclClass *cdefn, int objc, Tcl_Obj *CONST objv[],
- ItclObject **roPtr));
-EXTERN int Itcl_DeleteObject _ANSI_ARGS_((Tcl_Interp *interp,
- ItclObject *contextObj));
-EXTERN int Itcl_DestructObject _ANSI_ARGS_((Tcl_Interp *interp,
- ItclObject *contextObj, int flags));
-EXTERN int Itcl_HandleInstance _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN char* Itcl_GetInstanceVar _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, ItclObject *contextObj, ItclClass *contextClass));
-EXTERN int Itcl_ScopedVarResolver _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, Tcl_Namespace *contextNs, int flags, Tcl_Var *rPtr));
-
-
-/*
- * Functions for manipulating methods and procs
- */
-EXTERN int Itcl_BodyCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ConfigBodyCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_CreateMethod _ANSI_ARGS_((Tcl_Interp* interp,
- ItclClass *cdefn, char* name, char* arglist, char* body));
-EXTERN int Itcl_CreateProc _ANSI_ARGS_((Tcl_Interp* interp,
- ItclClass *cdefn, char* name, char* arglist, char* body));
-EXTERN int Itcl_CreateMemberFunc _ANSI_ARGS_((Tcl_Interp* interp,
- ItclClass *cdefn, char* name, char* arglist, char* body,
- ItclMemberFunc** mfuncPtr));
-EXTERN int Itcl_ChangeMemberFunc _ANSI_ARGS_((Tcl_Interp* interp,
- ItclMemberFunc* mfunc, char* arglist, char* body));
-EXTERN void Itcl_DeleteMemberFunc _ANSI_ARGS_((char* cdata));
-EXTERN int Itcl_CreateMemberCode _ANSI_ARGS_((Tcl_Interp* interp,
- ItclClass *cdefn, char* arglist, char* body, ItclMemberCode** mcodePtr));
-EXTERN void Itcl_DeleteMemberCode _ANSI_ARGS_((char* cdata));
-EXTERN int Itcl_GetMemberCode _ANSI_ARGS_((Tcl_Interp* interp,
- ItclMember* member));
-EXTERN int Itcl_CompileMemberCodeBody _ANSI_ARGS_((Tcl_Interp *interp,
- ItclMember *member, char *desc, Tcl_Obj *bodyPtr));
-EXTERN int Itcl_EvalMemberCode _ANSI_ARGS_((Tcl_Interp *interp,
- ItclMemberFunc *mfunc, ItclMember *member, ItclObject *contextObj,
- int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_CreateArgList _ANSI_ARGS_((Tcl_Interp* interp,
- char* decl, int* argcPtr, CompiledLocal** argPtr));
-EXTERN CompiledLocal* Itcl_CreateArg _ANSI_ARGS_((char* name,
- char* init));
-EXTERN void Itcl_DeleteArgList _ANSI_ARGS_((CompiledLocal *arglist));
-EXTERN Tcl_Obj* Itcl_ArgList _ANSI_ARGS_((int argc, CompiledLocal* arglist));
-EXTERN int Itcl_EquivArgLists _ANSI_ARGS_((CompiledLocal* arg1, int arg1c,
- CompiledLocal* arg2, int arg2c));
-EXTERN void Itcl_GetMemberFuncUsage _ANSI_ARGS_((ItclMemberFunc *mfunc,
- ItclObject *contextObj, Tcl_Obj *objPtr));
-EXTERN int Itcl_ExecMethod _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ExecProc _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_AssignArgs _ANSI_ARGS_((Tcl_Interp *interp,
- int objc, Tcl_Obj *CONST objv[], ItclMemberFunc *mfunc));
-EXTERN int Itcl_ConstructBase _ANSI_ARGS_((Tcl_Interp *interp,
- ItclObject *contextObj, ItclClass *contextClass));
-EXTERN int Itcl_InvokeMethodIfExists _ANSI_ARGS_((Tcl_Interp *interp,
- char *name, ItclClass *contextClass, ItclObject *contextObj,
- int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_EvalBody _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *bodyPtr));
-EXTERN int Itcl_ReportFuncErrors _ANSI_ARGS_((Tcl_Interp* interp,
- ItclMemberFunc *mfunc, ItclObject *contextObj, int result));
-
-
-/*
- * Commands for parsing class definitions
- */
-EXTERN int Itcl_ParseInit _ANSI_ARGS_((Tcl_Interp *interp,
- ItclObjectInfo *info));
-EXTERN int Itcl_ClassCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassInheritCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassProtectionCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassConstructorCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassDestructorCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassMethodCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassProcCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassVariableCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ClassCommonCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_ParseVarResolver _ANSI_ARGS_((Tcl_Interp *interp,
- char* name, Tcl_Namespace *contextNs, int flags, Tcl_Var* rPtr));
-
-
-/*
- * Commands in the "builtin" namespace
- */
-EXTERN int Itcl_BiInit _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN int Itcl_InstallBiMethods _ANSI_ARGS_((Tcl_Interp *interp,
- ItclClass *cdefn));
-EXTERN int Itcl_BiIsaCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiConfigureCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiCgetCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiChainCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiInfoClassCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiInfoInheritCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiInfoHeritageCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiInfoFunctionCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiInfoVariableCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiInfoBodyCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_BiInfoArgsCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_DefaultInfoCmd _ANSI_ARGS_((ClientData dummy,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-
-
-/*
- * Ensembles
- */
-EXTERN int Itcl_EnsembleInit _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN int Itcl_CreateEnsemble _ANSI_ARGS_((Tcl_Interp *interp,
- char* ensName));
-EXTERN int Itcl_AddEnsemblePart _ANSI_ARGS_((Tcl_Interp *interp,
- char* ensName, char* partName, char* usageInfo,
- Tcl_ObjCmdProc *objProc, ClientData clientData,
- Tcl_CmdDeleteProc *deleteProc));
-EXTERN int Itcl_GetEnsemblePart _ANSI_ARGS_((Tcl_Interp *interp,
- char *ensName, char *partName, Tcl_CmdInfo *infoPtr));
-EXTERN int Itcl_IsEnsemble _ANSI_ARGS_((Tcl_CmdInfo* infoPtr));
-EXTERN int Itcl_GetEnsembleUsage _ANSI_ARGS_((Tcl_Interp *interp,
- char *ensName, Tcl_Obj *objPtr));
-EXTERN int Itcl_GetEnsembleUsageForObj _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_Obj *ensObjPtr, Tcl_Obj *objPtr));
-EXTERN int Itcl_EnsembleCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_EnsPartCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itcl_EnsembleErrorCmd _ANSI_ARGS_((ClientData clientData,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-
-
-/*
- * Commands provided for backward compatibility
+ * Since the Tcl/Tk distribution doesn't perform any asserts,
+ * dynamic loading can fail to find the __assert function.
+ * As a workaround, we'll include our own.
*/
-EXTERN int Itcl_OldInit _ANSI_ARGS_((Tcl_Interp* interp,
- ItclObjectInfo* info));
-EXTERN int Itcl_InstallOldBiMethods _ANSI_ARGS_((Tcl_Interp *interp,
- ItclClass *cdefn));
-
-/*
- * Things that should be in the Tcl core.
- */
-EXTERN Tcl_CallFrame* _Tcl_GetCallFrame _ANSI_ARGS_((Tcl_Interp *interp,
- int level));
-EXTERN Tcl_CallFrame* _Tcl_ActivateCallFrame _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_CallFrame *framePtr));
-EXTERN Var* _TclNewVar _ANSI_ARGS_((void));
+#undef assert
+#ifdef NDEBUG
+#define assert(EX) ((void)0)
+#else
+#if defined(__STDC__)
+#define assert(EX) (void)((EX) || (Itcl_Assert(#EX, __FILE__, __LINE__), 0))
+#else
+#define assert(EX) (void)((EX) || (Itcl_Assert("EX", __FILE__, __LINE__), 0))
+#endif /* __STDC__ */
+#endif /* NDEBUG */
#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLIMPORT
diff --git a/itcl/itcl/generic/itclIntDecls.h b/itcl/itcl/generic/itclIntDecls.h
new file mode 100644
index 00000000000..fa4989a80a9
--- /dev/null
+++ b/itcl/itcl/generic/itclIntDecls.h
@@ -0,0 +1,1048 @@
+/*
+ * itclIntDecls.h --
+ *
+ * This file contains the declarations for all unsupported
+ * functions that are exported by the Tcl library. These
+ * interfaces are not guaranteed to remain the same between
+ * versions. Use at your own risk.
+ *
+ * Copyright (c) 1998-1999 by XXXX
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: $Id$
+ */
+
+#ifndef _ITCLINTDECLS
+#define _ITCLINTDECLS
+
+/*
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
+ * script. Any modifications to the function declarations below should be made
+ * in the itcl/generic/tclInt.decls script.
+ */
+
+/* !BEGIN!: Do not edit below this line. */
+
+/*
+ * Exported function declarations:
+ */
+
+/* 0 */
+EXTERN int Itcl_IsClassNamespace _ANSI_ARGS_((
+ Tcl_Namespace * namesp));
+/* 1 */
+EXTERN int Itcl_IsClass _ANSI_ARGS_((Tcl_Command cmd));
+/* 2 */
+EXTERN ItclClass* Itcl_FindClass _ANSI_ARGS_((Tcl_Interp* interp,
+ char* path, int autoload));
+/* 3 */
+EXTERN int Itcl_FindObject _ANSI_ARGS_((Tcl_Interp * interp,
+ char * name, ItclObject ** roPtr));
+/* 4 */
+EXTERN int Itcl_IsObject _ANSI_ARGS_((Tcl_Command cmd));
+/* 5 */
+EXTERN int Itcl_ObjectIsa _ANSI_ARGS_((ItclObject * contextObj,
+ ItclClass * cdefn));
+/* 6 */
+EXTERN int Itcl_Protection _ANSI_ARGS_((Tcl_Interp * interp,
+ int newLevel));
+/* 7 */
+EXTERN char* Itcl_ProtectionStr _ANSI_ARGS_((int pLevel));
+/* 8 */
+EXTERN int Itcl_CanAccess _ANSI_ARGS_((ItclMember* memberPtr,
+ Tcl_Namespace* fromNsPtr));
+/* 9 */
+EXTERN int Itcl_CanAccessFunc _ANSI_ARGS_((
+ ItclMemberFunc* mfunc,
+ Tcl_Namespace* fromNsPtr));
+/* 10 */
+EXTERN Tcl_Namespace* Itcl_GetTrueNamespace _ANSI_ARGS_((
+ Tcl_Interp * interp, ItclObjectInfo * info));
+/* 11 */
+EXTERN void Itcl_ParseNamespPath _ANSI_ARGS_((char * name,
+ Tcl_DString * buffer, char ** head,
+ char ** tail));
+/* 12 */
+EXTERN int Itcl_DecodeScopedCommand _ANSI_ARGS_((
+ Tcl_Interp * interp, char * name,
+ Tcl_Namespace ** rNsPtr, char ** rCmdPtr));
+/* 13 */
+EXTERN int Itcl_EvalArgs _ANSI_ARGS_((Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 14 */
+EXTERN Tcl_Obj* Itcl_CreateArgs _ANSI_ARGS_((Tcl_Interp * interp,
+ char * string, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 15 */
+EXTERN int Itcl_PushContext _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclMember * member,
+ ItclClass * contextClass,
+ ItclObject * contextObj,
+ ItclContext * contextPtr));
+/* 16 */
+EXTERN void Itcl_PopContext _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclContext * contextPtr));
+/* 17 */
+EXTERN int Itcl_GetContext _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclClass ** cdefnPtr,
+ ItclObject ** odefnPtr));
+/* 18 */
+EXTERN void Itcl_InitHierIter _ANSI_ARGS_((ItclHierIter * iter,
+ ItclClass * cdefn));
+/* 19 */
+EXTERN void Itcl_DeleteHierIter _ANSI_ARGS_((ItclHierIter * iter));
+/* 20 */
+EXTERN ItclClass* Itcl_AdvanceHierIter _ANSI_ARGS_((
+ ItclHierIter * iter));
+/* 21 */
+EXTERN int Itcl_FindClassesCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 22 */
+EXTERN int Itcl_FindObjectsCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 23 */
+EXTERN int Itcl_ProtectionCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 24 */
+EXTERN int Itcl_DelClassCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 25 */
+EXTERN int Itcl_DelObjectCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 26 */
+EXTERN int Itcl_ScopeCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 27 */
+EXTERN int Itcl_CodeCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 28 */
+EXTERN int Itcl_StubCreateCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 29 */
+EXTERN int Itcl_StubExistsCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 30 */
+EXTERN int Itcl_IsStub _ANSI_ARGS_((Tcl_Command cmd));
+/* 31 */
+EXTERN int Itcl_CreateClass _ANSI_ARGS_((Tcl_Interp* interp,
+ char* path, ItclObjectInfo * info,
+ ItclClass ** rPtr));
+/* 32 */
+EXTERN int Itcl_DeleteClass _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclClass * cdefnPtr));
+/* 33 */
+EXTERN Tcl_Namespace* Itcl_FindClassNamespace _ANSI_ARGS_((
+ Tcl_Interp* interp, char* path));
+/* 34 */
+EXTERN int Itcl_HandleClass _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 35 */
+EXTERN int Itcl_ClassCmdResolver _ANSI_ARGS_((
+ Tcl_Interp * interp, char* name,
+ Tcl_Namespace * context, int flags,
+ Tcl_Command * rPtr));
+/* 36 */
+EXTERN int Itcl_ClassVarResolver _ANSI_ARGS_((
+ Tcl_Interp * interp, char* name,
+ Tcl_Namespace * context, int flags,
+ Tcl_Var * rPtr));
+/* 37 */
+EXTERN int Itcl_ClassCompiledVarResolver _ANSI_ARGS_((
+ Tcl_Interp * interp, char* name, int length,
+ Tcl_Namespace * context,
+ Tcl_ResolvedVarInfo ** rPtr));
+/* 38 */
+EXTERN void Itcl_BuildVirtualTables _ANSI_ARGS_((
+ ItclClass* cdefnPtr));
+/* 39 */
+EXTERN int Itcl_CreateVarDefn _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclClass* cdefn, char* name, char* init,
+ char* config, ItclVarDefn** vdefnPtr));
+/* 40 */
+EXTERN void Itcl_DeleteVarDefn _ANSI_ARGS_((ItclVarDefn * vdefn));
+/* 41 */
+EXTERN char* Itcl_GetCommonVar _ANSI_ARGS_((Tcl_Interp * interp,
+ char * name, ItclClass * contextClass));
+/* 42 */
+EXTERN ItclMember* Itcl_CreateMember _ANSI_ARGS_((Tcl_Interp* interp,
+ ItclClass * cdefn, char* name));
+/* 43 */
+EXTERN void Itcl_DeleteMember _ANSI_ARGS_((ItclMember * memPtr));
+/* 44 */
+EXTERN int Itcl_CreateObject _ANSI_ARGS_((Tcl_Interp * interp,
+ char* name, ItclClass * cdefn, int objc,
+ Tcl_Obj *CONST objv[], ItclObject ** roPtr));
+/* 45 */
+EXTERN int Itcl_DeleteObject _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclObject * contextObj));
+/* 46 */
+EXTERN int Itcl_DestructObject _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclObject * contextObj, int flags));
+/* 47 */
+EXTERN int Itcl_HandleInstance _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 48 */
+EXTERN char* Itcl_GetInstanceVar _ANSI_ARGS_((Tcl_Interp * interp,
+ char * name, ItclObject * contextObj,
+ ItclClass * contextClass));
+/* 49 */
+EXTERN int Itcl_ScopedVarResolver _ANSI_ARGS_((
+ Tcl_Interp * interp, char * name,
+ Tcl_Namespace * contextNs, int flags,
+ Tcl_Var * rPtr));
+/* 50 */
+EXTERN int Itcl_BodyCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 51 */
+EXTERN int Itcl_ConfigBodyCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 52 */
+EXTERN int Itcl_CreateMethod _ANSI_ARGS_((Tcl_Interp* interp,
+ ItclClass * cdefn, char* name, char* arglist,
+ char* body));
+/* 53 */
+EXTERN int Itcl_CreateProc _ANSI_ARGS_((Tcl_Interp* interp,
+ ItclClass * cdefn, char* name, char* arglist,
+ char* body));
+/* 54 */
+EXTERN int Itcl_CreateMemberFunc _ANSI_ARGS_((
+ Tcl_Interp* interp, ItclClass * cdefn,
+ char* name, char* arglist, char* body,
+ ItclMemberFunc** mfuncPtr));
+/* 55 */
+EXTERN int Itcl_ChangeMemberFunc _ANSI_ARGS_((
+ Tcl_Interp* interp, ItclMemberFunc* mfunc,
+ char* arglist, char* body));
+/* 56 */
+EXTERN void Itcl_DeleteMemberFunc _ANSI_ARGS_((char* cdata));
+/* 57 */
+EXTERN int Itcl_CreateMemberCode _ANSI_ARGS_((
+ Tcl_Interp* interp, ItclClass * cdefn,
+ char* arglist, char* body,
+ ItclMemberCode** mcodePtr));
+/* 58 */
+EXTERN void Itcl_DeleteMemberCode _ANSI_ARGS_((char* cdata));
+/* 59 */
+EXTERN int Itcl_GetMemberCode _ANSI_ARGS_((Tcl_Interp* interp,
+ ItclMember* member));
+/* Slot 60 is reserved */
+/* 61 */
+EXTERN int Itcl_EvalMemberCode _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclMemberFunc * mfunc, ItclMember * member,
+ ItclObject * contextObj, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 62 */
+EXTERN int Itcl_CreateArgList _ANSI_ARGS_((Tcl_Interp* interp,
+ char* decl, int* argcPtr,
+ CompiledLocal** argPtr));
+/* 63 */
+EXTERN CompiledLocal* Itcl_CreateArg _ANSI_ARGS_((char* name, char* init));
+/* 64 */
+EXTERN void Itcl_DeleteArgList _ANSI_ARGS_((
+ CompiledLocal * arglist));
+/* 65 */
+EXTERN Tcl_Obj* Itcl_ArgList _ANSI_ARGS_((int argc,
+ CompiledLocal* arglist));
+/* 66 */
+EXTERN int Itcl_EquivArgLists _ANSI_ARGS_((CompiledLocal* arg1,
+ int arg1c, CompiledLocal* arg2, int arg2c));
+/* 67 */
+EXTERN void Itcl_GetMemberFuncUsage _ANSI_ARGS_((
+ ItclMemberFunc * mfunc,
+ ItclObject * contextObj, Tcl_Obj * objPtr));
+/* 68 */
+EXTERN int Itcl_ExecMethod _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 69 */
+EXTERN int Itcl_ExecProc _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 70 */
+EXTERN int Itcl_AssignArgs _ANSI_ARGS_((Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[],
+ ItclMemberFunc * mfunc));
+/* 71 */
+EXTERN int Itcl_ConstructBase _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclObject * contextObj,
+ ItclClass * contextClass));
+/* 72 */
+EXTERN int Itcl_InvokeMethodIfExists _ANSI_ARGS_((
+ Tcl_Interp * interp, char * name,
+ ItclClass * contextClass,
+ ItclObject * contextObj, int objc,
+ Tcl_Obj *CONST objv[]));
+/* Slot 73 is reserved */
+/* 74 */
+EXTERN int Itcl_ReportFuncErrors _ANSI_ARGS_((
+ Tcl_Interp* interp, ItclMemberFunc * mfunc,
+ ItclObject * contextObj, int result));
+/* 75 */
+EXTERN int Itcl_ParseInit _ANSI_ARGS_((Tcl_Interp * interp,
+ ItclObjectInfo * info));
+/* 76 */
+EXTERN int Itcl_ClassCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 77 */
+EXTERN int Itcl_ClassInheritCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 78 */
+EXTERN int Itcl_ClassProtectionCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 79 */
+EXTERN int Itcl_ClassConstructorCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 80 */
+EXTERN int Itcl_ClassDestructorCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 81 */
+EXTERN int Itcl_ClassMethodCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 82 */
+EXTERN int Itcl_ClassProcCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 83 */
+EXTERN int Itcl_ClassVariableCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 84 */
+EXTERN int Itcl_ClassCommonCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 85 */
+EXTERN int Itcl_ParseVarResolver _ANSI_ARGS_((
+ Tcl_Interp * interp, char* name,
+ Tcl_Namespace * contextNs, int flags,
+ Tcl_Var* rPtr));
+/* 86 */
+EXTERN int Itcl_BiInit _ANSI_ARGS_((Tcl_Interp * interp));
+/* 87 */
+EXTERN int Itcl_InstallBiMethods _ANSI_ARGS_((
+ Tcl_Interp * interp, ItclClass * cdefn));
+/* 88 */
+EXTERN int Itcl_BiIsaCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 89 */
+EXTERN int Itcl_BiConfigureCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 90 */
+EXTERN int Itcl_BiCgetCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 91 */
+EXTERN int Itcl_BiChainCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 92 */
+EXTERN int Itcl_BiInfoClassCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 93 */
+EXTERN int Itcl_BiInfoInheritCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 94 */
+EXTERN int Itcl_BiInfoHeritageCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 95 */
+EXTERN int Itcl_BiInfoFunctionCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 96 */
+EXTERN int Itcl_BiInfoVariableCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 97 */
+EXTERN int Itcl_BiInfoBodyCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 98 */
+EXTERN int Itcl_BiInfoArgsCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 99 */
+EXTERN int Itcl_DefaultInfoCmd _ANSI_ARGS_((ClientData dummy,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 100 */
+EXTERN int Itcl_EnsembleInit _ANSI_ARGS_((Tcl_Interp * interp));
+/* 101 */
+EXTERN int Itcl_CreateEnsemble _ANSI_ARGS_((Tcl_Interp * interp,
+ char* ensName));
+/* 102 */
+EXTERN int Itcl_AddEnsemblePart _ANSI_ARGS_((
+ Tcl_Interp * interp, char* ensName,
+ char* partName, char* usageInfo,
+ Tcl_ObjCmdProc * objProc,
+ ClientData clientData,
+ Tcl_CmdDeleteProc * deleteProc));
+/* 103 */
+EXTERN int Itcl_GetEnsemblePart _ANSI_ARGS_((
+ Tcl_Interp * interp, char * ensName,
+ char * partName, Tcl_CmdInfo * infoPtr));
+/* 104 */
+EXTERN int Itcl_IsEnsemble _ANSI_ARGS_((Tcl_CmdInfo* infoPtr));
+/* 105 */
+EXTERN int Itcl_GetEnsembleUsage _ANSI_ARGS_((
+ Tcl_Interp * interp, char * ensName,
+ Tcl_Obj * objPtr));
+/* 106 */
+EXTERN int Itcl_GetEnsembleUsageForObj _ANSI_ARGS_((
+ Tcl_Interp * interp, Tcl_Obj * ensObjPtr,
+ Tcl_Obj * objPtr));
+/* 107 */
+EXTERN int Itcl_EnsembleCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 108 */
+EXTERN int Itcl_EnsPartCmd _ANSI_ARGS_((ClientData clientData,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 109 */
+EXTERN int Itcl_EnsembleErrorCmd _ANSI_ARGS_((
+ ClientData clientData, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 110 */
+EXTERN int Itcl_OldInit _ANSI_ARGS_((Tcl_Interp* interp,
+ ItclObjectInfo* info));
+/* 111 */
+EXTERN int Itcl_InstallOldBiMethods _ANSI_ARGS_((
+ Tcl_Interp * interp, ItclClass * cdefn));
+/* 112 */
+EXTERN Tcl_CallFrame* _Tcl_GetCallFrame _ANSI_ARGS_((Tcl_Interp * interp,
+ int level));
+/* 113 */
+EXTERN Tcl_CallFrame* _Tcl_ActivateCallFrame _ANSI_ARGS_((
+ Tcl_Interp * interp,
+ Tcl_CallFrame * framePtr));
+/* 114 */
+EXTERN Var* _TclNewVar _ANSI_ARGS_((void));
+/* 115 */
+EXTERN void Itcl_Assert _ANSI_ARGS_((char * testExpr,
+ char * fileName, int lineNum));
+
+typedef struct ItclIntStubs {
+ int magic;
+ struct ItclIntStubHooks *hooks;
+
+ int (*itcl_IsClassNamespace) _ANSI_ARGS_((Tcl_Namespace * namesp)); /* 0 */
+ int (*itcl_IsClass) _ANSI_ARGS_((Tcl_Command cmd)); /* 1 */
+ ItclClass* (*itcl_FindClass) _ANSI_ARGS_((Tcl_Interp* interp, char* path, int autoload)); /* 2 */
+ int (*itcl_FindObject) _ANSI_ARGS_((Tcl_Interp * interp, char * name, ItclObject ** roPtr)); /* 3 */
+ int (*itcl_IsObject) _ANSI_ARGS_((Tcl_Command cmd)); /* 4 */
+ int (*itcl_ObjectIsa) _ANSI_ARGS_((ItclObject * contextObj, ItclClass * cdefn)); /* 5 */
+ int (*itcl_Protection) _ANSI_ARGS_((Tcl_Interp * interp, int newLevel)); /* 6 */
+ char* (*itcl_ProtectionStr) _ANSI_ARGS_((int pLevel)); /* 7 */
+ int (*itcl_CanAccess) _ANSI_ARGS_((ItclMember* memberPtr, Tcl_Namespace* fromNsPtr)); /* 8 */
+ int (*itcl_CanAccessFunc) _ANSI_ARGS_((ItclMemberFunc* mfunc, Tcl_Namespace* fromNsPtr)); /* 9 */
+ Tcl_Namespace* (*itcl_GetTrueNamespace) _ANSI_ARGS_((Tcl_Interp * interp, ItclObjectInfo * info)); /* 10 */
+ void (*itcl_ParseNamespPath) _ANSI_ARGS_((char * name, Tcl_DString * buffer, char ** head, char ** tail)); /* 11 */
+ int (*itcl_DecodeScopedCommand) _ANSI_ARGS_((Tcl_Interp * interp, char * name, Tcl_Namespace ** rNsPtr, char ** rCmdPtr)); /* 12 */
+ int (*itcl_EvalArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 13 */
+ Tcl_Obj* (*itcl_CreateArgs) _ANSI_ARGS_((Tcl_Interp * interp, char * string, int objc, Tcl_Obj *CONST objv[])); /* 14 */
+ int (*itcl_PushContext) _ANSI_ARGS_((Tcl_Interp * interp, ItclMember * member, ItclClass * contextClass, ItclObject * contextObj, ItclContext * contextPtr)); /* 15 */
+ void (*itcl_PopContext) _ANSI_ARGS_((Tcl_Interp * interp, ItclContext * contextPtr)); /* 16 */
+ int (*itcl_GetContext) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass ** cdefnPtr, ItclObject ** odefnPtr)); /* 17 */
+ void (*itcl_InitHierIter) _ANSI_ARGS_((ItclHierIter * iter, ItclClass * cdefn)); /* 18 */
+ void (*itcl_DeleteHierIter) _ANSI_ARGS_((ItclHierIter * iter)); /* 19 */
+ ItclClass* (*itcl_AdvanceHierIter) _ANSI_ARGS_((ItclHierIter * iter)); /* 20 */
+ int (*itcl_FindClassesCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 21 */
+ int (*itcl_FindObjectsCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 22 */
+ int (*itcl_ProtectionCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 23 */
+ int (*itcl_DelClassCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 24 */
+ int (*itcl_DelObjectCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 25 */
+ int (*itcl_ScopeCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 26 */
+ int (*itcl_CodeCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 27 */
+ int (*itcl_StubCreateCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 28 */
+ int (*itcl_StubExistsCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 29 */
+ int (*itcl_IsStub) _ANSI_ARGS_((Tcl_Command cmd)); /* 30 */
+ int (*itcl_CreateClass) _ANSI_ARGS_((Tcl_Interp* interp, char* path, ItclObjectInfo * info, ItclClass ** rPtr)); /* 31 */
+ int (*itcl_DeleteClass) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass * cdefnPtr)); /* 32 */
+ Tcl_Namespace* (*itcl_FindClassNamespace) _ANSI_ARGS_((Tcl_Interp* interp, char* path)); /* 33 */
+ int (*itcl_HandleClass) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 34 */
+ int (*itcl_ClassCmdResolver) _ANSI_ARGS_((Tcl_Interp * interp, char* name, Tcl_Namespace * context, int flags, Tcl_Command * rPtr)); /* 35 */
+ int (*itcl_ClassVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, char* name, Tcl_Namespace * context, int flags, Tcl_Var * rPtr)); /* 36 */
+ int (*itcl_ClassCompiledVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, char* name, int length, Tcl_Namespace * context, Tcl_ResolvedVarInfo ** rPtr)); /* 37 */
+ void (*itcl_BuildVirtualTables) _ANSI_ARGS_((ItclClass* cdefnPtr)); /* 38 */
+ int (*itcl_CreateVarDefn) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass* cdefn, char* name, char* init, char* config, ItclVarDefn** vdefnPtr)); /* 39 */
+ void (*itcl_DeleteVarDefn) _ANSI_ARGS_((ItclVarDefn * vdefn)); /* 40 */
+ char* (*itcl_GetCommonVar) _ANSI_ARGS_((Tcl_Interp * interp, char * name, ItclClass * contextClass)); /* 41 */
+ ItclMember* (*itcl_CreateMember) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, char* name)); /* 42 */
+ void (*itcl_DeleteMember) _ANSI_ARGS_((ItclMember * memPtr)); /* 43 */
+ int (*itcl_CreateObject) _ANSI_ARGS_((Tcl_Interp * interp, char* name, ItclClass * cdefn, int objc, Tcl_Obj *CONST objv[], ItclObject ** roPtr)); /* 44 */
+ int (*itcl_DeleteObject) _ANSI_ARGS_((Tcl_Interp * interp, ItclObject * contextObj)); /* 45 */
+ int (*itcl_DestructObject) _ANSI_ARGS_((Tcl_Interp * interp, ItclObject * contextObj, int flags)); /* 46 */
+ int (*itcl_HandleInstance) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 47 */
+ char* (*itcl_GetInstanceVar) _ANSI_ARGS_((Tcl_Interp * interp, char * name, ItclObject * contextObj, ItclClass * contextClass)); /* 48 */
+ int (*itcl_ScopedVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, char * name, Tcl_Namespace * contextNs, int flags, Tcl_Var * rPtr)); /* 49 */
+ int (*itcl_BodyCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 50 */
+ int (*itcl_ConfigBodyCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 51 */
+ int (*itcl_CreateMethod) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, char* name, char* arglist, char* body)); /* 52 */
+ int (*itcl_CreateProc) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, char* name, char* arglist, char* body)); /* 53 */
+ int (*itcl_CreateMemberFunc) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, char* name, char* arglist, char* body, ItclMemberFunc** mfuncPtr)); /* 54 */
+ int (*itcl_ChangeMemberFunc) _ANSI_ARGS_((Tcl_Interp* interp, ItclMemberFunc* mfunc, char* arglist, char* body)); /* 55 */
+ void (*itcl_DeleteMemberFunc) _ANSI_ARGS_((char* cdata)); /* 56 */
+ int (*itcl_CreateMemberCode) _ANSI_ARGS_((Tcl_Interp* interp, ItclClass * cdefn, char* arglist, char* body, ItclMemberCode** mcodePtr)); /* 57 */
+ void (*itcl_DeleteMemberCode) _ANSI_ARGS_((char* cdata)); /* 58 */
+ int (*itcl_GetMemberCode) _ANSI_ARGS_((Tcl_Interp* interp, ItclMember* member)); /* 59 */
+ void *reserved60;
+ int (*itcl_EvalMemberCode) _ANSI_ARGS_((Tcl_Interp * interp, ItclMemberFunc * mfunc, ItclMember * member, ItclObject * contextObj, int objc, Tcl_Obj *CONST objv[])); /* 61 */
+ int (*itcl_CreateArgList) _ANSI_ARGS_((Tcl_Interp* interp, char* decl, int* argcPtr, CompiledLocal** argPtr)); /* 62 */
+ CompiledLocal* (*itcl_CreateArg) _ANSI_ARGS_((char* name, char* init)); /* 63 */
+ void (*itcl_DeleteArgList) _ANSI_ARGS_((CompiledLocal * arglist)); /* 64 */
+ Tcl_Obj* (*itcl_ArgList) _ANSI_ARGS_((int argc, CompiledLocal* arglist)); /* 65 */
+ int (*itcl_EquivArgLists) _ANSI_ARGS_((CompiledLocal* arg1, int arg1c, CompiledLocal* arg2, int arg2c)); /* 66 */
+ void (*itcl_GetMemberFuncUsage) _ANSI_ARGS_((ItclMemberFunc * mfunc, ItclObject * contextObj, Tcl_Obj * objPtr)); /* 67 */
+ int (*itcl_ExecMethod) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 68 */
+ int (*itcl_ExecProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 69 */
+ int (*itcl_AssignArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], ItclMemberFunc * mfunc)); /* 70 */
+ int (*itcl_ConstructBase) _ANSI_ARGS_((Tcl_Interp * interp, ItclObject * contextObj, ItclClass * contextClass)); /* 71 */
+ int (*itcl_InvokeMethodIfExists) _ANSI_ARGS_((Tcl_Interp * interp, char * name, ItclClass * contextClass, ItclObject * contextObj, int objc, Tcl_Obj *CONST objv[])); /* 72 */
+ void *reserved73;
+ int (*itcl_ReportFuncErrors) _ANSI_ARGS_((Tcl_Interp* interp, ItclMemberFunc * mfunc, ItclObject * contextObj, int result)); /* 74 */
+ int (*itcl_ParseInit) _ANSI_ARGS_((Tcl_Interp * interp, ItclObjectInfo * info)); /* 75 */
+ int (*itcl_ClassCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 76 */
+ int (*itcl_ClassInheritCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 77 */
+ int (*itcl_ClassProtectionCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 78 */
+ int (*itcl_ClassConstructorCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 79 */
+ int (*itcl_ClassDestructorCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 80 */
+ int (*itcl_ClassMethodCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 81 */
+ int (*itcl_ClassProcCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 82 */
+ int (*itcl_ClassVariableCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 83 */
+ int (*itcl_ClassCommonCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 84 */
+ int (*itcl_ParseVarResolver) _ANSI_ARGS_((Tcl_Interp * interp, char* name, Tcl_Namespace * contextNs, int flags, Tcl_Var* rPtr)); /* 85 */
+ int (*itcl_BiInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 86 */
+ int (*itcl_InstallBiMethods) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass * cdefn)); /* 87 */
+ int (*itcl_BiIsaCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 88 */
+ int (*itcl_BiConfigureCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 89 */
+ int (*itcl_BiCgetCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 90 */
+ int (*itcl_BiChainCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 91 */
+ int (*itcl_BiInfoClassCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 92 */
+ int (*itcl_BiInfoInheritCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 93 */
+ int (*itcl_BiInfoHeritageCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 94 */
+ int (*itcl_BiInfoFunctionCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 95 */
+ int (*itcl_BiInfoVariableCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 96 */
+ int (*itcl_BiInfoBodyCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 97 */
+ int (*itcl_BiInfoArgsCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 98 */
+ int (*itcl_DefaultInfoCmd) _ANSI_ARGS_((ClientData dummy, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 99 */
+ int (*itcl_EnsembleInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 100 */
+ int (*itcl_CreateEnsemble) _ANSI_ARGS_((Tcl_Interp * interp, char* ensName)); /* 101 */
+ int (*itcl_AddEnsemblePart) _ANSI_ARGS_((Tcl_Interp * interp, char* ensName, char* partName, char* usageInfo, Tcl_ObjCmdProc * objProc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 102 */
+ int (*itcl_GetEnsemblePart) _ANSI_ARGS_((Tcl_Interp * interp, char * ensName, char * partName, Tcl_CmdInfo * infoPtr)); /* 103 */
+ int (*itcl_IsEnsemble) _ANSI_ARGS_((Tcl_CmdInfo* infoPtr)); /* 104 */
+ int (*itcl_GetEnsembleUsage) _ANSI_ARGS_((Tcl_Interp * interp, char * ensName, Tcl_Obj * objPtr)); /* 105 */
+ int (*itcl_GetEnsembleUsageForObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * ensObjPtr, Tcl_Obj * objPtr)); /* 106 */
+ int (*itcl_EnsembleCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 107 */
+ int (*itcl_EnsPartCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 108 */
+ int (*itcl_EnsembleErrorCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 109 */
+ int (*itcl_OldInit) _ANSI_ARGS_((Tcl_Interp* interp, ItclObjectInfo* info)); /* 110 */
+ int (*itcl_InstallOldBiMethods) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass * cdefn)); /* 111 */
+ Tcl_CallFrame* (*_Tcl_GetCallFrame) _ANSI_ARGS_((Tcl_Interp * interp, int level)); /* 112 */
+ Tcl_CallFrame* (*_Tcl_ActivateCallFrame) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_CallFrame * framePtr)); /* 113 */
+ Var* (*_TclNewVar) _ANSI_ARGS_((void)); /* 114 */
+ void (*itcl_Assert) _ANSI_ARGS_((char * testExpr, char * fileName, int lineNum)); /* 115 */
+} ItclIntStubs;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern ItclIntStubs *itclIntStubsPtr;
+#ifdef __cplusplus
+}
+#endif
+
+#if defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS)
+
+/*
+ * Inline function declarations:
+ */
+
+#ifndef Itcl_IsClassNamespace
+#define Itcl_IsClassNamespace \
+ (itclIntStubsPtr->itcl_IsClassNamespace) /* 0 */
+#endif
+#ifndef Itcl_IsClass
+#define Itcl_IsClass \
+ (itclIntStubsPtr->itcl_IsClass) /* 1 */
+#endif
+#ifndef Itcl_FindClass
+#define Itcl_FindClass \
+ (itclIntStubsPtr->itcl_FindClass) /* 2 */
+#endif
+#ifndef Itcl_FindObject
+#define Itcl_FindObject \
+ (itclIntStubsPtr->itcl_FindObject) /* 3 */
+#endif
+#ifndef Itcl_IsObject
+#define Itcl_IsObject \
+ (itclIntStubsPtr->itcl_IsObject) /* 4 */
+#endif
+#ifndef Itcl_ObjectIsa
+#define Itcl_ObjectIsa \
+ (itclIntStubsPtr->itcl_ObjectIsa) /* 5 */
+#endif
+#ifndef Itcl_Protection
+#define Itcl_Protection \
+ (itclIntStubsPtr->itcl_Protection) /* 6 */
+#endif
+#ifndef Itcl_ProtectionStr
+#define Itcl_ProtectionStr \
+ (itclIntStubsPtr->itcl_ProtectionStr) /* 7 */
+#endif
+#ifndef Itcl_CanAccess
+#define Itcl_CanAccess \
+ (itclIntStubsPtr->itcl_CanAccess) /* 8 */
+#endif
+#ifndef Itcl_CanAccessFunc
+#define Itcl_CanAccessFunc \
+ (itclIntStubsPtr->itcl_CanAccessFunc) /* 9 */
+#endif
+#ifndef Itcl_GetTrueNamespace
+#define Itcl_GetTrueNamespace \
+ (itclIntStubsPtr->itcl_GetTrueNamespace) /* 10 */
+#endif
+#ifndef Itcl_ParseNamespPath
+#define Itcl_ParseNamespPath \
+ (itclIntStubsPtr->itcl_ParseNamespPath) /* 11 */
+#endif
+#ifndef Itcl_DecodeScopedCommand
+#define Itcl_DecodeScopedCommand \
+ (itclIntStubsPtr->itcl_DecodeScopedCommand) /* 12 */
+#endif
+#ifndef Itcl_EvalArgs
+#define Itcl_EvalArgs \
+ (itclIntStubsPtr->itcl_EvalArgs) /* 13 */
+#endif
+#ifndef Itcl_CreateArgs
+#define Itcl_CreateArgs \
+ (itclIntStubsPtr->itcl_CreateArgs) /* 14 */
+#endif
+#ifndef Itcl_PushContext
+#define Itcl_PushContext \
+ (itclIntStubsPtr->itcl_PushContext) /* 15 */
+#endif
+#ifndef Itcl_PopContext
+#define Itcl_PopContext \
+ (itclIntStubsPtr->itcl_PopContext) /* 16 */
+#endif
+#ifndef Itcl_GetContext
+#define Itcl_GetContext \
+ (itclIntStubsPtr->itcl_GetContext) /* 17 */
+#endif
+#ifndef Itcl_InitHierIter
+#define Itcl_InitHierIter \
+ (itclIntStubsPtr->itcl_InitHierIter) /* 18 */
+#endif
+#ifndef Itcl_DeleteHierIter
+#define Itcl_DeleteHierIter \
+ (itclIntStubsPtr->itcl_DeleteHierIter) /* 19 */
+#endif
+#ifndef Itcl_AdvanceHierIter
+#define Itcl_AdvanceHierIter \
+ (itclIntStubsPtr->itcl_AdvanceHierIter) /* 20 */
+#endif
+#ifndef Itcl_FindClassesCmd
+#define Itcl_FindClassesCmd \
+ (itclIntStubsPtr->itcl_FindClassesCmd) /* 21 */
+#endif
+#ifndef Itcl_FindObjectsCmd
+#define Itcl_FindObjectsCmd \
+ (itclIntStubsPtr->itcl_FindObjectsCmd) /* 22 */
+#endif
+#ifndef Itcl_ProtectionCmd
+#define Itcl_ProtectionCmd \
+ (itclIntStubsPtr->itcl_ProtectionCmd) /* 23 */
+#endif
+#ifndef Itcl_DelClassCmd
+#define Itcl_DelClassCmd \
+ (itclIntStubsPtr->itcl_DelClassCmd) /* 24 */
+#endif
+#ifndef Itcl_DelObjectCmd
+#define Itcl_DelObjectCmd \
+ (itclIntStubsPtr->itcl_DelObjectCmd) /* 25 */
+#endif
+#ifndef Itcl_ScopeCmd
+#define Itcl_ScopeCmd \
+ (itclIntStubsPtr->itcl_ScopeCmd) /* 26 */
+#endif
+#ifndef Itcl_CodeCmd
+#define Itcl_CodeCmd \
+ (itclIntStubsPtr->itcl_CodeCmd) /* 27 */
+#endif
+#ifndef Itcl_StubCreateCmd
+#define Itcl_StubCreateCmd \
+ (itclIntStubsPtr->itcl_StubCreateCmd) /* 28 */
+#endif
+#ifndef Itcl_StubExistsCmd
+#define Itcl_StubExistsCmd \
+ (itclIntStubsPtr->itcl_StubExistsCmd) /* 29 */
+#endif
+#ifndef Itcl_IsStub
+#define Itcl_IsStub \
+ (itclIntStubsPtr->itcl_IsStub) /* 30 */
+#endif
+#ifndef Itcl_CreateClass
+#define Itcl_CreateClass \
+ (itclIntStubsPtr->itcl_CreateClass) /* 31 */
+#endif
+#ifndef Itcl_DeleteClass
+#define Itcl_DeleteClass \
+ (itclIntStubsPtr->itcl_DeleteClass) /* 32 */
+#endif
+#ifndef Itcl_FindClassNamespace
+#define Itcl_FindClassNamespace \
+ (itclIntStubsPtr->itcl_FindClassNamespace) /* 33 */
+#endif
+#ifndef Itcl_HandleClass
+#define Itcl_HandleClass \
+ (itclIntStubsPtr->itcl_HandleClass) /* 34 */
+#endif
+#ifndef Itcl_ClassCmdResolver
+#define Itcl_ClassCmdResolver \
+ (itclIntStubsPtr->itcl_ClassCmdResolver) /* 35 */
+#endif
+#ifndef Itcl_ClassVarResolver
+#define Itcl_ClassVarResolver \
+ (itclIntStubsPtr->itcl_ClassVarResolver) /* 36 */
+#endif
+#ifndef Itcl_ClassCompiledVarResolver
+#define Itcl_ClassCompiledVarResolver \
+ (itclIntStubsPtr->itcl_ClassCompiledVarResolver) /* 37 */
+#endif
+#ifndef Itcl_BuildVirtualTables
+#define Itcl_BuildVirtualTables \
+ (itclIntStubsPtr->itcl_BuildVirtualTables) /* 38 */
+#endif
+#ifndef Itcl_CreateVarDefn
+#define Itcl_CreateVarDefn \
+ (itclIntStubsPtr->itcl_CreateVarDefn) /* 39 */
+#endif
+#ifndef Itcl_DeleteVarDefn
+#define Itcl_DeleteVarDefn \
+ (itclIntStubsPtr->itcl_DeleteVarDefn) /* 40 */
+#endif
+#ifndef Itcl_GetCommonVar
+#define Itcl_GetCommonVar \
+ (itclIntStubsPtr->itcl_GetCommonVar) /* 41 */
+#endif
+#ifndef Itcl_CreateMember
+#define Itcl_CreateMember \
+ (itclIntStubsPtr->itcl_CreateMember) /* 42 */
+#endif
+#ifndef Itcl_DeleteMember
+#define Itcl_DeleteMember \
+ (itclIntStubsPtr->itcl_DeleteMember) /* 43 */
+#endif
+#ifndef Itcl_CreateObject
+#define Itcl_CreateObject \
+ (itclIntStubsPtr->itcl_CreateObject) /* 44 */
+#endif
+#ifndef Itcl_DeleteObject
+#define Itcl_DeleteObject \
+ (itclIntStubsPtr->itcl_DeleteObject) /* 45 */
+#endif
+#ifndef Itcl_DestructObject
+#define Itcl_DestructObject \
+ (itclIntStubsPtr->itcl_DestructObject) /* 46 */
+#endif
+#ifndef Itcl_HandleInstance
+#define Itcl_HandleInstance \
+ (itclIntStubsPtr->itcl_HandleInstance) /* 47 */
+#endif
+#ifndef Itcl_GetInstanceVar
+#define Itcl_GetInstanceVar \
+ (itclIntStubsPtr->itcl_GetInstanceVar) /* 48 */
+#endif
+#ifndef Itcl_ScopedVarResolver
+#define Itcl_ScopedVarResolver \
+ (itclIntStubsPtr->itcl_ScopedVarResolver) /* 49 */
+#endif
+#ifndef Itcl_BodyCmd
+#define Itcl_BodyCmd \
+ (itclIntStubsPtr->itcl_BodyCmd) /* 50 */
+#endif
+#ifndef Itcl_ConfigBodyCmd
+#define Itcl_ConfigBodyCmd \
+ (itclIntStubsPtr->itcl_ConfigBodyCmd) /* 51 */
+#endif
+#ifndef Itcl_CreateMethod
+#define Itcl_CreateMethod \
+ (itclIntStubsPtr->itcl_CreateMethod) /* 52 */
+#endif
+#ifndef Itcl_CreateProc
+#define Itcl_CreateProc \
+ (itclIntStubsPtr->itcl_CreateProc) /* 53 */
+#endif
+#ifndef Itcl_CreateMemberFunc
+#define Itcl_CreateMemberFunc \
+ (itclIntStubsPtr->itcl_CreateMemberFunc) /* 54 */
+#endif
+#ifndef Itcl_ChangeMemberFunc
+#define Itcl_ChangeMemberFunc \
+ (itclIntStubsPtr->itcl_ChangeMemberFunc) /* 55 */
+#endif
+#ifndef Itcl_DeleteMemberFunc
+#define Itcl_DeleteMemberFunc \
+ (itclIntStubsPtr->itcl_DeleteMemberFunc) /* 56 */
+#endif
+#ifndef Itcl_CreateMemberCode
+#define Itcl_CreateMemberCode \
+ (itclIntStubsPtr->itcl_CreateMemberCode) /* 57 */
+#endif
+#ifndef Itcl_DeleteMemberCode
+#define Itcl_DeleteMemberCode \
+ (itclIntStubsPtr->itcl_DeleteMemberCode) /* 58 */
+#endif
+#ifndef Itcl_GetMemberCode
+#define Itcl_GetMemberCode \
+ (itclIntStubsPtr->itcl_GetMemberCode) /* 59 */
+#endif
+/* Slot 60 is reserved */
+#ifndef Itcl_EvalMemberCode
+#define Itcl_EvalMemberCode \
+ (itclIntStubsPtr->itcl_EvalMemberCode) /* 61 */
+#endif
+#ifndef Itcl_CreateArgList
+#define Itcl_CreateArgList \
+ (itclIntStubsPtr->itcl_CreateArgList) /* 62 */
+#endif
+#ifndef Itcl_CreateArg
+#define Itcl_CreateArg \
+ (itclIntStubsPtr->itcl_CreateArg) /* 63 */
+#endif
+#ifndef Itcl_DeleteArgList
+#define Itcl_DeleteArgList \
+ (itclIntStubsPtr->itcl_DeleteArgList) /* 64 */
+#endif
+#ifndef Itcl_ArgList
+#define Itcl_ArgList \
+ (itclIntStubsPtr->itcl_ArgList) /* 65 */
+#endif
+#ifndef Itcl_EquivArgLists
+#define Itcl_EquivArgLists \
+ (itclIntStubsPtr->itcl_EquivArgLists) /* 66 */
+#endif
+#ifndef Itcl_GetMemberFuncUsage
+#define Itcl_GetMemberFuncUsage \
+ (itclIntStubsPtr->itcl_GetMemberFuncUsage) /* 67 */
+#endif
+#ifndef Itcl_ExecMethod
+#define Itcl_ExecMethod \
+ (itclIntStubsPtr->itcl_ExecMethod) /* 68 */
+#endif
+#ifndef Itcl_ExecProc
+#define Itcl_ExecProc \
+ (itclIntStubsPtr->itcl_ExecProc) /* 69 */
+#endif
+#ifndef Itcl_AssignArgs
+#define Itcl_AssignArgs \
+ (itclIntStubsPtr->itcl_AssignArgs) /* 70 */
+#endif
+#ifndef Itcl_ConstructBase
+#define Itcl_ConstructBase \
+ (itclIntStubsPtr->itcl_ConstructBase) /* 71 */
+#endif
+#ifndef Itcl_InvokeMethodIfExists
+#define Itcl_InvokeMethodIfExists \
+ (itclIntStubsPtr->itcl_InvokeMethodIfExists) /* 72 */
+#endif
+/* Slot 73 is reserved */
+#ifndef Itcl_ReportFuncErrors
+#define Itcl_ReportFuncErrors \
+ (itclIntStubsPtr->itcl_ReportFuncErrors) /* 74 */
+#endif
+#ifndef Itcl_ParseInit
+#define Itcl_ParseInit \
+ (itclIntStubsPtr->itcl_ParseInit) /* 75 */
+#endif
+#ifndef Itcl_ClassCmd
+#define Itcl_ClassCmd \
+ (itclIntStubsPtr->itcl_ClassCmd) /* 76 */
+#endif
+#ifndef Itcl_ClassInheritCmd
+#define Itcl_ClassInheritCmd \
+ (itclIntStubsPtr->itcl_ClassInheritCmd) /* 77 */
+#endif
+#ifndef Itcl_ClassProtectionCmd
+#define Itcl_ClassProtectionCmd \
+ (itclIntStubsPtr->itcl_ClassProtectionCmd) /* 78 */
+#endif
+#ifndef Itcl_ClassConstructorCmd
+#define Itcl_ClassConstructorCmd \
+ (itclIntStubsPtr->itcl_ClassConstructorCmd) /* 79 */
+#endif
+#ifndef Itcl_ClassDestructorCmd
+#define Itcl_ClassDestructorCmd \
+ (itclIntStubsPtr->itcl_ClassDestructorCmd) /* 80 */
+#endif
+#ifndef Itcl_ClassMethodCmd
+#define Itcl_ClassMethodCmd \
+ (itclIntStubsPtr->itcl_ClassMethodCmd) /* 81 */
+#endif
+#ifndef Itcl_ClassProcCmd
+#define Itcl_ClassProcCmd \
+ (itclIntStubsPtr->itcl_ClassProcCmd) /* 82 */
+#endif
+#ifndef Itcl_ClassVariableCmd
+#define Itcl_ClassVariableCmd \
+ (itclIntStubsPtr->itcl_ClassVariableCmd) /* 83 */
+#endif
+#ifndef Itcl_ClassCommonCmd
+#define Itcl_ClassCommonCmd \
+ (itclIntStubsPtr->itcl_ClassCommonCmd) /* 84 */
+#endif
+#ifndef Itcl_ParseVarResolver
+#define Itcl_ParseVarResolver \
+ (itclIntStubsPtr->itcl_ParseVarResolver) /* 85 */
+#endif
+#ifndef Itcl_BiInit
+#define Itcl_BiInit \
+ (itclIntStubsPtr->itcl_BiInit) /* 86 */
+#endif
+#ifndef Itcl_InstallBiMethods
+#define Itcl_InstallBiMethods \
+ (itclIntStubsPtr->itcl_InstallBiMethods) /* 87 */
+#endif
+#ifndef Itcl_BiIsaCmd
+#define Itcl_BiIsaCmd \
+ (itclIntStubsPtr->itcl_BiIsaCmd) /* 88 */
+#endif
+#ifndef Itcl_BiConfigureCmd
+#define Itcl_BiConfigureCmd \
+ (itclIntStubsPtr->itcl_BiConfigureCmd) /* 89 */
+#endif
+#ifndef Itcl_BiCgetCmd
+#define Itcl_BiCgetCmd \
+ (itclIntStubsPtr->itcl_BiCgetCmd) /* 90 */
+#endif
+#ifndef Itcl_BiChainCmd
+#define Itcl_BiChainCmd \
+ (itclIntStubsPtr->itcl_BiChainCmd) /* 91 */
+#endif
+#ifndef Itcl_BiInfoClassCmd
+#define Itcl_BiInfoClassCmd \
+ (itclIntStubsPtr->itcl_BiInfoClassCmd) /* 92 */
+#endif
+#ifndef Itcl_BiInfoInheritCmd
+#define Itcl_BiInfoInheritCmd \
+ (itclIntStubsPtr->itcl_BiInfoInheritCmd) /* 93 */
+#endif
+#ifndef Itcl_BiInfoHeritageCmd
+#define Itcl_BiInfoHeritageCmd \
+ (itclIntStubsPtr->itcl_BiInfoHeritageCmd) /* 94 */
+#endif
+#ifndef Itcl_BiInfoFunctionCmd
+#define Itcl_BiInfoFunctionCmd \
+ (itclIntStubsPtr->itcl_BiInfoFunctionCmd) /* 95 */
+#endif
+#ifndef Itcl_BiInfoVariableCmd
+#define Itcl_BiInfoVariableCmd \
+ (itclIntStubsPtr->itcl_BiInfoVariableCmd) /* 96 */
+#endif
+#ifndef Itcl_BiInfoBodyCmd
+#define Itcl_BiInfoBodyCmd \
+ (itclIntStubsPtr->itcl_BiInfoBodyCmd) /* 97 */
+#endif
+#ifndef Itcl_BiInfoArgsCmd
+#define Itcl_BiInfoArgsCmd \
+ (itclIntStubsPtr->itcl_BiInfoArgsCmd) /* 98 */
+#endif
+#ifndef Itcl_DefaultInfoCmd
+#define Itcl_DefaultInfoCmd \
+ (itclIntStubsPtr->itcl_DefaultInfoCmd) /* 99 */
+#endif
+#ifndef Itcl_EnsembleInit
+#define Itcl_EnsembleInit \
+ (itclIntStubsPtr->itcl_EnsembleInit) /* 100 */
+#endif
+#ifndef Itcl_CreateEnsemble
+#define Itcl_CreateEnsemble \
+ (itclIntStubsPtr->itcl_CreateEnsemble) /* 101 */
+#endif
+#ifndef Itcl_AddEnsemblePart
+#define Itcl_AddEnsemblePart \
+ (itclIntStubsPtr->itcl_AddEnsemblePart) /* 102 */
+#endif
+#ifndef Itcl_GetEnsemblePart
+#define Itcl_GetEnsemblePart \
+ (itclIntStubsPtr->itcl_GetEnsemblePart) /* 103 */
+#endif
+#ifndef Itcl_IsEnsemble
+#define Itcl_IsEnsemble \
+ (itclIntStubsPtr->itcl_IsEnsemble) /* 104 */
+#endif
+#ifndef Itcl_GetEnsembleUsage
+#define Itcl_GetEnsembleUsage \
+ (itclIntStubsPtr->itcl_GetEnsembleUsage) /* 105 */
+#endif
+#ifndef Itcl_GetEnsembleUsageForObj
+#define Itcl_GetEnsembleUsageForObj \
+ (itclIntStubsPtr->itcl_GetEnsembleUsageForObj) /* 106 */
+#endif
+#ifndef Itcl_EnsembleCmd
+#define Itcl_EnsembleCmd \
+ (itclIntStubsPtr->itcl_EnsembleCmd) /* 107 */
+#endif
+#ifndef Itcl_EnsPartCmd
+#define Itcl_EnsPartCmd \
+ (itclIntStubsPtr->itcl_EnsPartCmd) /* 108 */
+#endif
+#ifndef Itcl_EnsembleErrorCmd
+#define Itcl_EnsembleErrorCmd \
+ (itclIntStubsPtr->itcl_EnsembleErrorCmd) /* 109 */
+#endif
+#ifndef Itcl_OldInit
+#define Itcl_OldInit \
+ (itclIntStubsPtr->itcl_OldInit) /* 110 */
+#endif
+#ifndef Itcl_InstallOldBiMethods
+#define Itcl_InstallOldBiMethods \
+ (itclIntStubsPtr->itcl_InstallOldBiMethods) /* 111 */
+#endif
+#ifndef _Tcl_GetCallFrame
+#define _Tcl_GetCallFrame \
+ (itclIntStubsPtr->_Tcl_GetCallFrame) /* 112 */
+#endif
+#ifndef _Tcl_ActivateCallFrame
+#define _Tcl_ActivateCallFrame \
+ (itclIntStubsPtr->_Tcl_ActivateCallFrame) /* 113 */
+#endif
+#ifndef _TclNewVar
+#define _TclNewVar \
+ (itclIntStubsPtr->_TclNewVar) /* 114 */
+#endif
+#ifndef Itcl_Assert
+#define Itcl_Assert \
+ (itclIntStubsPtr->itcl_Assert) /* 115 */
+#endif
+
+#endif /* defined(USE_ITCL_STUBS) && !defined(USE_ITCL_STUB_PROCS) */
+
+/* !END!: Do not edit above this line. */
+
+#endif /* _ITCLINTDECLS */
diff --git a/itcl/itcl/generic/itclStubInit.c b/itcl/itcl/generic/itclStubInit.c
new file mode 100644
index 00000000000..50df340c26b
--- /dev/null
+++ b/itcl/itcl/generic/itclStubInit.c
@@ -0,0 +1,185 @@
+/*
+ * itclStubInit.c --
+ *
+ * This file contains the initializers for the Itcl stub vectors.
+ *
+ * Copyright (c) 1998-1999 by XXX
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: $Id$
+ */
+
+#include "itclInt.h"
+
+/*
+ * Remove macros that will interfere with the definitions below.
+ */
+
+
+/*
+ * WARNING: The contents of this file is automatically generated by the
+ * tools/genStubs.tcl script. Any modifications to the function declarations
+ * below should be made in the generic/tcl.decls script.
+ */
+
+/* !BEGIN!: Do not edit below this line. */
+
+ItclIntStubs itclIntStubs = {
+ TCL_STUB_MAGIC,
+ NULL,
+ Itcl_IsClassNamespace, /* 0 */
+ Itcl_IsClass, /* 1 */
+ Itcl_FindClass, /* 2 */
+ Itcl_FindObject, /* 3 */
+ Itcl_IsObject, /* 4 */
+ Itcl_ObjectIsa, /* 5 */
+ Itcl_Protection, /* 6 */
+ Itcl_ProtectionStr, /* 7 */
+ Itcl_CanAccess, /* 8 */
+ Itcl_CanAccessFunc, /* 9 */
+ Itcl_GetTrueNamespace, /* 10 */
+ Itcl_ParseNamespPath, /* 11 */
+ Itcl_DecodeScopedCommand, /* 12 */
+ Itcl_EvalArgs, /* 13 */
+ Itcl_CreateArgs, /* 14 */
+ Itcl_PushContext, /* 15 */
+ Itcl_PopContext, /* 16 */
+ Itcl_GetContext, /* 17 */
+ Itcl_InitHierIter, /* 18 */
+ Itcl_DeleteHierIter, /* 19 */
+ Itcl_AdvanceHierIter, /* 20 */
+ Itcl_FindClassesCmd, /* 21 */
+ Itcl_FindObjectsCmd, /* 22 */
+ Itcl_ProtectionCmd, /* 23 */
+ Itcl_DelClassCmd, /* 24 */
+ Itcl_DelObjectCmd, /* 25 */
+ Itcl_ScopeCmd, /* 26 */
+ Itcl_CodeCmd, /* 27 */
+ Itcl_StubCreateCmd, /* 28 */
+ Itcl_StubExistsCmd, /* 29 */
+ Itcl_IsStub, /* 30 */
+ Itcl_CreateClass, /* 31 */
+ Itcl_DeleteClass, /* 32 */
+ Itcl_FindClassNamespace, /* 33 */
+ Itcl_HandleClass, /* 34 */
+ Itcl_ClassCmdResolver, /* 35 */
+ Itcl_ClassVarResolver, /* 36 */
+ Itcl_ClassCompiledVarResolver, /* 37 */
+ Itcl_BuildVirtualTables, /* 38 */
+ Itcl_CreateVarDefn, /* 39 */
+ Itcl_DeleteVarDefn, /* 40 */
+ Itcl_GetCommonVar, /* 41 */
+ Itcl_CreateMember, /* 42 */
+ Itcl_DeleteMember, /* 43 */
+ Itcl_CreateObject, /* 44 */
+ Itcl_DeleteObject, /* 45 */
+ Itcl_DestructObject, /* 46 */
+ Itcl_HandleInstance, /* 47 */
+ Itcl_GetInstanceVar, /* 48 */
+ Itcl_ScopedVarResolver, /* 49 */
+ Itcl_BodyCmd, /* 50 */
+ Itcl_ConfigBodyCmd, /* 51 */
+ Itcl_CreateMethod, /* 52 */
+ Itcl_CreateProc, /* 53 */
+ Itcl_CreateMemberFunc, /* 54 */
+ Itcl_ChangeMemberFunc, /* 55 */
+ Itcl_DeleteMemberFunc, /* 56 */
+ Itcl_CreateMemberCode, /* 57 */
+ Itcl_DeleteMemberCode, /* 58 */
+ Itcl_GetMemberCode, /* 59 */
+ NULL, /* 60 */
+ Itcl_EvalMemberCode, /* 61 */
+ Itcl_CreateArgList, /* 62 */
+ Itcl_CreateArg, /* 63 */
+ Itcl_DeleteArgList, /* 64 */
+ Itcl_ArgList, /* 65 */
+ Itcl_EquivArgLists, /* 66 */
+ Itcl_GetMemberFuncUsage, /* 67 */
+ Itcl_ExecMethod, /* 68 */
+ Itcl_ExecProc, /* 69 */
+ Itcl_AssignArgs, /* 70 */
+ Itcl_ConstructBase, /* 71 */
+ Itcl_InvokeMethodIfExists, /* 72 */
+ NULL, /* 73 */
+ Itcl_ReportFuncErrors, /* 74 */
+ Itcl_ParseInit, /* 75 */
+ Itcl_ClassCmd, /* 76 */
+ Itcl_ClassInheritCmd, /* 77 */
+ Itcl_ClassProtectionCmd, /* 78 */
+ Itcl_ClassConstructorCmd, /* 79 */
+ Itcl_ClassDestructorCmd, /* 80 */
+ Itcl_ClassMethodCmd, /* 81 */
+ Itcl_ClassProcCmd, /* 82 */
+ Itcl_ClassVariableCmd, /* 83 */
+ Itcl_ClassCommonCmd, /* 84 */
+ Itcl_ParseVarResolver, /* 85 */
+ Itcl_BiInit, /* 86 */
+ Itcl_InstallBiMethods, /* 87 */
+ Itcl_BiIsaCmd, /* 88 */
+ Itcl_BiConfigureCmd, /* 89 */
+ Itcl_BiCgetCmd, /* 90 */
+ Itcl_BiChainCmd, /* 91 */
+ Itcl_BiInfoClassCmd, /* 92 */
+ Itcl_BiInfoInheritCmd, /* 93 */
+ Itcl_BiInfoHeritageCmd, /* 94 */
+ Itcl_BiInfoFunctionCmd, /* 95 */
+ Itcl_BiInfoVariableCmd, /* 96 */
+ Itcl_BiInfoBodyCmd, /* 97 */
+ Itcl_BiInfoArgsCmd, /* 98 */
+ Itcl_DefaultInfoCmd, /* 99 */
+ Itcl_EnsembleInit, /* 100 */
+ Itcl_CreateEnsemble, /* 101 */
+ Itcl_AddEnsemblePart, /* 102 */
+ Itcl_GetEnsemblePart, /* 103 */
+ Itcl_IsEnsemble, /* 104 */
+ Itcl_GetEnsembleUsage, /* 105 */
+ Itcl_GetEnsembleUsageForObj, /* 106 */
+ Itcl_EnsembleCmd, /* 107 */
+ Itcl_EnsPartCmd, /* 108 */
+ Itcl_EnsembleErrorCmd, /* 109 */
+ Itcl_OldInit, /* 110 */
+ Itcl_InstallOldBiMethods, /* 111 */
+ _Tcl_GetCallFrame, /* 112 */
+ _Tcl_ActivateCallFrame, /* 113 */
+ _TclNewVar, /* 114 */
+ Itcl_Assert, /* 115 */
+};
+
+static ItclStubHooks itclStubHooks = {
+ &itclIntStubs
+};
+
+ItclStubs itclStubs = {
+ TCL_STUB_MAGIC,
+ &itclStubHooks,
+ Itcl_Init, /* 0 */
+ Itcl_SafeInit, /* 1 */
+ Itcl_RegisterC, /* 2 */
+ Itcl_RegisterObjC, /* 3 */
+ Itcl_FindC, /* 4 */
+ Itcl_InitStack, /* 5 */
+ Itcl_DeleteStack, /* 6 */
+ Itcl_PushStack, /* 7 */
+ Itcl_PopStack, /* 8 */
+ Itcl_PeekStack, /* 9 */
+ Itcl_GetStackValue, /* 10 */
+ Itcl_InitList, /* 11 */
+ Itcl_DeleteList, /* 12 */
+ Itcl_CreateListElem, /* 13 */
+ Itcl_DeleteListElem, /* 14 */
+ Itcl_InsertList, /* 15 */
+ Itcl_InsertListElem, /* 16 */
+ Itcl_AppendList, /* 17 */
+ Itcl_AppendListElem, /* 18 */
+ Itcl_SetListValue, /* 19 */
+ Itcl_EventuallyFree, /* 20 */
+ Itcl_PreserveData, /* 21 */
+ Itcl_ReleaseData, /* 22 */
+ Itcl_SaveInterpState, /* 23 */
+ Itcl_RestoreInterpState, /* 24 */
+ Itcl_DiscardInterpState, /* 25 */
+};
+
+/* !END!: Do not edit above this line. */
diff --git a/itcl/itcl/generic/itclStubLib.c b/itcl/itcl/generic/itclStubLib.c
new file mode 100644
index 00000000000..80fe17a2fe1
--- /dev/null
+++ b/itcl/itcl/generic/itclStubLib.c
@@ -0,0 +1,83 @@
+/*
+ * itclStubLib.c --
+ *
+ * Stub object that will be statically linked into extensions that wish
+ * to access Itcl.
+ *
+ * Copyright (c) 1998-1999 by XXXX
+ * Copyright (c) 1998 Paul Duffin.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: $Id$
+ */
+
+/*
+ * We need to ensure that we use the stub macros so that this file contains
+ * no references to any of the stub functions. This will make it possible
+ * to build an extension that references Tcl_InitStubs but doesn't end up
+ * including the rest of the stub functions.
+ */
+
+#ifndef USE_TCL_STUBS
+#define USE_TCL_STUBS
+#endif
+#undef USE_TCL_STUB_PROCS
+
+/*
+ * This ensures that the Itcl_InitStubs has a prototype in
+ * itcl.h and is not the macro that turns it into Tcl_PkgRequire
+ */
+
+#ifndef USE_ITCL_STUBS
+#define USE_ITCL_STUBS
+#endif
+
+#include "itclInt.h"
+
+ItclStubs *itclStubsPtr;
+ItclIntStubs *itclIntStubsPtr;
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Itcl_InitStubs --
+ *
+ * Tries to initialise the stub table pointers and ensures that
+ * the correct version of Itcl is loaded.
+ *
+ * Results:
+ * The actual version of Itcl that satisfies the request, or
+ * NULL to indicate that an error occurred.
+ *
+ * Side effects:
+ * Sets the stub table pointers.
+ *
+ *----------------------------------------------------------------------
+ */
+
+char *
+Itcl_InitStubs (interp, version, exact)
+ Tcl_Interp *interp;
+ char *version;
+ int exact;
+{
+ char *actualVersion;
+
+ actualVersion = Tcl_PkgRequireEx(interp, "Itcl", version, exact,
+ (ClientData *) &itclStubsPtr);
+
+ if (actualVersion == NULL) {
+ itclStubsPtr = NULL;
+ return NULL;
+ }
+
+ if (itclStubsPtr->hooks) {
+ itclIntStubsPtr = itclStubsPtr->hooks->itclIntStubs;
+ } else {
+ itclIntStubsPtr = NULL;
+ }
+
+ return actualVersion;
+}
diff --git a/itcl/itcl/generic/itcl_bicmds.c b/itcl/itcl/generic/itcl_bicmds.c
index d9319a4b4e9..0340dc8bc3d 100644
--- a/itcl/itcl/generic/itcl_bicmds.c
+++ b/itcl/itcl/generic/itcl_bicmds.c
@@ -841,6 +841,10 @@ Itcl_BiInfoClassCmd(dummy, interp, objc, objv)
*/
if (contextObj) {
contextNs = contextObj->classDefn->namesp;
+ } else {
+ assert(contextClass != NULL);
+ assert(contextClass->namesp != NULL);
+ contextNs = contextClass->namesp;
}
if (contextNs->parentPtr == activeNs) {
diff --git a/itcl/itcl/generic/itcl_class.c b/itcl/itcl/generic/itcl_class.c
index 9ef772a55ee..5661ad3f784 100644
--- a/itcl/itcl/generic/itcl_class.c
+++ b/itcl/itcl/generic/itcl_class.c
@@ -1004,6 +1004,9 @@ Itcl_ClassVarResolver(interp, name, context, flags, rPtr)
* in interp if anything goes wrong */
Tcl_Var *rPtr; /* returns: resolved variable */
{
+ Interp *iPtr = (Interp *) interp;
+ CallFrame *varFramePtr = iPtr->varFramePtr;
+
ItclClass *cdefn = (ItclClass*)context->clientData;
ItclObject *contextObj;
Tcl_CallFrame *framePtr;
@@ -1021,6 +1024,57 @@ Itcl_ClassVarResolver(interp, name, context, flags, rPtr)
}
/*
+ * See if this is a formal parameter in the current proc scope.
+ * If so, that variable has precedence. Look it up and return
+ * it here. This duplicates some of the functionality of
+ * TclLookupVar, but we return it here (instead of returning
+ * TCL_CONTINUE) to avoid looking it up again later.
+ */
+ if (varFramePtr && varFramePtr->isProcCallFrame
+ && strstr(name,"::") == NULL) {
+
+ Proc *procPtr = varFramePtr->procPtr;
+
+ /*
+ * Search through compiled locals first...
+ */
+ if (procPtr) {
+ int localCt = procPtr->numCompiledLocals;
+ CompiledLocal *localPtr = procPtr->firstLocalPtr;
+ Var *localVarPtr = varFramePtr->compiledLocals;
+ int nameLen = strlen(name);
+ int i;
+
+ for (i=0; i < localCt; i++) {
+ if (!TclIsVarTemporary(localPtr)) {
+ register char *localName = localVarPtr->name;
+ if ((name[0] == localName[0])
+ && (nameLen == localPtr->nameLength)
+ && (strcmp(name, localName) == 0)) {
+ *rPtr = (Tcl_Var)localVarPtr;
+ return TCL_OK;
+ }
+ }
+ localVarPtr++;
+ localPtr = localPtr->nextPtr;
+ }
+ }
+
+ /*
+ * If it's not a compiled local, then look in the frame's
+ * var hash table next. This variable may have been
+ * created on the fly.
+ */
+ if (varFramePtr->varTablePtr != NULL) {
+ entry = Tcl_FindHashEntry(varFramePtr->varTablePtr, name);
+ if (entry != NULL) {
+ *rPtr = (Tcl_Var)Tcl_GetHashValue(entry);
+ return TCL_OK;
+ }
+ }
+ }
+
+ /*
* See if the variable is a known data member and accessible.
*/
entry = Tcl_FindHashEntry(&cdefn->resolveVars, name);
diff --git a/itcl/itcl/generic/itcl_cmds.c b/itcl/itcl/generic/itcl_cmds.c
index bd06331e936..773e3098af1 100644
--- a/itcl/itcl/generic/itcl_cmds.c
+++ b/itcl/itcl/generic/itcl_cmds.c
@@ -52,11 +52,39 @@ namespace eval ::itcl {\n\
variable library\n\
variable version\n\
rename _find_init {}\n\
- if {[catch {uplevel #0 source -rsrc itcl}] == 0} {\n\
- return\n\
+ if {[info exists library]} {\n\
+ lappend dirs $library\n\
+ } else {\n\
+ if {[catch {uplevel #0 source -rsrc itcl}] == 0} {\n\
+ return\n\
+ }\n\
+ set dirs {}\n\
+ if {[info exists env(ITCL_LIBRARY)]} {\n\
+ lappend dirs $env(ITCL_LIBRARY)\n\
+ }\n\
+ lappend dirs [file join [file dirname $tcl_library] itcl$version]\n\
+ set bindir [file dirname [info nameofexecutable]]\n\
+ lappend dirs [file join $bindir .. lib itcl$version]\n\
+ lappend dirs [file join $bindir .. library]\n\
+ lappend dirs [file join $bindir .. .. library]\n\
+ lappend dirs [file join $bindir .. .. itcl library]\n\
+ lappend dirs [file join $bindir .. .. .. itcl library]\n\
}\n\
- tcl_findLibrary itcl 3.0 {} itcl.tcl ITCL_LIBRARY ::itcl::library {} {} itcl\n\
- }\n\
+ foreach i $dirs {\n\
+ set library $i\n\
+ set itclfile [file join $i itcl.tcl]\n\
+ if {![catch {uplevel #0 [list source $itclfile]} msg]} {\n\
+ return\n\
+ }\n\
+ }\n\
+ set msg \"Can't find a usable itcl.tcl in the following directories:\n\"\n\
+ append msg \" $dirs\n\"\n\
+ append msg \"This probably means that Itcl/Tcl weren't installed properly.\n\"\n\
+ append msg \"If you know where the Itcl library directory was installed,\n\"\n\
+ append msg \"you can set the environment variable ITCL_LIBRARY to point\n\"\n\
+ append msg \"to the library directory.\n\"\n\
+ error $msg\n\
+ }\n\
_find_init\n\
}";
@@ -66,13 +94,15 @@ namespace eval ::itcl {\n\
static char safeInitScript[] =
"proc ::itcl::local {class name args} {\n\
- set ptr [uplevel eval [list $class $name] $args]\n\
+ set ptr [uplevel [list $class $name] $args]\n\
uplevel [list set itcl-local-$ptr $ptr]\n\
set cmd [uplevel namespace which -command $ptr]\n\
uplevel [list trace variable itcl-local-$ptr u \"::itcl::delete object $cmd; list\"]\n\
return $ptr\n\
}";
+extern ItclStubs itclStubs;
+
/*
* ------------------------------------------------------------------------
@@ -97,9 +127,9 @@ Initialize(interp)
Tcl_Namespace *itclNs;
ItclObjectInfo *info;
- if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, 1) == NULL) {
+ if (Tcl_InitStubs(interp, "8.1", 0) == NULL) {
return TCL_ERROR;
- }
+ };
/*
* See if [incr Tcl] is already installed.
@@ -276,7 +306,8 @@ Initialize(interp)
/*
* Package is now loaded.
*/
- if (Tcl_PkgProvide(interp, "Itcl", ITCL_VERSION) != TCL_OK) {
+ if (Tcl_PkgProvideEx(interp, "Itcl", ITCL_VERSION,
+ (ClientData) &itclStubs) != TCL_OK) {
return TCL_ERROR;
}
return TCL_OK;
@@ -385,11 +416,11 @@ ItclDelObjectInfo(cdata)
* ------------------------------------------------------------------------
* Itcl_FindClassesCmd()
*
- * Part of the "::info" ensemble. Invoked by Tcl whenever the user
- * issues an "info classes" command to query the list of classes
- * in the current namespace. Handles the following syntax:
+ * Invoked by Tcl whenever the user issues an "itcl::find classes"
+ * command to query the list of known classes. Handles the following
+ * syntax:
*
- * info classes ?<pattern>?
+ * find classes ?<pattern>?
*
* Returns TCL_OK/TCL_ERROR to indicate success/failure.
* ------------------------------------------------------------------------
@@ -408,11 +439,11 @@ Itcl_FindClassesCmd(clientData, interp, objc, objv)
char *pattern;
char *name;
- int i, nsearch, newEntry;
+ int i, newEntry, handledActiveNs;
Tcl_HashTable unique;
Tcl_HashEntry *entry;
Tcl_HashSearch place;
- Tcl_Namespace *search[2];
+ Itcl_Stack search;
Tcl_Command cmd, originalCmd;
Namespace *nsPtr;
Tcl_Obj *listPtr, *objPtr;
@@ -430,22 +461,25 @@ Itcl_FindClassesCmd(clientData, interp, objc, objv)
}
/*
- * Search through all commands in the current namespace and
- * in the global namespace. If we find any commands that
+ * Search through all commands in the current namespace first,
+ * in the global namespace next, then in all child namespaces
+ * in this interpreter. If we find any commands that
* represent classes, report them.
*/
listPtr = Tcl_NewListObj(0, (Tcl_Obj* CONST*)NULL);
- nsearch = 0;
- search[nsearch++] = activeNs;
- if (activeNs != globalNs) {
- search[nsearch++] = globalNs;
- }
+ Itcl_InitStack(&search);
+ Itcl_PushStack((ClientData)globalNs, &search);
+ Itcl_PushStack((ClientData)activeNs, &search); /* last in, first out! */
Tcl_InitHashTable(&unique, TCL_ONE_WORD_KEYS);
- for (i=0; i < nsearch; i++) {
- nsPtr = (Namespace*)search[i];
+ handledActiveNs = 0;
+ while (Itcl_GetStackSize(&search) > 0) {
+ nsPtr = (Namespace*)Itcl_PopStack(&search);
+ if (nsPtr == (Namespace*)activeNs && handledActiveNs) {
+ continue;
+ }
entry = Tcl_FirstHashEntry(&nsPtr->cmdTable, &place);
while (entry) {
@@ -485,8 +519,20 @@ Itcl_FindClassesCmd(clientData, interp, objc, objv)
}
entry = Tcl_NextHashEntry(&place);
}
+ handledActiveNs = 1; /* don't process the active namespace twice */
+
+ /*
+ * Push any child namespaces onto the stack and continue
+ * the search in those namespaces.
+ */
+ entry = Tcl_FirstHashEntry(&nsPtr->childTable, &place);
+ while (entry != NULL) {
+ Itcl_PushStack(Tcl_GetHashValue(entry), &search);
+ entry = Tcl_NextHashEntry(&place);
+ }
}
Tcl_DeleteHashTable(&unique);
+ Itcl_DeleteStack(&search);
Tcl_SetObjResult(interp, listPtr);
return TCL_OK;
@@ -497,11 +543,11 @@ Itcl_FindClassesCmd(clientData, interp, objc, objv)
* ------------------------------------------------------------------------
* Itcl_FindObjectsCmd()
*
- * Part of the "::info" ensemble. Invoked by Tcl whenever the user
- * issues an "info objects" command to query the list of known objects.
- * Handles the following syntax:
+ * Invoked by Tcl whenever the user issues an "itcl::find objects"
+ * command to query the list of known objects. Handles the following
+ * syntax:
*
- * info objects ?-class <className>? ?-isa <className>? ?<pattern>?
+ * find objects ?-class <className>? ?-isa <className>? ?<pattern>?
*
* Returns TCL_OK/TCL_ERROR to indicate success/failure.
* ------------------------------------------------------------------------
@@ -522,12 +568,12 @@ Itcl_FindObjectsCmd(clientData, interp, objc, objv)
ItclClass *isaDefn = NULL;
char *name, *token;
- int i, pos, nsearch, newEntry, match;
+ int i, pos, newEntry, match, handledActiveNs;
ItclObject *contextObj;
Tcl_HashTable unique;
Tcl_HashEntry *entry;
Tcl_HashSearch place;
- Tcl_Namespace *search[2];
+ Itcl_Stack search;
Tcl_Command cmd, originalCmd;
Namespace *nsPtr;
Command *cmdPtr;
@@ -564,6 +610,16 @@ Itcl_FindObjectsCmd(clientData, interp, objc, objv)
}
pos++;
}
+
+ /*
+ * Last token? Take it as the pattern, even if it starts
+ * with a "-". This allows us to match object names that
+ * start with "-".
+ */
+ else if (pos == objc-1 && !pattern) {
+ pattern = token;
+ forceFullNames = (strstr(pattern, "::") != NULL);
+ }
else {
break;
}
@@ -576,22 +632,25 @@ Itcl_FindObjectsCmd(clientData, interp, objc, objv)
}
/*
- * Search through all commands in the current namespace and
- * in the global namespace. If we find any commands that
+ * Search through all commands in the current namespace first,
+ * in the global namespace next, then in all child namespaces
+ * in this interpreter. If we find any commands that
* represent objects, report them.
*/
listPtr = Tcl_NewListObj(0, (Tcl_Obj* CONST*)NULL);
- nsearch = 0;
- search[nsearch++] = activeNs;
- if (activeNs != globalNs) {
- search[nsearch++] = globalNs;
- }
+ Itcl_InitStack(&search);
+ Itcl_PushStack((ClientData)globalNs, &search);
+ Itcl_PushStack((ClientData)activeNs, &search); /* last in, first out! */
Tcl_InitHashTable(&unique, TCL_ONE_WORD_KEYS);
- for (i=0; i < nsearch; i++) {
- nsPtr = (Namespace*)search[i];
+ handledActiveNs = 0;
+ while (Itcl_GetStackSize(&search) > 0) {
+ nsPtr = (Namespace*)Itcl_PopStack(&search);
+ if (nsPtr == (Namespace*)activeNs && handledActiveNs) {
+ continue;
+ }
entry = Tcl_FirstHashEntry(&nsPtr->cmdTable, &place);
while (entry) {
@@ -653,8 +712,20 @@ Itcl_FindObjectsCmd(clientData, interp, objc, objv)
}
entry = Tcl_NextHashEntry(&place);
}
+ handledActiveNs = 1; /* don't process the active namespace twice */
+
+ /*
+ * Push any child namespaces onto the stack and continue
+ * the search in those namespaces.
+ */
+ entry = Tcl_FirstHashEntry(&nsPtr->childTable, &place);
+ while (entry != NULL) {
+ Itcl_PushStack(Tcl_GetHashValue(entry), &search);
+ entry = Tcl_NextHashEntry(&place);
+ }
}
Tcl_DeleteHashTable(&unique);
+ Itcl_DeleteStack(&search);
Tcl_SetObjResult(interp, listPtr);
return TCL_OK;
@@ -702,10 +773,10 @@ Itcl_ProtectionCmd(clientData, interp, objc, objv)
if (objc == 2) {
/* CYGNUS LOCAL - Fix for 8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- result = Tcl_EvalObj(interp, objv[1]);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
result = Tcl_EvalObj(interp, objv[1], 0);
+#else
+ result = Tcl_EvalObj(interp, objv[1]);
#endif
/* END CYGNUS LOCAL */
} else {
diff --git a/itcl/itcl/generic/itcl_ensemble.c b/itcl/itcl/generic/itcl_ensemble.c
index 60ba06ebab7..fb5f802ad7b 100644
--- a/itcl/itcl/generic/itcl_ensemble.c
+++ b/itcl/itcl/generic/itcl_ensemble.c
@@ -1690,19 +1690,19 @@ Itcl_EnsembleCmd(clientData, interp, objc, objv)
if (objc == 3) {
/* CYGNUS LOCAL - fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- status = Tcl_EvalObj(ensInfo->parser, objv[2]);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
status = Tcl_EvalObj(ensInfo->parser, objv[2], 0);
+#else
+ status = Tcl_EvalObj(ensInfo->parser, objv[2]);
#endif
}
else if (objc > 3) {
objPtr = Tcl_NewListObj(objc-2, objv+2);
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- status = Tcl_EvalObj(ensInfo->parser, objPtr);
-#else
- Tcl_IncrRefCount(objPtr);
+ Tcl_IncrRefCount(objPtr); /* stop Eval trashing it */
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
status = Tcl_EvalObj(ensInfo->parser, objPtr, 0);
+#else
+ status = Tcl_EvalObj(ensInfo->parser, objPtr);
#endif
/* END CYGNUS LOCAL */
Tcl_DecrRefCount(objPtr); /* we're done with the object */
@@ -2114,6 +2114,7 @@ DupEnsInvocInternalRep(srcPtr, copyPtr)
if (prevArgObj) {
objPtr = Tcl_DuplicateObj(prevArgObj);
+ Tcl_IncrRefCount(objPtr);
copyPtr->internalRep.twoPtrValue.ptr2 = (VOID *) objPtr;
}
}
@@ -2165,7 +2166,7 @@ SetEnsInvocFromAny(interp, objPtr)
* keep the string around as if it were the command line
* invocation.
*/
- argObj = Tcl_NewStringObj(name, -1);
+ argObj = Tcl_NewStringObj(name, length);
/*
* Free the old representation and install a new one.
diff --git a/itcl/itcl/generic/itcl_methods.c b/itcl/itcl/generic/itcl_methods.c
index 06e6e65e316..2ea41100a2b 100644
--- a/itcl/itcl/generic/itcl_methods.c
+++ b/itcl/itcl/generic/itcl_methods.c
@@ -33,29 +33,6 @@
#include "itclInt.h"
#include "tclCompile.h"
-/* CYGNUS LOCAL */
-/* FIXME - it looks like Michael removed the dependance on these... */
-#if 0
-#ifdef __CYGWIN32__
-
-/* On cygwin32, this is how we import these variables from the Tcl DLL. */
-
-extern int *_imp__tclTraceCompile;
-
-#define tclTraceCompile (*_imp__tclTraceCompile)
-
-extern int *_imp__tclTraceExec;
-
-#define tclTraceExec (*_imp__tclTraceExec)
-
-extern Tcl_ObjType *_imp__tclByteCodeType;
-
-#define tclByteCodeType (*_imp__tclByteCodeType)
-
-#endif
-#endif
-/* END CYGNUS LOCAL */
-
/*
* FORWARD DECLARATIONS
*/
@@ -1025,10 +1002,10 @@ Itcl_EvalMemberCode(interp, mfunc, member, contextObj, objc, objv)
}
else if ((mcode->flags & ITCL_IMPLEMENT_TCL) != 0) {
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- result = Tcl_EvalObj(interp, mcode->procPtr->bodyPtr);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
result = Tcl_EvalObj(interp, mcode->procPtr->bodyPtr, 0);
+#else
+ result = Tcl_EvalObj(interp, mcode->procPtr->bodyPtr);
#endif
/* END CYGNUS LOCAL */
}
@@ -2326,10 +2303,10 @@ Itcl_ConstructBase(interp, contextObj, contextClass)
*/
if (contextClass->initCode) {
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- if (Tcl_EvalObj(interp, contextClass->initCode) != TCL_OK) {
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
+ if (Tcl_EvalObj(interp, contextClass->initCode, 0) != TCL_OK) {
#else
- if (Tcl_EvalObj(interp, contextClass->initCode, 0) != TCL_OK) {
+ if (Tcl_EvalObj(interp, contextClass->initCode) != TCL_OK) {
#endif
/* END CYGNUS LOCAL */
return TCL_ERROR;
diff --git a/itcl/itcl/generic/itcl_objects.c b/itcl/itcl/generic/itcl_objects.c
index fa1ab2ff21f..468c0bf71d2 100644
--- a/itcl/itcl/generic/itcl_objects.c
+++ b/itcl/itcl/generic/itcl_objects.c
@@ -98,9 +98,13 @@ Itcl_CreateObject(interp, name, cdefn, objc, objv, roPtr)
/*
* If installing an object access command will clobber another
- * command, signal an error.
+ * command, signal an error. Be careful to look for the object
+ * only in the current namespace context. Otherwise, we might
+ * find a global command, but that wouldn't be clobbered!
*/
- cmd = Tcl_FindCommand(interp, name, (Tcl_Namespace*)NULL, /* flags */ 0);
+ cmd = Tcl_FindCommand(interp, name, (Tcl_Namespace*)NULL,
+ TCL_NAMESPACE_ONLY);
+
if (cmd != NULL && !Itcl_IsStub(cmd)) {
Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),
"command \"", name, "\" already exists in namespace \"",
@@ -233,10 +237,10 @@ Itcl_CreateObject(interp, name, cdefn, objc, objv, roPtr)
*/
if (result != TCL_OK) {
istate = Itcl_SaveInterpState(interp, result);
- if (newObj->accessCmd != NULL) {
- Tcl_DeleteCommandFromToken(interp, newObj->accessCmd);
- newObj->accessCmd = NULL;
- }
+
+ Tcl_DeleteCommandFromToken(interp, newObj->accessCmd);
+ newObj->accessCmd = NULL;
+
result = Itcl_RestoreInterpState(interp, istate);
}
diff --git a/itcl/itcl/generic/itcl_obsolete.c b/itcl/itcl/generic/itcl_obsolete.c
index 37c9336885d..6d7b2dcf1e9 100644
--- a/itcl/itcl/generic/itcl_obsolete.c
+++ b/itcl/itcl/generic/itcl_obsolete.c
@@ -480,10 +480,10 @@ ItclOldClassCmd(clientData, interp, objc, objv)
if (result == TCL_OK) {
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- result = Tcl_EvalObj(interp, objv[2]);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
result = Tcl_EvalObj(interp, objv[2], 0);
+#else
+ result = Tcl_EvalObj(interp, objv[2]);
#endif
/* END CYGNUS LOCAL */
Tcl_PopCallFrame(interp);
diff --git a/itcl/itcl/generic/itcl_parse.c b/itcl/itcl/generic/itcl_parse.c
index dac966f4e01..23d4510bc14 100644
--- a/itcl/itcl/generic/itcl_parse.c
+++ b/itcl/itcl/generic/itcl_parse.c
@@ -256,10 +256,10 @@ Itcl_ClassCmd(clientData, interp, objc, objv)
if (result == TCL_OK) {
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- result = Tcl_EvalObj(interp, objv[2]);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
result = Tcl_EvalObj(interp, objv[2], 0);
+#else
+ result = Tcl_EvalObj(interp, objv[2]);
#endif
/* END CYGNUS LOCAL */
Tcl_PopCallFrame(interp);
@@ -581,10 +581,10 @@ Itcl_ClassProtectionCmd(clientData, interp, objc, objv)
if (objc == 2) {
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- result = Tcl_EvalObj(interp, objv[1]);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
result = Tcl_EvalObj(interp, objv[1], 0);
+#else
+ result = Tcl_EvalObj(interp, objv[1]);
#endif
/* END CYGNUS LOCAL */
} else {
@@ -1067,6 +1067,8 @@ Itcl_ParseVarResolver(interp, name, contextNs, flags, rPtr)
*/
return TCL_CONTINUE;
}
+
+
/*
* ------------------------------------------------------------------------
diff --git a/itcl/itcl/generic/itcl_util.c b/itcl/itcl/generic/itcl_util.c
index e33823ba877..e6eed63217b 100644
--- a/itcl/itcl/generic/itcl_util.c
+++ b/itcl/itcl/generic/itcl_util.c
@@ -80,7 +80,6 @@ typedef struct InterpState {
* message and abruptly exits.
* ------------------------------------------------------------------------
*/
-#ifndef NDEBUG
void
Itcl_Assert(testExpr, fileName, lineNumber)
@@ -88,12 +87,13 @@ Itcl_Assert(testExpr, fileName, lineNumber)
char *fileName; /* file name containing this call */
int lineNumber; /* line number containing this call */
{
+#ifndef NDEBUG
fprintf(stderr, "Assertion failed: \"%s\" (line %d of %s)",
testExpr, lineNumber, fileName);
abort();
+#endif
}
-#endif
/*
diff --git a/itcl/itcl/itclConfig.sh.in b/itcl/itcl/itclConfig.sh.in
index 82bebb1be31..2e094a1875b 100644
--- a/itcl/itcl/itclConfig.sh.in
+++ b/itcl/itcl/itclConfig.sh.in
@@ -28,6 +28,23 @@ ITCL_BUILD_LIB_SPEC='@ITCL_BUILD_LIB_SPEC@'
# installed directory.
ITCL_LIB_SPEC='@ITCL_LIB_SPEC@'
+# Full path to itcl library for dependency checking.
+ITCL_LIB_FULL_PATH='@ITCL_LIB_FULL_PATH@'
+
+# The name of the Itcl stub library
+ITCL_STUB_LIB_FILE=@ITCL_STUB_LIB_FILE@
+
+# String to pass to linker to pick up the Itcl stub library from its
+# build directory.
+ITCL_BUILD_STUB_LIB_SPEC='@ITCL_BUILD_STUB_LIB_SPEC@'
+
+# String to pass to linker to pick up the Itcl stub library from its
+# installed directory.
+ITCL_STUB_LIB_SPEC='@ITCL_STUB_LIB_SPEC@'
+
+# Full path to itcl library for dependency checking.
+ITCL_STUB_LIB_FULL_PATH='@ITCL_STUB_LIB_FULL_PATH@'
+
# Location of the top-level source directories from which [incr Tcl]
# was built. This is the directory that contains generic, unix, etc.
# If [incr Tcl] was compiled in a different place than the directory
@@ -37,6 +54,3 @@ ITCL_SRC_DIR='@ITCL_SRC_DIR@'
# Name and location of the incr tcl shell. Used during the build process.
ITCL_SH='@ITCL_SH@'
-
-# Full path to itcl library for dependency checking.
-ITCL_LIB_FULL_PATH='@ITCL_LIB_FULL_PATH@' \ No newline at end of file
diff --git a/itcl/itcl/library/itcl.tcl b/itcl/itcl/library/itcl.tcl
index cb3ad949b2a..3a8e54c3b22 100644
--- a/itcl/itcl/library/itcl.tcl
+++ b/itcl/itcl/library/itcl.tcl
@@ -27,7 +27,7 @@
# alive until a procedure exits.
# ----------------------------------------------------------------------
proc ::itcl::local {class name args} {
- set ptr [uplevel eval [list $class $name] $args]
+ set ptr [uplevel [list $class $name] $args]
uplevel [list set itcl-local-$ptr $ptr]
set cmd [uplevel namespace which -command $ptr]
uplevel [list trace variable itcl-local-$ptr u \
diff --git a/itcl/itcl/mac/MW_ItclHeader.pch b/itcl/itcl/mac/MW_ItclHeader.pch
new file mode 100644
index 00000000000..53781d10643
--- /dev/null
+++ b/itcl/itcl/mac/MW_ItclHeader.pch
@@ -0,0 +1,74 @@
+/*
+ * MW_TclHeader.pch --
+ *
+ * This file is the source for a pre-compilied header that gets used
+ * for all files in the Tcl projects. This make compilies go a bit
+ * faster. This file is only intended to be used in the MetroWerks
+ * CodeWarrior environment. It essentially acts as a place to set
+ * compiler flags. See MetroWerks documention for more details.
+ *
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * SCCS: @(#) MW_TclHeader.pch 1.27 97/11/20 18:45:25
+ */
+
+/*
+ * To use the compilied header you need to set the "Prefix file" in
+ * the "C/C++ Language" preference panel to point to the created
+ * compilied header. The name of the header depends on the
+ * architecture we are compiling for (see the code below). For
+ * example, for a 68k app the prefix file should be: MW_TclHeader68K.
+ */
+#if __POWERPC__
+#pragma precompile_target "MW_ItclHeaderPPC"
+#include "MW_TclHeaderPPC"
+#elif __CFM68K__
+#pragma precompile_target "MW_ItclHeaderCFM68K"
+#include "MW_TclHeaderCFM68K"
+#else
+#pragma precompile_target "MW_ItclHeader68K"
+#include "MW_TclHeader68K"
+#endif
+
+/*
+ * Macintosh Tcl must be compiled with certain compiler options to
+ * ensure that it will work correctly. The following pragmas are
+ * used to ensure that those options are set correctly. An error
+ * will occur at compile time if they are not set correctly.
+ */
+
+#if !__option(enumsalwaysint)
+#error Tcl requires the Metrowerks setting "Enums always ints".
+#endif
+
+#if !defined(__POWERPC__)
+#if !__option(far_data)
+#error Tcl requires the Metrowerks setting "Far data".
+#endif
+#endif
+
+#if !defined(__POWERPC__)
+#if !__option(fourbyteints)
+#error Tcl requires the Metrowerks setting "4 byte ints".
+#endif
+#endif
+
+#if !defined(__POWERPC__)
+#if !__option(IEEEdoubles)
+#error Tcl requires the Metrowerks setting "8 byte doubles".
+#endif
+#endif
+
+/*
+ * Place any includes below that will are needed by the majority of the
+ * and is OK to be in any file in the system. The pragma's are used
+ * to control what functions are exported in the Tcl shared library.
+ */
+
+#pragma export on
+#include "itcl.h"
+#pragma export reset
+
diff --git a/itcl/itcl/mac/itclMacLibrary.r b/itcl/itcl/mac/itclMacLibrary.r
index 44b38d2cb54..d9076d44021 100644
--- a/itcl/itcl/mac/itclMacLibrary.r
+++ b/itcl/itcl/mac/itclMacLibrary.r
@@ -148,7 +148,7 @@ resource 'STR ' (-16397, purgeable) {
data 'TEXT' (ITCL_LIBRARY_RESOURCES+1,"pkgIndex",purgeable, preload) {
"# Tcl package index file, version 1.0\n"
- "package ifneeded Itcl 3.0 [list load [file join $dir itcl30[info sharedlibextension]] Itcl]\n"
+ "package ifneeded Itcl 3.1 [list load [file join $dir itcl31[info sharedlibextension]] Itcl]\n"
};
diff --git a/itcl/itcl/mac/pkgIndex.tcl b/itcl/itcl/mac/pkgIndex.tcl
index 921b9b4f8fb..97a59dba370 100644
--- a/itcl/itcl/mac/pkgIndex.tcl
+++ b/itcl/itcl/mac/pkgIndex.tcl
@@ -1,3 +1,3 @@
# Tcl package index file, version 1.0
-package ifneeded Itcl 3.0 [list load [file join $dir itcl30[info sharedlibextension]] Itcl]
+package ifneeded Itcl 3.1 [list load [file join $dir itcl31[info sharedlibextension]] Itcl]
diff --git a/itcl/itcl/pkgIndex.tcl b/itcl/itcl/pkgIndex.tcl
new file mode 100644
index 00000000000..14a29f45a0e
--- /dev/null
+++ b/itcl/itcl/pkgIndex.tcl
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Itcl 3.2 [list load [file join $dir .. "libitcl3.2.so"] Itcl]
diff --git a/itcl/itcl/pkgIndex.tcl.in b/itcl/itcl/pkgIndex.tcl.in
new file mode 100644
index 00000000000..da688ab54a8
--- /dev/null
+++ b/itcl/itcl/pkgIndex.tcl.in
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Itcl @VERSION@ [list load [file join $dir @RELPATH@ "@itcl_LIB_FILE@"] Itcl]
diff --git a/itcl/itcl/tests/all b/itcl/itcl/tests/all
index b50794c1448..b8b15b09f16 100644
--- a/itcl/itcl/tests/all
+++ b/itcl/itcl/tests/all
@@ -3,6 +3,11 @@
# in this directory.
#
# SCCS: @(#) all 1.7 96/02/16 08:55:38
+# ------------------------------------------------------------------
+# THIS SCRIPT IS NOW DEPRECATED! It is kept for older Tcl
+# installations that don't have the "tcltest" package.
+# Instead, use the "all.tcl" script to run the test suite.
+# ------------------------------------------------------------------
foreach i [lsort [glob *.test]] {
if [string match l.*.test $i] {
diff --git a/itcl/itcl/tests/all.tcl b/itcl/itcl/tests/all.tcl
new file mode 100644
index 00000000000..ddefa468dd7
--- /dev/null
+++ b/itcl/itcl/tests/all.tcl
@@ -0,0 +1,122 @@
+# all.tcl --
+#
+# This file contains a top-level script to run all of the Tcl
+# tests. Execute it by invoking "source all.test" when running tcltest
+# in this directory.
+#
+# Copyright (c) 1998-2000 by Ajuba Solutions
+# All rights reserved.
+#
+# RCS: @(#) $Id$
+
+package require tcltest
+namespace import -force ::tcltest::*
+
+# Look for the -exedir flag and find a suitable tclsh executable.
+
+if {(![info exists argv]) || ([llength $argv] < 1)} {
+ set flagArray {}
+} else {
+ set flagArray $argv
+}
+
+array set flag $flagArray
+if {[info exists flag(-exedir)]} {
+ set shell [lindex \
+ [glob -nocomplain \
+ [file join $flag(-exedir) tclsh*.bin] \
+ [file join $flag(-exedir) tclsh*]] 0]
+} else {
+ set shell $::tcltest::tcltest
+}
+
+set ::tcltest::testSingleFile false
+
+# use [pwd] trick to expand relative file paths to absolute paths - MMc
+set cwd [pwd]
+cd [file dirname [info script]]
+set ::tcltest::testsDirectory [pwd]
+cd $cwd
+
+set logfile [file join $::tcltest::temporaryDirectory Log.txt]
+
+puts stdout "Using interp: $shell"
+puts stdout "Running tests in working dir: $::tcltest::testsDirectory"
+if {[llength $::tcltest::skip] > 0} {
+ puts stdout "Skipping tests that match: $::tcltest::skip"
+}
+if {[llength $::tcltest::match] > 0} {
+ puts stdout "Only running tests that match: $::tcltest::match"
+}
+
+if {[llength $::tcltest::skipFiles] > 0} {
+ puts stdout "Skipping test files that match: $::tcltest::skipFiles"
+}
+if {[llength $::tcltest::matchFiles] > 0} {
+ puts stdout "Only sourcing test files that match: $::tcltest::matchFiles"
+}
+
+set timeCmd {clock format [clock seconds]}
+puts stdout "Tests began at [eval $timeCmd]"
+
+# source each of the specified tests
+foreach file [lsort [::tcltest::getMatchingFiles]] {
+ set tail [file tail $file]
+ puts stdout $tail
+
+ # Change to the tests directory so the value of the following
+ # variable is set correctly when we spawn the child test processes
+
+ cd $::tcltest::testsDirectory
+ set cmd [concat [list | $shell $file] [split $argv] \
+ [list -outfile $logfile]]
+ if {[catch {
+ set pipeFd [open $cmd "r"]
+ while {[gets $pipeFd line] >= 0} {
+ puts $::tcltest::outputChannel $line
+ }
+ close $pipeFd
+ } msg]} {
+ # Print results to ::tcltest::outputChannel.
+ puts $::tcltest::outputChannel $msg
+ }
+
+ # Now concatenate the temporary log file to
+ # ::tcltest::outputChannel
+ if {[catch {
+ set fd [open $logfile "r"]
+ while {![eof $fd]} {
+ gets $fd line
+ if {![eof $fd]} {
+ if {[regexp {^([^:]+):\tTotal\t([0-9]+)\tPassed\t([0-9]+)\tSkipped\t([0-9]+)\tFailed\t([0-9]+)} $line null testFile Total Passed Skipped Failed]} {
+ foreach index [list "Total" "Passed" "Skipped" \
+ "Failed"] {
+ incr ::tcltest::numTests($index) [set $index]
+ }
+ incr ::tcltest::numTestFiles
+ if {$Failed > 0} {
+ lappend ::tcltest::failFiles $testFile
+ }
+ }
+ puts $::tcltest::outputChannel $line
+ }
+ }
+ close $fd
+ } msg]} {
+ puts $::tcltest::outputChannel $msg
+ }
+}
+
+set numFailures [llength $::tcltest::failFiles]
+
+# cleanup
+puts stdout "\nTests ended at [eval $timeCmd]"
+::tcltest::cleanupTests 1
+
+if {$numFailures > 0} {
+ return -code error -errorcode $numFailures \
+ -errorinfo "Found $numFailures test file failures"
+} else {
+ return
+}
+exit
diff --git a/itcl/itcl/tests/basic.test b/itcl/itcl/tests/basic.test
index 5aba6bb2560..c60054644f6 100644
--- a/itcl/itcl/tests/basic.test
+++ b/itcl/itcl/tests/basic.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Simple class definition
# ----------------------------------------------------------------------
@@ -41,7 +46,7 @@ test basic-1.1 {define a simple class} {
} ""
test basic-1.2 {class is now defined} {
- find classes Counter
+ itcl::find classes Counter
} {Counter}
test basic-1.3 {access command exists with class name} {
@@ -65,15 +70,15 @@ test basic-1.6 {objects have an access command} {
} {::x}
test basic-1.7a {objects are added to the master list} {
- find objects x
+ itcl::find objects x
} {x}
test basic-1.7b {objects are added to the master list} {
- find objects -class Counter x
+ itcl::find objects -class Counter x
} {x}
test basic-1.8 {objects can be deleted} {
- list [delete object x] [namespace which -command x]
+ list [itcl::delete object x] [namespace which -command x]
} {{} {}}
test basic-1.9 {objects can be recreated with the same name} {
@@ -82,9 +87,14 @@ test basic-1.9 {objects can be recreated with the same name} {
test basic-1.10 {objects can be destroyed by deleting their access command} {
rename ::x ""
- find objects x
+ itcl::find objects x
} {}
+test basic-1.11 {find command supports object names starting with -} {
+ Counter -foo
+ itcl::find objects -class Counter -foo
+} {-foo}
+
# ----------------------------------------------------------------------
# #auto names
# ----------------------------------------------------------------------
@@ -139,7 +149,7 @@ test basic-3.6 {configure actually changes public variable} {
test basic-3.7 {class procs can be accessed} {
Counter::num
-} {6}
+} {7}
test basic-3.8 {obsolete syntax is no longer allowed} {
list [catch "Counter :: num" msg] $msg
@@ -152,8 +162,8 @@ Instead, remove the spaces from your procedure invocations:
# Classes can be destroyed and redefined
# ----------------------------------------------------------------------
test basic-4.1 {classes can be destroyed} {
- list [delete class Counter] \
- [find classes Counter] \
+ list [itcl::delete class Counter] \
+ [itcl::find classes Counter] \
[namespace children :: Counter] \
[namespace which -command Counter]
} {{} {} {} {}}
@@ -177,9 +187,9 @@ test basic-4.4 {objects can be created from the new class} {
} {counter0 counter1}
test basic-4.5 {when a class is destroyed, its objects are deleted} {
- list [lsort [find objects counter*]] \
- [delete class Counter] \
- [lsort [find objects counter*]]
+ list [lsort [itcl::find objects counter*]] \
+ [itcl::delete class Counter] \
+ [lsort [itcl::find objects counter*]]
} {{counter0 counter1} {} {}}
# ----------------------------------------------------------------------
@@ -317,3 +327,6 @@ test basic-6.7 {common variables can be unset} {
test basic-6.8 {common variables can be redefined} {
test_arrays0 do set undefined "scalar"
} {scalar}
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/body.test b/itcl/itcl/tests/body.test
index fbd4e65e21a..079a69cf94b 100644
--- a/itcl/itcl/tests/body.test
+++ b/itcl/itcl/tests/body.test
@@ -13,13 +13,18 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Test "body" command
# ----------------------------------------------------------------------
test body-1.1 {define a class with missing bodies and arg lists} {
- class test_body {
+ itcl::class test_body {
constructor {args} {}
destructor {}
@@ -42,42 +47,42 @@ test body-1.2 {cannot use methods without a body} {
} {1 {member function "::test_body::any" is not defined and cannot be autoloaded}}
test body-1.3 {check syntax of "body" command} {
- list [catch "body test_body::any" msg] $msg
-} {1 {wrong # args: should be "body class::func arglist body"}}
+ list [catch "itcl::body test_body::any" msg] $msg
+} {1 {wrong # args: should be "itcl::body class::func arglist body"}}
test body-1.4 {make sure members are found correctly} {
- list [catch "body test_body::xyzzyxyzzyxyzzy {} {}" msg] $msg
+ list [catch "itcl::body test_body::xyzzyxyzzyxyzzy {} {}" msg] $msg
} {1 {function "xyzzyxyzzyxyzzy" is not defined in class "::test_body"}}
test body-1.5a {members without an argument list can have any args} {
- body test_body::any {} {return "any"}
+ itcl::body test_body::any {} {return "any"}
list [catch "test_body0 any" msg] $msg
} {0 any}
test body-1.5b {members without an argument list can have any args} {
- body test_body::any {x} {return "any: $x"}
+ itcl::body test_body::any {x} {return "any: $x"}
list [catch "test_body0 any 1" msg] $msg
} {0 {any: 1}}
test body-1.5c {members without an argument list can have any args} {
- body test_body::any {x {y 2}} {return "any: $x $y"}
+ itcl::body test_body::any {x {y 2}} {return "any: $x $y"}
list [catch "test_body0 any 1" msg] $msg
} {0 {any: 1 2}}
test body-1.6a {an empty argument list must stay empty} {
- list [catch {body test_body::zero {x y} {return "zero: $x $y"}} msg] $msg
+ list [catch {itcl::body test_body::zero {x y} {return "zero: $x $y"}} msg] $msg
} {1 {argument list changed for function "::test_body::zero": should be ""}}
test body-1.6b {an empty argument list must stay empty} {
- list [catch {body test_body::zero {} {return "zero"}} msg] $msg
+ list [catch {itcl::body test_body::zero {} {return "zero"}} msg] $msg
} {0 {}}
test body-1.7a {preserve argument list: fixed arguments} {
- list [catch {body test_body::one {x y} {return "one: $x $y"}} msg] $msg
+ list [catch {itcl::body test_body::one {x y} {return "one: $x $y"}} msg] $msg
} {1 {argument list changed for function "::test_body::one": should be "x"}}
test body-1.7b {preserve argument list: fixed arguments} {
- list [catch {body test_body::one {a} {return "one: $a"}} msg] $msg
+ list [catch {itcl::body test_body::one {a} {return "one: $a"}} msg] $msg
} {0 {}}
test body-1.7c {preserve argument list: fixed arguments} {
@@ -85,11 +90,11 @@ test body-1.7c {preserve argument list: fixed arguments} {
} {0 {one: 1.0}}
test body-1.8a {preserve argument list: fixed arguments} {
- list [catch {body test_body::two {x} {return "two: $x"}} msg] $msg
+ list [catch {itcl::body test_body::two {x} {return "two: $x"}} msg] $msg
} {1 {argument list changed for function "::test_body::two": should be "x y"}}
test body-1.8b {preserve argument list: fixed arguments} {
- list [catch {body test_body::two {a b} {return "two: $a $b"}} msg] $msg
+ list [catch {itcl::body test_body::two {a b} {return "two: $a $b"}} msg] $msg
} {0 {}}
test body-1.8c {preserve argument list: fixed arguments} {
@@ -97,32 +102,32 @@ test body-1.8c {preserve argument list: fixed arguments} {
} {0 {two: 2.0 3.0}}
test body-1.9a {preserve argument list: default arguments} {
- list [catch {body test_body::defvals {x} {}} msg] $msg
+ list [catch {itcl::body test_body::defvals {x} {}} msg] $msg
} {1 {argument list changed for function "::test_body::defvals": should be "x {y 0} {z 1}"}}
test body-1.9b {preserve argument list: default arguments} {
- list [catch {body test_body::defvals {a {b 0} {c 2}} {}} msg] $msg
+ list [catch {itcl::body test_body::defvals {a {b 0} {c 2}} {}} msg] $msg
} {1 {argument list changed for function "::test_body::defvals": should be "x {y 0} {z 1}"}}
test body-1.9c {preserve argument list: default arguments} {
- list [catch {body test_body::defvals {a {b 0} {c 1}} {}} msg] $msg
+ list [catch {itcl::body test_body::defvals {a {b 0} {c 1}} {}} msg] $msg
} {0 {}}
test body-1.10a {preserve argument list: variable arguments} {
- list [catch {body test_body::varargs {} {}} msg] $msg
+ list [catch {itcl::body test_body::varargs {} {}} msg] $msg
} {1 {argument list changed for function "::test_body::varargs": should be "x args"}}
test body-1.10b {preserve argument list: variable arguments} {
- list [catch {body test_body::varargs {a} {}} msg] $msg
+ list [catch {itcl::body test_body::varargs {a} {}} msg] $msg
} {0 {}}
test body-1.10c {preserve argument list: variable arguments} {
- list [catch {body test_body::varargs {a b c} {}} msg] $msg
+ list [catch {itcl::body test_body::varargs {a b c} {}} msg] $msg
} {0 {}}
test body-1.11 {redefined body really does change} {
list [test_body0 override "test #1"] \
- [body test_body::override {text} {return "new: $text"}] \
+ [itcl::body test_body::override {text} {return "new: $text"}] \
[test_body0 override "test #2"]
} {{override: test #1} {} {new: test #2}}
@@ -130,7 +135,7 @@ test body-1.11 {redefined body really does change} {
# Test "body" command with inheritance
# ----------------------------------------------------------------------
test body-2.1 {inherit from a class with missing bodies} {
- class test_ibody {
+ itcl::class test_ibody {
inherit test_body
method zero {}
}
@@ -138,20 +143,20 @@ test body-2.1 {inherit from a class with missing bodies} {
} {test_ibody0}
test body-2.2 {redefine a method in a derived class} {
- body test_ibody::zero {} {return "ibody zero"}
+ itcl::body test_ibody::zero {} {return "ibody zero"}
list [test_ibody0 info function zero] \
[test_ibody0 info function test_body::zero]
} {{public method ::test_ibody::zero {} {return "ibody zero"}} {public method ::test_body::zero {} {return "zero"}}}
test body-2.3 {try to redefine a method that was not declared} {
- list [catch {body test_ibody::one {x} {return "new"}} msg] $msg
+ list [catch {itcl::body test_ibody::one {x} {return "new"}} msg] $msg
} {1 {function "one" is not defined in class "::test_ibody"}}
# ----------------------------------------------------------------------
# Test "configbody" command
# ----------------------------------------------------------------------
test body-3.1 {define a class with public variables} {
- class test_cbody {
+ itcl::class test_cbody {
private variable priv
protected variable prot
@@ -164,19 +169,19 @@ test body-3.1 {define a class with public variables} {
} ""
test body-3.2 {check syntax of "configbody" command} {
- list [catch "configbody test_cbody::option" msg] $msg
-} {1 {wrong # args: should be "configbody class::option body"}}
+ list [catch "itcl::configbody test_cbody::option" msg] $msg
+} {1 {wrong # args: should be "itcl::configbody class::option body"}}
test body-3.3 {make sure that members are found correctly} {
- list [catch "configbody test_cbody::xyzzy {}" msg] $msg
+ list [catch "itcl::configbody test_cbody::xyzzy {}" msg] $msg
} {1 {option "xyzzy" is not defined in class "::test_cbody"}}
test body-3.4 {private variables have no config code} {
- list [catch "configbody test_cbody::priv {bogus}" msg] $msg
+ list [catch "itcl::configbody test_cbody::priv {bogus}" msg] $msg
} {1 {option "::test_cbody::priv" is not a public configuration option}}
test body-3.5 {protected variables have no config code} {
- list [catch "configbody test_cbody::prot {bogus}" msg] $msg
+ list [catch "itcl::configbody test_cbody::prot {bogus}" msg] $msg
} {1 {option "::test_cbody::prot" is not a public configuration option}}
test body-3.6 {can use public variables without a body} {
@@ -186,7 +191,7 @@ test body-3.6 {can use public variables without a body} {
test body-3.7 {redefined body really does change} {
list [test_cbody0 configure -option "hello"] \
- [configbody test_cbody::option {lappend messages "new: $option"}] \
+ [itcl::configbody test_cbody::option {lappend messages "new: $option"}] \
[test_cbody0 configure -option "goodbye"] \
[set test_cbody::messages] \
} {{} {} {} {{option: hello} {new: goodbye}}}
@@ -195,7 +200,7 @@ test body-3.7 {redefined body really does change} {
# Test "configbody" command with inheritance
# ----------------------------------------------------------------------
test body-4.1 {inherit from a class with missing config bodies} {
- class test_icbody {
+ itcl::class test_icbody {
inherit test_cbody
public variable option "icbody"
}
@@ -203,16 +208,19 @@ test body-4.1 {inherit from a class with missing config bodies} {
} {test_icbody0}
test body-4.2 {redefine a body in a derived class} {
- configbody test_icbody::option {lappend messages "test_icbody: $option"}
+ itcl::configbody test_icbody::option {lappend messages "test_icbody: $option"}
list [test_icbody0 info variable option] \
[test_icbody0 info variable test_cbody::option]
} {{public variable ::test_icbody::option icbody {lappend messages "test_icbody: $option"} icbody} {public variable ::test_cbody::option {} {lappend messages "new: $option"} {}}}
test body-4.3 {try to redefine a body for a variable that was not declared} {
- list [catch {configbody test_icbody::nocode {return "new"}} msg] $msg
+ list [catch {itcl::configbody test_icbody::nocode {return "new"}} msg] $msg
} {1 {option "nocode" is not defined in class "::test_icbody"}}
# ----------------------------------------------------------------------
# Clean up
# ----------------------------------------------------------------------
-delete class test_body test_cbody
+itcl::delete class test_body test_cbody
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/chain.test b/itcl/itcl/tests/chain.test
index c78d5f34792..12cd2660447 100644
--- a/itcl/itcl/tests/chain.test
+++ b/itcl/itcl/tests/chain.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Chaining methods and procs
# ----------------------------------------------------------------------
@@ -145,4 +150,7 @@ test chain-3.0 {invoke "chain" outside of a class} {
# ----------------------------------------------------------------------
# Clean up
# ----------------------------------------------------------------------
-delete class test_chain_d test_chain_c test_chain_b test_chain_a
+itcl::delete class test_chain_d test_chain_c test_chain_b test_chain_a
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/defs b/itcl/itcl/tests/defs
index 4be66bc07c2..68a3779c051 100644
--- a/itcl/itcl/tests/defs
+++ b/itcl/itcl/tests/defs
@@ -10,6 +10,11 @@
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# SCCS: @(#) defs 1.44 96/10/08 17:26:58
+# ------------------------------------------------------------------
+# THIS SCRIPT IS NOW DEPRECATED! It is kept for older Tcl
+# installations that don't have the "tcltest" package.
+# Instead, use "package require tcltest" in the test suite.
+# ------------------------------------------------------------------
if ![info exists VERBOSE] {
set VERBOSE 0
@@ -81,6 +86,9 @@ if {[info commands memory] == ""} {
# 'echo' etc available.
catch {unset testConfig}
+
+package require Itcl
+
if {$tcl_platform(platform) == "unix"} {
set testConfig(unixOnly) 1
set testConfig(tempNotPc) 1
diff --git a/itcl/itcl/tests/delete.test b/itcl/itcl/tests/delete.test
index bf4ce5b61b8..dc320824643 100644
--- a/itcl/itcl/tests/delete.test
+++ b/itcl/itcl/tests/delete.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Deleting classes and objects
# ----------------------------------------------------------------------
@@ -31,15 +36,15 @@ test delete-1.2 {create some base class objects} {
for {set i 0} {$i < 5} {incr i} {
test_delete_base #auto
}
- lsort [find objects -class test_delete_base]
+ lsort [itcl::find objects -class test_delete_base]
} {test_delete_base0 test_delete_base1 test_delete_base2 test_delete_base3 test_delete_base4}
test delete-1.3 {delete the base class--class and all objects go away} {
- list [delete class test_delete_base] \
- [find classes test_delete_base] \
+ list [itcl::delete class test_delete_base] \
+ [itcl::find classes test_delete_base] \
[namespace children :: test_delete_base] \
[namespace which -command test_delete_base] \
- [find objects test_delete_base*]
+ [itcl::find objects test_delete_base*]
} {{} {} {} {} {}}
# ----------------------------------------------------------------------
@@ -72,16 +77,16 @@ test delete-2.2 {create some base and derived class objects} {
for {set i 0} {$i < 3} {incr i} {
test_delete #auto
}
- lsort [find objects -isa test_delete_base]
+ lsort [itcl::find objects -isa test_delete_base]
} {test_delete0 test_delete1 test_delete2 test_delete_base0 test_delete_base1 test_delete_base2}
test delete-2.3 {delete the base class--class and all objects go away} {
- list [delete class test_delete_base] \
- [find classes test_delete*] \
+ list [itcl::delete class test_delete_base] \
+ [itcl::find classes test_delete*] \
[namespace children :: test_delete*] \
[namespace which -command test_delete_base] \
[namespace which -command test_delete] \
- [find objects test_delete*]
+ [itcl::find objects test_delete*]
} {{} {} {} {} {} {}}
test delete-2.4 {object destructors get invoked properly} {
@@ -118,16 +123,16 @@ test delete-3.2 {create some base and derived class objects} {
for {set i 0} {$i < 3} {incr i} {
test_delete #auto
}
- lsort [find objects -isa test_delete_base]
+ lsort [itcl::find objects -isa test_delete_base]
} {test_delete0 test_delete1 test_delete2 test_delete_base0 test_delete_base1 test_delete_base2}
test delete-3.3 {deleting a class namespace is like deleting a class} {
list [namespace delete test_delete_base] \
- [find classes test_delete*] \
+ [itcl::find classes test_delete*] \
[namespace children :: test_delete*] \
[namespace which -command test_delete_base] \
[namespace which -command test_delete] \
- [find objects test_delete*]
+ [itcl::find objects test_delete*]
} {{} {} {} {} {} {}}
test delete-3.4 {object destructors get invoked, even during catastrophe} {
@@ -148,7 +153,7 @@ test basic-4.1 {define a class where objects destroy themselves} {
eval $deletecommand
}
method killme {code} {
- delete object $this
+ itcl::delete object $this
eval $code
}
}
@@ -156,17 +161,17 @@ test basic-4.1 {define a class where objects destroy themselves} {
test basic-4.2 {an object can delete itself} {
set obj [test_delete #auto -x "data stays"]
- list [$obj killme {return $x}] [find objects -isa test_delete]
+ list [$obj killme {return $x}] [itcl::find objects -isa test_delete]
} {{data stays} {}}
test basic-4.3 {the "this" variable becomes null after delete} {
set obj [test_delete #auto]
- list [$obj killme {return $this}] [find objects -isa test_delete]
+ list [$obj killme {return $this}] [itcl::find objects -isa test_delete]
} {{} {}}
test basic-4.4 {an object being destructed can't be deleted} {
- set obj [test_delete #auto -deletecommand {delete object $this}]
- list [catch {delete object $obj} msg] $msg
+ set obj [test_delete #auto -deletecommand {itcl::delete object $this}]
+ list [catch {itcl::delete object $obj} msg] $msg
} {1 {can't delete an object while it is being destructed}}
namespace delete test_delete
@@ -185,20 +190,23 @@ test basic-5.1 {define a simple class} {
test basic-5.2 {delete using a qualified name} {
namespace eval test_delete2 {test_delete_name #auto}
- set cmd {delete object test_delete2::test_delete_name0}
- list [catch $cmd msg] $msg [find objects -isa test_delete_name]
+ set cmd {itcl::delete object test_delete2::test_delete_name0}
+ list [catch $cmd msg] $msg [itcl::find objects -isa test_delete_name]
} {0 {} {}}
test basic-5.3 {delete using a scoped value} {
- set obj [namespace eval test_delete2 {code [test_delete_name #auto]}]
- set cmd [list delete object $obj]
- list [catch $cmd msg] $msg [find objects -isa test_delete_name]
+ set obj [namespace eval test_delete2 {itcl::code [test_delete_name #auto]}]
+ set cmd [list itcl::delete object $obj]
+ list [catch $cmd msg] $msg [itcl::find objects -isa test_delete_name]
} {0 {} {}}
test basic-5.4 {scoped command names are decoded properly} {
- list [catch {delete object {namespace inscope ::xyzzy xxx}} msg] $msg \
- [catch {delete object {namespace inscope :: xxx yyy}} msg] $msg \
- [catch {delete object {namespace inscope :: xyzzy}} msg] $msg
+ list [catch {itcl::delete object {namespace inscope ::xyzzy xxx}} msg] $msg \
+ [catch {itcl::delete object {namespace inscope :: xxx yyy}} msg] $msg \
+ [catch {itcl::delete object {namespace inscope :: xyzzy}} msg] $msg
} {1 {unknown namespace "::xyzzy"} 1 {malformed command "namespace inscope :: xxx yyy": should be "namespace inscope namesp command"} 1 {object "namespace inscope :: xyzzy" not found}}
namespace delete test_delete_name test_delete2
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/ensemble.test b/itcl/itcl/tests/ensemble.test
index 21892a9fed5..e818e123aca 100644
--- a/itcl/itcl/tests/ensemble.test
+++ b/itcl/itcl/tests/ensemble.test
@@ -13,14 +13,19 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
test ensemble-1.1 {ensemble name must be specified} {
- list [catch {ensemble} msg] $msg
-} {1 {wrong # args: should be "ensemble name ?command arg arg...?"}}
+ list [catch {itcl::ensemble} msg] $msg
+} {1 {wrong # args: should be "itcl::ensemble name ?command arg arg...?"}}
test ensemble-1.2 {creating a new ensemble} {
- ensemble test_numbers {
+ itcl::ensemble test_numbers {
part one {x} {
return "one: $x"
}
@@ -30,7 +35,7 @@ test ensemble-1.2 {creating a new ensemble} {
}
} ""
test ensemble-1.3 {adding to an existing ensemble} {
- ensemble test_numbers part three {x y z} {
+ itcl::ensemble test_numbers part three {x y z} {
return "three: $x $y $z"
}
} ""
@@ -52,7 +57,7 @@ test ensemble-1.6 {errors trigger a usage summary} {
test ensemble-1.7 {one part can't overwrite another} {
set cmd {
- ensemble test_numbers part three {} {
+ itcl::ensemble test_numbers part three {} {
return "three: new version"
}
}
@@ -61,7 +66,7 @@ test ensemble-1.7 {one part can't overwrite another} {
test ensemble-1.8 {an ensemble can't overwrite another part} {
set cmd {
- ensemble test_numbers ensemble three part new {} {
+ itcl::ensemble test_numbers ensemble three part new {} {
return "three: new version"
}
}
@@ -69,34 +74,34 @@ test ensemble-1.8 {an ensemble can't overwrite another part} {
} {1 {part "three" is not an ensemble}}
test ensemble-1.9 {body errors are handled gracefully} {
- list [catch "ensemble test_numbers {foo bar baz}" msg] $msg $errorInfo
+ list [catch "itcl::ensemble test_numbers {foo bar baz}" msg] $msg $errorInfo
} {1 {invalid command name "foo"} {invalid command name "foo"
while executing
"foo bar baz"
("ensemble" body line 1)
invoked from within
-"ensemble test_numbers {foo bar baz}"}}
+"itcl::ensemble test_numbers {foo bar baz}"}}
test ensemble-1.10 {part errors are handled gracefully} {
- list [catch "ensemble test_numbers {part foo}" msg] $msg $errorInfo
+ list [catch "itcl::ensemble test_numbers {part foo}" msg] $msg $errorInfo
} {1 {wrong # args: should be "part name args body"} {wrong # args: should be "part name args body"
while executing
"part foo"
("ensemble" body line 1)
invoked from within
-"ensemble test_numbers {part foo}"}}
+"itcl::ensemble test_numbers {part foo}"}}
test ensemble-1.11 {part argument errors are handled gracefully} {
- list [catch "ensemble test_numbers {part foo {{}} {}}" msg] $msg $errorInfo
+ list [catch "itcl::ensemble test_numbers {part foo {{}} {}}" msg] $msg $errorInfo
} {1 {procedure "foo" has argument with no name} {procedure "foo" has argument with no name
while executing
"part foo {{}} {}"
("ensemble" body line 1)
invoked from within
-"ensemble test_numbers {part foo {{}} {}}"}}
+"itcl::ensemble test_numbers {part foo {{}} {}}"}}
test ensemble-2.0 {defining subensembles} {
- ensemble test_numbers {
+ itcl::ensemble test_numbers {
ensemble hex {
part base {} {
return 16
@@ -158,7 +163,7 @@ test ensemble-2.6 {errors from sub-ensembles} {
test ensemble-2.7 {sub-ensembles can't be accidentally redefined} {
set cmd {
- ensemble test_numbers part octal {args} {
+ itcl::ensemble test_numbers part octal {args} {
return "octal: $args"
}
}
@@ -166,7 +171,7 @@ test ensemble-2.7 {sub-ensembles can't be accidentally redefined} {
} {1 {part "octal" already exists in ensemble}}
test ensemble-3.0 {an error handler part can be used to handle errors} {
- ensemble test_numbers {
+ itcl::ensemble test_numbers {
part @error {args} {
return "error: $args"
}
@@ -183,3 +188,6 @@ test ensemble-3.1 {the error handler part shows up as generic "...and"} {
test_numbers three x y z
test_numbers two x y
...and others described on the man page}}
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/import.test b/itcl/itcl/tests/import.test
new file mode 100644
index 00000000000..af28b6e0f42
--- /dev/null
+++ b/itcl/itcl/tests/import.test
@@ -0,0 +1,158 @@
+#
+# Tests for "auto_import" and autoloading facility
+# ----------------------------------------------------------------------
+# AUTHOR: Michael J. McLennan
+# Bell Labs Innovations for Lucent Technologies
+# mmclennan@lucent.com
+# http://www.tcltk.com/itcl
+#
+# RCS: $Id$
+# ----------------------------------------------------------------------
+# Copyright (c) 1993-1998 Lucent Technologies, Inc.
+# ======================================================================
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+package require tcltest
+namespace import -force ::tcltest::*
+
+if {[string compare test [info procs test]] == 1} then {source defs}
+
+package require Itcl
+
+# ----------------------------------------------------------------------
+# Test "itcl::import::stub" command
+# ----------------------------------------------------------------------
+test import-1.1 {basic syntax for "stub" command} {
+ list [catch {itcl::import::stub} result] $result
+} {1 {wrong # args: should be one of...
+ stub create name
+ stub exists name}}
+
+test import-1.2 {"stub create" requires one argument} {
+ list [catch {itcl::import::stub create} result] $result \
+ [catch {itcl::import::stub create x y} result] $result
+} {1 {wrong # args: should be "itcl::import::stub create name"} 1 {wrong # args: should be "itcl::import::stub create name"}}
+
+test import-1.3 {"stub exists" requires one argument} {
+ list [catch {itcl::import::stub exists} result] $result \
+ [catch {itcl::import::stub exists x y} result] $result
+} {1 {wrong # args: should be "itcl::import::stub exists name"} 1 {wrong # args: should be "itcl::import::stub exists name"}}
+
+set interp [interp create]
+$interp eval {
+ package require Itcl
+ proc auto_load {cmd {namespace {}}} {
+ global debug
+ proc $cmd {args} [format {return "%s: $args"} $cmd]
+ append debug "(auto_load: $cmd)"
+ return 1
+ }
+}
+
+test import-1.4 {"stub create" creates a stub that triggers autoloading} {
+ $interp eval {
+ set debug ""
+ list [itcl::import::stub create foo::bar::test] \
+ [info commands ::foo::bar::test] \
+ [::foo::bar::test 1 2 3] \
+ $debug
+ }
+} {{} ::foo::bar::test {::foo::bar::test: 1 2 3} {(auto_load: ::foo::bar::test)}}
+
+test import-1.5 {"stub exists" recognizes stubs created by "stub create"} {
+ $interp eval {
+ set debug ""
+ itcl::import::stub create foo::bar::stub1
+ proc foo::bar::proc1 {args} {return "proc1: $args"}
+ list [itcl::import::stub exists foo::bar::stub1] \
+ [itcl::import::stub exists foo::bar::proc1]
+ }
+} {1 0}
+
+test import-1.6 {stubs can be autoloaded and replaced} {
+ $interp eval {
+ set debug ""
+ itcl::import::stub create foo::bar::stub2
+ list [itcl::import::stub exists foo::bar::stub2] \
+ [::foo::bar::stub2 a b c] \
+ [itcl::import::stub exists foo::bar::stub2] \
+ [::foo::bar::stub2 a b c] \
+ $debug
+ }
+} {1 {::foo::bar::stub2: a b c} 0 {::foo::bar::stub2: a b c} {(auto_load: ::foo::bar::stub2)}}
+
+catch {interp delete $interp}
+
+# ----------------------------------------------------------------------
+# Test "itcl::import::stub" command
+# ----------------------------------------------------------------------
+set interp [interp create]
+$interp eval {
+ package require Itcl
+ proc auto_load {cmd {namespace {}}} {
+ proc $cmd {args} [format {return "%s: $args"} $cmd]
+ return 1
+ }
+}
+
+test import-2.1 {initialize some commands for autoloading} {
+ $interp eval {
+ namespace eval test {
+ namespace export foo*
+ }
+ itcl::import::stub create ::test::foo1
+ itcl::import::stub create ::test::foo2
+ lsort [info commands ::test::*]
+ }
+} {::test::foo1 ::test::foo2}
+
+test import-2.2 {stubs can be imported into other namespaces} {
+ $interp eval {
+ namespace eval user1 { namespace import ::test::* }
+ namespace eval user2 { namespace import ::test::* }
+ namespace eval user3 { namespace import ::test::* }
+ list [lsort [info commands ::user1::*]] \
+ [namespace origin ::user1::foo1] \
+ [namespace origin ::user1::foo2]
+ }
+} {{::user1::foo1 ::user1::foo2} ::test::foo1 ::test::foo2}
+
+test import-2.3 {stubs can be autoloaded and imported links remain} {
+ $interp eval {
+ list [::user1::foo1 1 2 3 4] \
+ [namespace origin ::user1::foo1] \
+ [namespace origin ::user2::foo1] \
+ [namespace origin ::user3::foo1] \
+ [itcl::import::stub exists ::test::foo1]
+ }
+} {{::test::foo1: 1 2 3 4} ::test::foo1 ::test::foo1 ::test::foo1 0}
+
+test import-2.3 {itcl::class handles stubs correctly} {
+ $interp eval {
+ proc auto_load {cmd {namespace {}}} {
+ itcl::class $cmd { }
+ return 1
+ }
+ list [::user2::foo2 x] \
+ [x info class] \
+ [namespace origin ::user1::foo2] \
+ [namespace origin ::user2::foo2] \
+ [namespace origin ::user3::foo2] \
+ [itcl::import::stub exists ::test::foo2]
+ }
+} {x ::test::foo2 ::test::foo2 ::test::foo2 ::test::foo2 0}
+
+test import-2.3 {itcl::class will overwrite stubs in an existing namespace} {
+ $interp eval {
+ namespace eval test::buried { }
+ itcl::import::stub create ::test::buried
+ itcl::import::stub create ::test::buried::stub
+ list [catch {::test::buried xx} result] $result [xx info class]
+ }
+} {0 xx ::test::buried}
+
+catch {interp delete $interp}
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/info.test b/itcl/itcl/tests/info.test
index 34d49da2966..628d890a284 100644
--- a/itcl/itcl/tests/info.test
+++ b/itcl/itcl/tests/info.test
@@ -13,19 +13,24 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Class definition with one of everything
# ----------------------------------------------------------------------
test info-1.1 {define a simple class} {
- class test_info_base {
+ itcl::class test_info_base {
method base {} {return "default"}
variable base {}
method do {args} {eval $args}
}
- class test_info {
+ itcl::class test_info {
inherit test_info_base
constructor {args} {
@@ -89,6 +94,10 @@ test basic-1.3 {info: errors trigger usage info} {
info variable ?name? ?-protection? ?-type? ?-name? ?-init? ?-value? ?-config?
...and others described on the man page}}
+test info-1.4 {info: info class works on class itself} {
+ namespace eval test_info { info class }
+} {::test_info}
+
# ----------------------------------------------------------------------
# Data members
# ----------------------------------------------------------------------
@@ -381,4 +390,7 @@ test info-5.2 {info exists} {
# ----------------------------------------------------------------------
# Clean up
# ----------------------------------------------------------------------
-delete class test_info test_info_base
+itcl::delete class test_info test_info_base
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/inherit.test b/itcl/itcl/tests/inherit.test
index d391573dee4..e20d5065e78 100644
--- a/itcl/itcl/tests/inherit.test
+++ b/itcl/itcl/tests/inherit.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Test construction/destruction with inheritance
# ----------------------------------------------------------------------
@@ -99,7 +104,7 @@ test inherit-1.2 {constructors should be invoked in the proper order} {
test inherit-1.3 {destructors should be invoked in the proper order} {
set ::test_cd_watch ""
- list [delete object test_cd_mongrel0] [set ::test_cd_watch]
+ list [itcl::delete object test_cd_mongrel0] [set ::test_cd_watch]
} {{} {{mongrel destruct} {foobar destruct} {foo destruct} {bar destruct} {geek destruct}}}
test inherit-1.4 {constructors are optional} {
@@ -109,7 +114,7 @@ test inherit-1.4 {constructors are optional} {
test inherit-1.5 {destructors are optional} {
set ::test_cd_watch ""
- list [delete object test_cd_none0] [set ::test_cd_watch]
+ list [itcl::delete object test_cd_none0] [set ::test_cd_watch]
} {{} {{bar destruct} {geek destruct}}}
test inherit-1.6 {construction ok if constructors are missing} {
@@ -119,13 +124,13 @@ test inherit-1.6 {construction ok if constructors are missing} {
test inherit-1.7 {destruction ok if destructors are missing} {
set ::test_cd_watch ""
- list [delete object test_cd_skip0] [set ::test_cd_watch]
+ list [itcl::delete object test_cd_skip0] [set ::test_cd_watch]
} {{} {{skip destruct} {bar destruct} {geek destruct}}}
test inherit-1.8 {errors during construction are cleaned up and reported} {
global errorInfo test_cd_watch
set test_cd_watch ""
- body test_cd_bar::constructor {args} {error "bar: failed"}
+ itcl::body test_cd_bar::constructor {args} {error "bar: failed"}
list [catch {test_cd_mongrel #auto bob} msg] $msg \
$errorInfo $test_cd_watch
} {1 {bar: failed} {bar: failed
@@ -144,24 +149,24 @@ test inherit-1.8 {errors during construction are cleaned up and reported} {
test inherit-1.9 {errors during destruction prevent object delete} {
global errorInfo test_cd_watch
- body test_cd_bar::constructor {args} {return "bar: $args"}
- body test_cd_bar::destructor {} {error "bar: failed"}
+ itcl::body test_cd_bar::constructor {args} {return "bar: $args"}
+ itcl::body test_cd_bar::destructor {} {error "bar: failed"}
test_cd_mongrel mongrel1 ted
set test_cd_watch ""
- list [catch {delete object mongrel1} msg] $msg \
- $errorInfo $test_cd_watch [find objects mongrel*]
+ list [catch {itcl::delete object mongrel1} msg] $msg \
+ $errorInfo $test_cd_watch [itcl::find objects mongrel*]
} {1 {bar: failed} {bar: failed
while executing
"error "bar: failed""
while deleting object "::mongrel1" in ::test_cd_bar::destructor (body line 1)
invoked from within
-"delete object mongrel1"} {{mongrel destruct} {foobar destruct} {foo destruct}} mongrel1}
+"itcl::delete object mongrel1"} {{mongrel destruct} {foobar destruct} {foo destruct}} mongrel1}
test inherit-1.10 {errors during destruction prevent class delete} {
- list [catch {delete class test_cd_foo} msg] $msg
+ list [catch {itcl::delete class test_cd_foo} msg] $msg
} {1 {bar: failed}}
-eval namespace delete [find classes test_cd_*]
+eval namespace delete [itcl::find classes test_cd_*]
# ----------------------------------------------------------------------
# Test data member access and scoping
@@ -213,7 +218,7 @@ test inherit-2.4 {methods have access to shadowed data members} {
[test_cd_mongrel0 test_cd_mongrel::do set test_cd_bar::x]
} {foo-x foo-x bar-x foo-x bar-x}
-eval namespace delete [find classes test_cd_*]
+eval namespace delete [itcl::find classes test_cd_*]
# ----------------------------------------------------------------------
# Test public variables and "configure" method
@@ -291,7 +296,7 @@ test inherit-3.8 {"cget" does proper name resolution} {
[test_cd_mongrel0 cget -test_cd_mongrel::x]
} {one two three one}
-eval namespace delete [find classes test_cd_*]
+eval namespace delete [itcl::find classes test_cd_*]
# ----------------------------------------------------------------------
# Test inheritance info
@@ -355,7 +360,7 @@ test inherit-4.7 {built-in "isa" method works within methods} {
} {1 1 1 1 1}
test inherit-4.8 {built-in "isa" method recognizes bad classes} {
- class test_cd_other {}
+ itcl::class test_cd_other {}
test_cd_mongrel0 isa test_cd_other
} {0}
@@ -363,7 +368,7 @@ test inherit-4.9 {built-in "isa" method recognizes bad classes} {
list [catch {test_cd_mongrel0 isa test_cd_bogus} msg] $msg
} {1 {class "test_cd_bogus" not found in context "::test_cd_foo"}}
-eval namespace delete [find classes test_cd_*]
+eval namespace delete [itcl::find classes test_cd_*]
# ----------------------------------------------------------------------
# Test "find objects"
@@ -391,38 +396,38 @@ test inherit-5.2 {create objects for info tests} {
} {test_cd_foo0 test_cd_foo1 test_cd_foobar0 test_cd_geek0 test_cd_mongrel0}
test inherit-5.3 {find objects: -class qualifier} {
- lsort [find objects -class test_cd_foo]
+ lsort [itcl::find objects -class test_cd_foo]
} {test_cd_foo0 test_cd_foo1}
test inherit-5.4 {find objects: -class qualifier} {
- lsort [find objects -class test_cd_mongrel]
+ lsort [itcl::find objects -class test_cd_mongrel]
} {test_cd_mongrel0}
test inherit-5.5 {find objects: -isa qualifier} {
- lsort [find objects -isa test_cd_foo]
+ lsort [itcl::find objects -isa test_cd_foo]
} {test_cd_foo0 test_cd_foo1 test_cd_foobar0 test_cd_mongrel0}
test inherit-5.6 {find objects: -isa qualifier} {
- lsort [find objects -isa test_cd_mongrel]
+ lsort [itcl::find objects -isa test_cd_mongrel]
} {test_cd_mongrel0}
test inherit-5.7 {find objects: name qualifier} {
- lsort [find objects test_cd_foo*]
+ lsort [itcl::find objects test_cd_foo*]
} {test_cd_foo0 test_cd_foo1 test_cd_foobar0}
test inherit-5.8 {find objects: -class and -isa qualifiers} {
- lsort [find objects -isa test_cd_foo -class test_cd_foobar]
+ lsort [itcl::find objects -isa test_cd_foo -class test_cd_foobar]
} {test_cd_foobar0}
test inherit-5.9 {find objects: -isa and name qualifiers} {
- lsort [find objects -isa test_cd_foo *0]
+ lsort [itcl::find objects -isa test_cd_foo *0]
} {test_cd_foo0 test_cd_foobar0 test_cd_mongrel0}
test inherit-5.10 {find objects: usage errors} {
- list [catch {find objects -xyzzy} msg] $msg
-} {1 {wrong # args: should be "find objects ?-class className? ?-isa className? ?pattern?"}}
+ list [catch {itcl::find objects -xyzzy value} msg] $msg
+} {1 {wrong # args: should be "itcl::find objects ?-class className? ?-isa className? ?pattern?"}}
-eval namespace delete [find classes test_cd_*]
+eval namespace delete [itcl::find classes test_cd_*]
# ----------------------------------------------------------------------
# Test method scoping and execution
@@ -487,13 +492,16 @@ test inherit-6.8 {"previous" command no longer exists} {
} {1 {invalid command name "previous"}}
test inherit-6.9 {errors are detected and reported across class boundaries} {
+ #
+ # NOTE: For tcl8.2.3 and earlier the stack trace will have
+ # 'invoked from within "eval $args"' for the first eval
+ # statement. For later versions, it does not. Use
+ # string match to reduce the sensitivity to that.
+ #
list [catch {
test_cd_mongrel0 do test_cd_foobar0 do error "test" "some error"
- } msg] $msg [set ::errorInfo]
-} {1 test {some error
- ("eval" body line 1)
- invoked from within
-"eval $args"
+ } msg] $msg [string match {some error
+ ("eval" body line 1)*
(object "::test_cd_foobar0" method "::test_cd_foobar::do" body line 1)
invoked from within
"test_cd_foobar0 do error test {some error}"
@@ -502,7 +510,8 @@ test inherit-6.9 {errors are detected and reported across class boundaries} {
"eval $args"
(object "::test_cd_mongrel0" method "::test_cd_mongrel::do" body line 1)
invoked from within
-"test_cd_mongrel0 do test_cd_foobar0 do error "test" "some error""}}
+"test_cd_mongrel0 do test_cd_foobar0 do error "test" "some error""} [set ::errorInfo]]
+} {1 test 1}
test inherit-6.10 {errors codes are preserved across class boundaries} {
list [catch {
@@ -516,7 +525,7 @@ test inherit-6.11 {multi-value error codes are preserved across class boundaries
} msg] $msg [set ::errorCode]
} {1 test {CODE BLUE 123}}
-eval namespace delete [find classes test_cd_*]
+eval namespace delete [itcl::find classes test_cd_*]
# ----------------------------------------------------------------------
# Test inheritance errors
@@ -563,14 +572,17 @@ test inherit-7.4 {cannot have more than one inherit statement} {
# Multiple base class error detection
# ----------------------------------------------------------------------
test inherit-8.1 {cannot inherit from the same base class more than once} {
- class test_mi_base {}
- class test_mi_foo {inherit test_mi_base}
- class test_mi_bar {inherit test_mi_base}
+ itcl::class test_mi_base {}
+ itcl::class test_mi_foo {inherit test_mi_base}
+ itcl::class test_mi_bar {inherit test_mi_base}
list [catch {
- class test_mi_foobar {inherit test_mi_foo test_mi_bar}
+ itcl::class test_mi_foobar {inherit test_mi_foo test_mi_bar}
} msg] $msg
} {1 {class "::test_mi_foobar" inherits base class "::test_mi_base" more than once:
test_mi_foobar->test_mi_foo->test_mi_base
test_mi_foobar->test_mi_bar->test_mi_base}}
-delete class test_mi_base
+itcl::delete class test_mi_base
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/interp.test b/itcl/itcl/tests/interp.test
index e25c680bbd1..e6c64793822 100644
--- a/itcl/itcl/tests/interp.test
+++ b/itcl/itcl/tests/interp.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Make sure that slave interpreters can be created and loaded
# with [incr Tcl]...
@@ -66,3 +71,6 @@ test interp-1.4 {one namespace can cause another to be destroyed} {
}
interp delete slave
} {}
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/local.test b/itcl/itcl/tests/local.test
index 5f288a02835..49430025431 100644
--- a/itcl/itcl/tests/local.test
+++ b/itcl/itcl/tests/local.test
@@ -13,13 +13,18 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Test "local" to create objects that only exist within a proc
# ----------------------------------------------------------------------
test local-1.1 {define a class to use for testing} {
- class test_local {
+ itcl::class test_local {
common status ""
constructor {} {
lappend status "created $this"
@@ -34,11 +39,11 @@ test local-1.1 {define a class to use for testing} {
return $status
}
proc test {} {
- local test_local #auto
+ itcl::local test_local #auto
lappend status "processing"
}
proc test2 {} {
- local test_local #auto
+ itcl::local test_local #auto
lappend status "call test..."
test
lappend status "...back"
@@ -60,7 +65,10 @@ test local-1.3 {} {
} {{created ::test_local::test_local2} {call test...} {created ::test_local::test_local3} processing {deleted ::test_local::test_local3} ...back {deleted ::test_local::test_local2}}
test local-1.4 {} {
- find objects -isa test_local
+ itcl::find objects -isa test_local
} {test_local0}
-delete class test_local
+itcl::delete class test_local
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/methods.test b/itcl/itcl/tests/methods.test
index edb1ea88f0e..9906e889080 100644
--- a/itcl/itcl/tests/methods.test
+++ b/itcl/itcl/tests/methods.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Methods with various argument lists
# ----------------------------------------------------------------------
@@ -38,9 +43,17 @@ test methods-1.1 {define a class with lots of methods and arg lists} {
method clash {x bang boom} {
return "clash: $x $bang $boom"
}
+ method clash_time {x bang boom} {
+ time {set result "clash_time: $x $bang $boom"} 1
+ return $result
+ }
proc crash {x bang boom} {
return "crash: $x $bang $boom"
}
+ proc crash_time {x bang boom} {
+ time {set result "crash_time: $x $bang $boom"} 1
+ return $result
+ }
variable bang "ok"
common boom "no-problem"
}
@@ -122,7 +135,22 @@ test methods-1.10 {formal args don't clobber class members} {
[ta info variable boom -value]
} {0 {crash: 4 5 6} ok no-problem}
+test methods-1.11 {formal args don't clobber class members, even in "time"} {
+ list [catch {ta clash_time 7 8 9} msg] $msg \
+ [ta info variable bang -value] \
+ [ta info variable boom -value]
+} {0 {clash_time: 7 8 9} ok no-problem}
+
+test methods-1.12 {formal args don't clobber class members, even in "time"} {
+ list [catch {test_args::crash_time a b c} msg] $msg \
+ [ta info variable bang -value] \
+ [ta info variable boom -value]
+} {0 {crash_time: a b c} ok no-problem}
+
# ----------------------------------------------------------------------
# Clean up
# ----------------------------------------------------------------------
-delete class test_args
+itcl::delete class test_args
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/mkindex.itcl b/itcl/itcl/tests/mkindex.itcl
index fb293b6a4ec..bef0fb5358e 100644
--- a/itcl/itcl/tests/mkindex.itcl
+++ b/itcl/itcl/tests/mkindex.itcl
@@ -22,6 +22,7 @@
# Should be able to handle simple class definitions, even if
# they are prefaced with white space.
#
+namespace import itcl::*
namespace import blt::*
class Simple1 {
@@ -49,7 +50,7 @@ itcl::ensemble ens {
# Should be able to handle "body" and "configbody" declarations.
#
body Simple2::bump {} {incr x $by}
-configbody Simple2::by {if {$by <= 0} {error "bad increment}}
+configbody Simple2::by {if {$by <= 0} {error "bad increment"}}
#
# Should be able to handle class declarations within namespaces,
@@ -64,7 +65,7 @@ namespace eval buried {
proc find {args} {}
}
body inside::bump {} {incr x $by}
- configbody inside::by {if {$by <= 0} {error "bad increment}}
+ configbody inside::by {if {$by <= 0} {error "bad increment"}}
class ::top {
method skip {x y z} {}
diff --git a/itcl/itcl/tests/mkindex.test b/itcl/itcl/tests/mkindex.test
index 47a98b41269..bc20a242dbb 100644
--- a/itcl/itcl/tests/mkindex.test
+++ b/itcl/itcl/tests/mkindex.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Test "auto_mkindex" in the presence of class definitions
# ----------------------------------------------------------------------
@@ -42,3 +47,6 @@ test mkindex-1.3 {examine tclIndex} {
set result
}
} "{::Simple2::bump $element} {::Simple2::by $element} {::buried::deep::within $element} {::buried::ens $element} {::buried::inside $element} {::buried::inside::bump $element} {::buried::inside::by $element} {::buried::inside::find $element} {::buried::under::neath $element} {::top::find $element} {::top::notice $element} {OldStyle $element} {Simple1 $element} {Simple2 $element} {ens $element} {top $element}"
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/namespace.test b/itcl/itcl/tests/namespace.test
index 35a1e9cf975..31150f0f19c 100644
--- a/itcl/itcl/tests/namespace.test
+++ b/itcl/itcl/tests/namespace.test
@@ -13,14 +13,19 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Classes within namespaces
# ----------------------------------------------------------------------
test namespace-1.1 {same class name can be used in different namespaces} {
namespace eval test_ns_1 {
- class Counter {
+ itcl::class Counter {
variable num 0
method ++ {{by 1}} {
incr num $by
@@ -30,9 +35,10 @@ test namespace-1.1 {same class name can be used in different namespaces} {
}
common tag 1
}
+ proc exists {} { return "don't clobber me!" }
}
namespace eval test_ns_2 {
- class Counter {
+ itcl::class Counter {
variable num 0
method ++ {{by 2}} {
if {$num == 0} {
@@ -67,8 +73,21 @@ test namespace-1.4 {create an object in another namespace} {
} {c 1 2 4 8}
test namespace-1.5 {can find classes wrapped in a namespace} {
- list [catch {test_ns_1::c do find objects -isa Counter} msg] $msg \
- [catch {test_ns_1::c do find objects -class Counter} msg] $msg
-} {0 {} 0 {}}
+ list [catch {test_ns_1::c do itcl::find objects -isa Counter} msg] $msg \
+ [catch {test_ns_1::c do itcl::find objects -class Counter} msg] $msg
+} {0 ::test_ns_1::c 0 ::test_ns_1::c}
+
+test namespace-1.6 {can't create an object that clobbers a command in this namespace} {
+ list [catch {namespace eval test_ns_1 {Counter exists}} msg] $msg
+} {1 {command "exists" already exists in namespace "::test_ns_1"}}
+
+test namespace-1.7 {can create an object that shadows a command in the global namespace} {
+ list [catch {namespace eval test_ns_1 {Counter lreplace}} msg] $msg \
+ [catch {itcl::find objects *lreplace} msg] $msg \
+ [namespace eval test_ns_1 {namespace which lreplace}]
+} {0 lreplace 0 ::test_ns_1::lreplace ::test_ns_1::lreplace}
namespace delete test_ns_1 test_ns_2
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/protection.test b/itcl/itcl/tests/protection.test
index acf5ee650e8..180e1137852 100644
--- a/itcl/itcl/tests/protection.test
+++ b/itcl/itcl/tests/protection.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Class members are protected by access restrictions
# ----------------------------------------------------------------------
@@ -294,7 +299,7 @@ test protect-2.23 {*cannot* access non-overloaded private method from base class
test_pr_derived0 prom
test_pr_derived0 pubm}}
-eval namespace delete [find classes test_pr*]
+eval namespace delete [itcl::find classes test_pr*]
# ----------------------------------------------------------------------
# Access restrictions don't mess up "info"
@@ -367,4 +372,7 @@ test protect-3.13 {private base class commons can be accessed from class} {
} msg] $msg
} {0 {private common ::test_info_base::pribc pribc-value pribc-value}}
-eval namespace delete [find classes test_info*]
+eval namespace delete [itcl::find classes test_info*]
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/tests/scope.test b/itcl/itcl/tests/scope.test
index 8ce1e05b810..345790fb806 100644
--- a/itcl/itcl/tests/scope.test
+++ b/itcl/itcl/tests/scope.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itcl
+
# ----------------------------------------------------------------------
# Syntax of the "scope" command
# ----------------------------------------------------------------------
@@ -177,10 +182,10 @@ test scope-3.7 {code command provides access to methods} {
test scope-3.8 {scope command allows access to slots in an array} {
test_scope0 mcontext set varray(0) "defined"
test_scope::pcontext set carray(0) "defined"
- list [catch {test_scope0 mcontext scope varray(0)} msg] $msg \
- [catch {test_scope0 mcontext scope varray(1)} msg] $msg \
- [catch {test_scope::pcontext scope carray(0)} msg] $msg \
- [catch {test_scope::pcontext scope carray(1)} msg] $msg
+ list [catch {test_scope0 mcontext itcl::scope varray(0)} msg] $msg \
+ [catch {test_scope0 mcontext itcl::scope varray(1)} msg] $msg \
+ [catch {test_scope::pcontext itcl::scope carray(0)} msg] $msg \
+ [catch {test_scope::pcontext itcl::scope carray(1)} msg] $msg
} {0 {@itcl ::test_scope0 ::test_scope::varray(0)} 0 {@itcl ::test_scope0 ::test_scope::varray(1)} 0 ::test_scope::carray(0) 0 ::test_scope::carray(1)}
itcl::delete class test_scope
@@ -200,8 +205,11 @@ test scope-4.1 {define simple namespace with things to export} {
test scope-4.2 {scope command allows access to slots in an array} {
test_scope_ns::pcontext set array(0) "defined"
- list [catch {test_scope_ns::pcontext scope array(0)} msg] $msg \
- [catch {test_scope_ns::pcontext scope array(1)} msg] $msg
+ list [catch {test_scope_ns::pcontext itcl::scope array(0)} msg] $msg \
+ [catch {test_scope_ns::pcontext itcl::scope array(1)} msg] $msg
} {0 ::test_scope_ns::array(0) 0 ::test_scope_ns::array(1)}
namespace delete test_scope_ns
+
+::tcltest::cleanupTests
+return
diff --git a/itcl/itcl/win/Makefile.in b/itcl/itcl/win/Makefile.in
index a9cb288f6da..7b5c18ff026 100644
--- a/itcl/itcl/win/Makefile.in
+++ b/itcl/itcl/win/Makefile.in
@@ -12,6 +12,11 @@ prefix = @prefix@
exec_prefix = @exec_prefix@
VPATH = @srcdir@:@srcdir@/../generic:@srcdir@/../unix
srcdir = @srcdir@
+libdir=@libdir@
+bindir=@bindir@
+includedir=@includedir@
+mandir=@mandir@
+datadir=@datadir@
CC = @CC@
CFLAGS = @CFLAGS@
@@ -82,21 +87,21 @@ ITCLSHRES = @ITCLSHRES@
# Directory in which to install the library of Itcl scripts and demos
# (note: you can set the ITCL_LIBRARY environment variable at run-time to
# override the compiled-in location):
-ITCL_LIBRARY = $(prefix)/share/itcl$(ITCL_VERSION)
+ITCL_LIBRARY = $(datadir)/itcl$(ITCL_VERSION)
-# CYGNUS LOCAL: dj - use @dir@ form
+# CYGNUS LOCAL: cgf - use autoconf variables
# Directory in which to install the archive libitcl.a:
-INSTALL_LIB_DIR = @libdir@
+INSTALL_LIB_DIR = $(libdir)
# Directory in which to install the program itclsh:
-INSTALL_BIN_DIR = @bindir@
+INSTALL_BIN_DIR = $(bindir)
# Directory in which to install the include file itcl.h:
-INSTALL_INCLUDE_DIR = @includedir@
+INSTALL_INCLUDE_DIR = $(includedir)
# Top-level directory for manual entries:
-INSTALL_MAN_DIR = @mandir@
+INSTALL_MAN_DIR = $(mandir)
# Directory in which to install manual entry for itclsh:
INSTALL_MAN1_DIR = $(INSTALL_MAN_DIR)/man1
@@ -219,7 +224,7 @@ $(CYGITCLTEST): $(ITCLTESTOBJS) $(CYGITCLLIB) $(TMPDIR)/$(CYGITCLSHRES)
$(CC) $(linkdebug) $(conlflags) -Wl,--stack=0x2300000 \
$(ITCL_CFLAGS) \
$(ITCLTESTOBJS) $(TMPDIR)/$(CYGITCLSHRES) \
- $(CYGITCLLIB) $(TCLLIBDIR)/$(TCLLIB) $(conlibsdll) \
+ $(CYGITCLLIB) $(TCLLIBDIR)/$(TCLLIB) $(conlibsdll) \
-o $(CYGITCLTEST)
$(TMPDIR)/$(CYGITCLSHRES):: $(ROOT)/win/itclsh.rc
@@ -306,7 +311,7 @@ config.status: $(srcdir)/configure
install:: install-basic install-binaries
@echo done
-install-binaries::
+install-binaries:: install-shared-libraries
@for i in $(INSTALL_LIB_DIR) $(INSTALL_BIN_DIR) ; \
do \
if [ ! -d $$i ] ; then \
@@ -316,12 +321,10 @@ install-binaries::
else true; \
fi; \
done;
- @echo "Installing $(CYGITCLLIB) as $(INSTALL_LIB_DIR)/$(CYGITCLLIB)"
- @$(INSTALL_DATA) $(CYGITCLLIB) $(INSTALL_LIB_DIR)/$(CYGITCLLIB)
- @echo "Installing $(CYGITCLSH) as $(INSTALL_BIN_DIR)/$(CYGITCLSH)"
- @$(INSTALL_PROGRAM) $(CYGITCLSH) $(INSTALL_BIN_DIR)/$(CYGITCLSH)
- @echo "Installing $(CYGITCLDLL) as $(INSTALL_BIN_DIR)/$(CYGITCLDLL)"
- @$(INSTALL_PROGRAM) $(CYGITCLDLL) $(INSTALL_BIN_DIR)/$(CYGITCLDLL)
+ @echo "Installing $(ITCLLIB) as $(INSTALL_LIB_DIR)/$(ITCLLIB)"
+ @$(INSTALL_DATA) $(ITCLLIB) $(INSTALL_LIB_DIR)/$(ITCLLIB)
+ @echo "Installing $(ITCLSH) as $(INSTALL_BIN_DIR)/$(ITCLSH)"
+ @$(INSTALL_PROGRAM) $(ITCLSH) $(INSTALL_BIN_DIR)/$(ITCLSH)
#
# Basic installtion
@@ -346,7 +349,7 @@ install-headers:
$(INSTALL_DATA) $$i $(INSTALL_INCLUDE_DIR); \
done;
-install-libraries:
+install-libraries: install-shared-libraries
@for i in $(prefix)/lib $(ITCL_LIBRARY); \
do \
if [ ! -d $$i ] ; then \
@@ -360,6 +363,9 @@ install-libraries:
@$(INSTALL_DATA) $(srcdir)/pkgIndex.tcl $(ITCL_LIBRARY)
@$(INSTALL_DATA) $(srcdir)/../library/itcl.tcl $(ITCL_LIBRARY)
+install-shared-libraries:
+ @echo "Installing $(ITCLDLL) as $(INSTALL_BIN_DIR)/$(ITCLDLL)"
+ @$(INSTALL_PROGRAM) $(ITCLDLL) $(INSTALL_BIN_DIR)/$(ITCLDLL)
install-man:
@for i in $(INSTALL_MAN_DIR) $(INSTALL_MAN1_DIR) \
diff --git a/itcl/itcl/win/dllEntryPoint.c b/itcl/itcl/win/dllEntryPoint.c
index a988c0823d0..43c25c1f51d 100644
--- a/itcl/itcl/win/dllEntryPoint.c
+++ b/itcl/itcl/win/dllEntryPoint.c
@@ -6,9 +6,10 @@
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
-#include <tcl.h>
/* CYGNUS LOCAL */
+#include <tcl.h>
+
#ifdef __CYGWIN32__
/*
* The following declaration is for the VC++ DLL entry point.
diff --git a/itcl/itcl/win/itcl.rc b/itcl/itcl/win/itcl.rc
index 305d25473fe..d9cc97ec727 100644
--- a/itcl/itcl/win/itcl.rc
+++ b/itcl/itcl/win/itcl.rc
@@ -3,13 +3,14 @@
// Version
//
+#define VS_VERSION_INFO 1
#define RESOURCE_INCLUDED
#include <itcl.h>
VS_VERSION_INFO VERSIONINFO
- FILEVERSION ITCL_MAJOR_VERSION ,ITCL_MINOR_VERSION ,ITCL_RELEASE_LEVEL,0
- PRODUCTVERSION ITCL_MAJOR_VERSION ,ITCL_MINOR_VERSION ,ITCL_RELEASE_LEVEL,0
+ FILEVERSION ITCL_MAJOR_VERSION ,ITCL_MINOR_VERSION ,ITCL_RELEASE_LEVEL
+ PRODUCTVERSION ITCL_MAJOR_VERSION ,ITCL_MINOR_VERSION ,ITCL_RELEASE_LEVEL
FILEFLAGSMASK 0x3fL
FILEFLAGS 0x0L
FILEOS 0x4L
@@ -20,13 +21,13 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
- VALUE "FileDescription", "Itcl DLL\0"
+ VALUE "FileDescription", "Itcl language extension for Tcl\0"
VALUE "Authors", "Michael McLennan\0"
- VALUE "OriginalFilename", "itcl30.dll\0"
+ VALUE "OriginalFilename", "itcl" STRINGIFY(ITCL_MAJOR_VERSION) STRINGIFY(ITCL_MINOR_VERSION) ".dll\0"
VALUE "CompanyName", "Bell Labs Innovations for Lucent Technologies\0"
VALUE "FileVersion", ITCL_PATCH_LEVEL
VALUE "LegalCopyright", "Copyright \251 1993-1998\0"
- VALUE "ProductName", "[incr Tcl] 3.0 for Windows\0"
+ VALUE "ProductName", "[incr Tcl] " STRINGIFY(ITCL_MAJOR_VERSION) "." STRINGIFY(ITCL_MINOR_VERSION) " for Windows\0"
VALUE "ProductVersion", ITCL_PATCH_LEVEL
END
END
diff --git a/itcl/itcl/win/itclsh.rc b/itcl/itcl/win/itclsh.rc
index 217df6c76cb..6921c1d9b49 100644
--- a/itcl/itcl/win/itclsh.rc
+++ b/itcl/itcl/win/itclsh.rc
@@ -1,37 +1,37 @@
-// SCCS: @(#) tclsh.rc 1.14 96/09/12 14:59:29
-//
-// Version
-//
-
-#define RESOURCE_INCLUDED
-#include <itcl.h>
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL,0
- PRODUCTVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL,0
- FILEFLAGSMASK 0x3fL
- FILEFLAGS 0x0L
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "FileDescription", "[incr Tcl] Object-Oriented Tcl Application\0"
- VALUE "Authors", "Michael McLennan\0"
- VALUE "OriginalFilename", "itclsh.exe\0"
- VALUE "CompanyName", "Bell Labs Innovations for Lucent Technologies\0"
- VALUE "FileVersion", ITCL_PATCH_LEVEL
- VALUE "LegalCopyright", "Copyright \251 1993-1998\0"
- VALUE "ProductName", "[incr Tcl] "STRINGIFY(ITCL_MAJOR_VERSION)"."STRINGIFY(ITCL_MINOR_VERSION)" for Windows\0"
- VALUE "ProductVersion", ITCL_PATCH_LEVEL
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
+// SCCS: @(#) tclsh.rc 1.14 96/09/12 14:59:29
+//
+// Version
+//
+
+#define RESOURCE_INCLUDED
+#include <itcl.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL
+ PRODUCTVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "FileDescription", "[incr Tcl] Object-Oriented Tcl Application\0"
+ VALUE "Authors", "Michael McLennan\0"
+ VALUE "OriginalFilename", "itclsh.exe\0"
+ VALUE "CompanyName", "Bell Labs Innovations for Lucent Technologies\0"
+ VALUE "FileVersion", ITCL_PATCH_LEVEL
+ VALUE "LegalCopyright", "Copyright \251 1993-1998\0"
+ VALUE "ProductName", "[incr Tcl] "STRINGIFY(ITCL_MAJOR_VERSION)"."STRINGIFY(ITCL_MINOR_VERSION)" for Windows\0"
+ VALUE "ProductVersion", ITCL_PATCH_LEVEL
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
diff --git a/itcl/itcl/win/makefile.vc b/itcl/itcl/win/makefile.vc
index dd97faac9ca..92a0827d0cb 100644
--- a/itcl/itcl/win/makefile.vc
+++ b/itcl/itcl/win/makefile.vc
@@ -1,147 +1,301 @@
-# Visual C++ 4.0 makefile
-#
-# Copyright (c) 1993-1996 Lucent Technologies
+# Visual C++ 2.x and 4.0 makefile
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# Copyright (c) 1993-1998 Lucent Technologies, Inc.
+# RCS: $Id$
+# Does not depend on the presence of any environment variables in
+# order to compile itcl; all needed information is derived from
+# location of the compiler directories.
#
-# Project directories
-#
+# NOTE: Be sure to modify the "makefile.vc" file in the toplevel directory
+# for the itcl distribution. Include the location of your VC++ development
+# tools and the installation directory.
+
+!include "..\..\makefile.vc"
+
+
# ROOT = top of source tree
-#
# TMPDIR = location where .obj files should be stored during build
-#
-!include "..\..\Makefile.vc"
+ROOT = ..
-ROOT = ..
-TMPDIR = .
-TARGET_LIB_ITCL = $(TARGET_LIB)\Itcl2.2
-TARGET_DOC_ITCL = $(TARGET_DOC)\Itcl
+######################################################################
+# Do not modify below this line
+######################################################################
-# Comment the following line to compile with symbols
-NODEBUG=1
+NAMEPREFIX = itcl
+DOTVERSION = 3.1
+VERSION = 31
+STUBPREFIX = $(NAMEPREFIX)stub
-# uncomment the following two lines to compile with TCL_MEM_DEBUG
-#DEBUGDEFINES = -DTCL_MEM_DEBUG
+BINROOT = .
+!IF "$(NODEBUG)" == "1"
+TMPNAME = Release
+DBGX =
+!ELSE
+TMPNAME = Debug
+DBGX = d
+!ENDIF
+TMPDIR = $(BINROOT)\$(TMPNAME)
+OUTDIR = $(TMPDIR)
-WINDIR = $(ROOT)\win
-GENERICDIR = $(ROOT)\generic
+PKGINDEX = $(TMPDIR)\pkgIndex.tcl
-TCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) -I$(TCLDIR)\generic
+ITCLLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)$(DBGX).lib
+ITCLDLLNAME = $(NAMEPREFIX)$(VERSION)$(DBGX).dll
+ITCLDLL = $(OUTDIR)\$(ITCLDLLNAME)
+ITCLSH = $(OUTDIR)\$(NAMEPREFIX)sh$(VERSION)$(DBGX).exe
+DUMPEXTS = $(TMPDIR)\dumpexts.exe
-TCL_DEFINES = -D__WIN32__ -DUSE_TCLALLOC=0 $(DEBUGDEFINES) -Dtry=__try \
- -Dexcept=__except
+TCLLIB = $(TCLDIR)\win\$(OUTDIR)\tcl81$(DBGX).lib
+TCLSTUBLIB = $(TCLDIR)\win\$(OUTDIR)\tclstub81$(DBGX).lib
+TCLDLL = $(TCLDIR)\win\$(OUTDIR)\tcl81$(DBGX).dll
+
+ITCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION)$(DBGX).lib
+ITCLSTUBLIB = $(OUTDIR)\$(ITCLSTUBLIBNAME)
+
+LIB_INSTALL_DIR = $(INSTALLDIR)\lib
+BIN_INSTALL_DIR = $(INSTALLDIR)\bin
+SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\itcl$(DOTVERSION)
+INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
ITCLSHOBJS = \
- $(TMPDIR)\tclAppInit.obj
+ $(TMPDIR)\tclAppInit.obj
ITCLOBJS = \
- $(TMPDIR)\itcl_bicmds.obj \
- $(TMPDIR)\itcl_class.obj \
- $(TMPDIR)\itcl_cmds.obj \
- $(TMPDIR)\itcl_linkage.obj \
- $(TMPDIR)\itcl_methods.obj \
- $(TMPDIR)\itcl_objects.obj \
- $(TMPDIR)\itcl_obsolete.obj \
- $(TMPDIR)\itcl_parse.obj \
- $(TMPDIR)\itcl_util.obj \
- $(TMPDIR)\dllEntryPoint.obj
-
-DUMPEXTS = $(TCLLIBDIR)\dumpexts.exe
-ITCLSH = itclsh.exe
-ITCLTEST = itcltest.exe
-
-CPU = i386
-INCLUDE = $(TOOLS32)\include
-!include <ntwin32.mak>
-
-TCL_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) $(TCL_INCLUDES) $(TCL_DEFINES)
-CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE
-DOS_CFLAGS = $(cdebug) $(cflags) $(include16) -AL
-DLL16_CFLAGS = $(cdebug) $(cflags) $(include16) -ALw
+ $(TMPDIR)\itclStubInit.obj \
+ $(TMPDIR)\itcl_bicmds.obj \
+ $(TMPDIR)\itcl_class.obj \
+ $(TMPDIR)\itcl_cmds.obj \
+ $(TMPDIR)\itcl_ensemble.obj \
+ $(TMPDIR)\itcl_linkage.obj \
+ $(TMPDIR)\itcl_migrate.obj \
+ $(TMPDIR)\itcl_methods.obj \
+ $(TMPDIR)\itcl_objects.obj \
+ $(TMPDIR)\itcl_obsolete.obj \
+ $(TMPDIR)\itcl_parse.obj \
+ $(TMPDIR)\itcl_util.obj \
+ $(TMPDIR)\dllEntryPoint.obj
-#
-# Targets
-#
+ITCLSTUBOBJS = \
+ $(TMPDIR)\itclStubLib.obj
+
+cc32 = $(TOOLS32)\bin\cl.exe
+link32 = $(TOOLS32)\bin\link.exe
+rc32 = $(TOOLS32_rc)\bin\rc.exe
+include32 = -I$(TOOLS32)\include
+lib32 = "$(TOOLS32)\bin\lib.exe"
+
+WINDIR = $(ROOT)\win
+GENERICDIR = $(ROOT)\generic
+
+ITCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) -I$(TCLDIR)\generic
+ITCL_DEFINES = -D__WIN32__ -DBUILD_itcl $(DEBUGDEFINES)
+
+ITCL_EXE_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \
+ $(ITCL_INCLUDES) $(ITCL_DEFINES)
+
+ITCL_CFLAGS = $(ITCL_EXE_CFLAGS) -DUSE_TCL_STUBS
+
+######################################################################
+# Link flags
+######################################################################
+
+!IF "$(NODEBUG)" == "1"
+ldebug = /RELEASE
+!ELSE
+ldebug = -debug:full -debugtype:cv
+!ENDIF
+
+# declarations common to all linker options
+lcommon = /NODEFAULTLIB /RELEASE /NOLOGO
+
+# declarations for use on Intel i386, i486, and Pentium systems
+!IF "$(MACHINE)" == "IX86"
+DLLENTRY = @12
+lflags = $(lcommon) /MACHINE:$(MACHINE)
+!ELSE
+lflags = $(lcommon) /MACHINE:$(MACHINE)
+!ENDIF
+
+conlflags = $(lflags) -subsystem:console -entry:mainCRTStartup
+guilflags = $(lflags) -subsystem:windows -entry:WinMainCRTStartup
+dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
+
+!IF "$(MACHINE)" == "PPC"
+libc = libc.lib
+libcdll = crtdll.lib
+!ELSE
+libc = libc.lib oldnames.lib
+libcdll = msvcrt.lib oldnames.lib
+!ENDIF
+
+baselibs = kernel32.lib $(optlibs) advapi32.lib user32.lib
+winlibs = $(baselibs) gdi32.lib comdlg32.lib winspool.lib
+
+guilibs = $(libc) $(winlibs)
+conlibs = $(libc) $(baselibs)
+guilibsdll = $(libcdll) $(winlibs)
+conlibsdll = $(libcdll) $(baselibs)
+
+######################################################################
+# Compile flags
+######################################################################
-release: $(ITCLDLL) $(ITCLSH)
-all: $(ITCLDLL) $(ITCLSH)
-test: $(ITCLSH)
- $(CP) $(TCLLIBDIR)\*.dll
- $(ITCLSH) <<
- cd ../tests
- source all
+!IF "$(NODEBUG)" == "1"
+!IF "$(MACHINE)" == "ALPHA"
+# MSVC on Alpha doesn't understand -Ot
+cdebug = -O2i -Gs -GD
+!ELSE
+cdebug = -Oti -Gs -GD
+!ENDIF
+!ELSE
+cdebug = -Z7 -Od -WX
+!ENDIF
+
+# declarations common to all compiler options
+ccommon = -c -W3 -nologo -YX -Fp$(TMPDIR)\ -Dtry=__try -Dexcept=__except
+
+!IF "$(MACHINE)" == "IX86"
+cflags = $(ccommon) -D_X86_=1
+!ELSE
+!IF "$(MACHINE)" == "MIPS"
+cflags = $(ccommon) -D_MIPS_=1
+!ELSE
+!IF "$(MACHINE)" == "PPC"
+cflags = $(ccommon) -D_PPC_=1
+!ELSE
+!IF "$(MACHINE)" == "ALPHA"
+cflags = $(ccommon) -D_ALPHA_=1
+!ENDIF
+!ENDIF
+!ENDIF
+!ENDIF
+
+cvars = -DWIN32 -D_WIN32
+cvarsmt = $(cvars) -D_MT
+cvarsdll = $(cvarsmt) -D_DLL
+
+!IF "$(NODEBUG)" == "1"
+cvarsdll = $(cvars) -MD
+!ELSE
+cvarsdll = $(cvars) -MDd
+!ENDIF
+
+CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE
+
+######################################################################
+# Project specific targets
+######################################################################
+
+release: setup $(ITCLDLL) $(ITCLSTUBLIB) $(ITCLSH)
+all: setup $(ITCLDLL) $(ITCLSTUBLIB) $(ITCLSH)
+test: setup $(ITCLDLL) $(ITCLSTUBLIB) $(PKGINDEX)
+ -@copy $(TCLDLL) $(TMPDIR)
+ $(TCLSH) <<
+ cd ../tests
+ lappend auto_path ../win/$(TMPNAME)
+ set env(ITCL_LIBRARY) ../library
+ source all
<<
-install: all
- $(MKDIR) "$(TARGET_ROOT)"
- $(MKDIR) "$(TARGET_BIN)"
- $(MKDIR) "$(TARGET_LIB_ROOT)"
- $(MKDIR) "$(TARGET_LIB)"
- $(MKDIR) "$(TARGET_LIB_ITCL)"
- $(MKDIR) "$(TARGET_INCLUDE_ROOT)"
- $(MKDIR) "$(TARGET_INCLUDE)"
- $(MKDIR) "$(TARGET_DOC)"
- $(MKDIR) "$(TARGET_DOC_ITCL)"
- $(CP) $(TMPDIR)\$(ITCLSH) "$(TARGET_BIN)"
- $(CP) $(TMPDIR)\$(ITCLDLL) "$(TARGET_BIN)"
- $(CP) $(ROOT)\generic\itcl.h "$(TARGET_INCLUDE)"
- $(CP) $(ROOT)\library\*.* "$(TARGET_LIB_ITCL)"
- $(CP) $(ROOT)\win\*.tcl "$(TARGET_LIB_ITCL)"
- $(CP) $(ROOT)\..\html\Itcl\*.* "$(TARGET_DOC_ITCL)"
-
-$(ITCLDLL): $(ITCLOBJS) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclvc.def $(TMPDIR)\itcl.res
- set LIB=$(TOOLS32)\lib
- $(link32) $(linkdebug) $(dlllflags) -def:$(TMPDIR)\itclvc.def \
- -out:$@ $(TMPDIR)\itcl.res $(guilibsdll) @<<
-$(ITCLOBJS) $(TCLLIBDIR)\$(TCLLIB)
+$(PKGINDEX):
+ -@copy pkgIndex.tcl $@
+
+setup:
+ if not exist $(TMPDIR) mkdir $(TMPDIR)
+ if not exist $(OUTDIR) mkdir $(OUTDIR)
+
+$(ITCLLIB): $(ITCLDLL)
+
+$(ITCLDLL): $(ITCLOBJS) $(TMPDIR)\itclvc.def $(TMPDIR)\itcl.res
+ set LIB=$(TOOLS32)\lib
+ $(link32) $(ldebug) $(dlllflags) -def:$(TMPDIR)\itclvc.def \
+ -out:$@ $(TMPDIR)\itcl.res $(guilibsdll) $(TCLSTUBLIB) @<<
+ $(ITCLOBJS)
<<
-$(ITCLSH): $(ITCLSHOBJS) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclsh.res
- set LIB=$(TOOLS32)\lib
- $(link32) $(linkdebug) $(conlflags) $(TMPDIR)\itclsh.res \
- -out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(ITCLSHOBJS)
+$(ITCLSTUBLIB): $(ITCLSTUBOBJS)
+ $(lib32) -nologo -out:$@ $(ITCLSTUBOBJS)
-$(ITCLTEST): $(ITCLTESTOBJS) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclsh.res
- set LIB=$(TOOLS32)\lib
- $(link32) $(linkdebug) $(conlflags) $(TMPDIR)\itclsh.res \
- -out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(ITCLTESTOBJS)
+$(ITCLSH): $(ITCLSHOBJS) $(ITCLSTUBLIB) $(TCLSTUBLIB) $(TMPDIR)\itclsh.res
+ set LIB=$(TOOLS32)\lib
+ $(link32) $(ldebug) $(conlflags) $(TMPDIR)\itclsh.res -stack:2300000 \
+ -out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIB) $(ITCLSHOBJS)
+
+$(TMPDIR)\itclvc.def: $(DUMPEXTS) $(ITCLOBJS)
+ $(DUMPEXTS) -o $@ $(ITCLDLLNAME) @<<
+$(ITCLOBJS)
+<<
+
+$(DUMPEXTS): $(TCLDIR)\win\winDumpExts.c
+ $(cc32) $(CON_CFLAGS) -Fo$(TMPDIR)\ $?
+ set LIB=$(TOOLS32)\lib
+ $(link32) $(ldebug) $(conlflags) $(guilibs) -out:$@ \
+ $(TMPDIR)\winDumpExts.obj
+
+install: all
+ if not exist $(INSTALLDIR) mkdir $(INSTALLDIR)
+ if not exist $(BIN_INSTALL_DIR) mkdir $(BIN_INSTALL_DIR)
+ if not exist $(LIB_INSTALL_DIR) mkdir $(LIB_INSTALL_DIR)
+ if not exist $(SCRIPT_INSTALL_DIR) mkdir $(SCRIPT_INSTALL_DIR)
+ if not exist $(INCLUDE_INSTALL_DIR) mkdir $(INCLUDE_INSTALL_DIR)
+ copy $(ITCLSH) "$(BIN_INSTALL_DIR)"
+ copy $(ITCLDLL) "$(BIN_INSTALL_DIR)"
+ copy $(ROOT)\generic\itcl.h "$(INCLUDE_INSTALL_DIR)"
+ copy $(ROOT)\library\*.* "$(SCRIPT_INSTALL_DIR)"
+ copy $(ROOT)\win\*.tcl "$(SCRIPT_INSTALL_DIR)"
+
+#
+# Regenerate the stubs files.
+#
+genstubs:
+ $(TCLSH) $(TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \
+ $(GENERICDIR)\itcl.decls $(GENERICDIR)\itclInt.decls
#
# Special case object file targets
#
-$(TMPDIR)\itclvc.def: $(DUMPEXTS) $(ITCLOBJS)
- $(DUMPEXTS) -o $@ $(ITCLDLL) @<<
-$(ITCLOBJS)
-<<
+$(TMPDIR)\tclAppInit.obj : $(WINDIR)\tclAppInit.c
+ $(cc32) $(ITCL_EXE_CFLAGS) -Fo$@ $?
+
+# The following object is part of the stub library and should not
+# be built as DLL objects but none of the symbols should be exported
-$(TMPDIR)\testMain.obj: $(WINDIR)\tclAppInit.c
- $(cc32) $(TCL_CFLAGS) -DTCL_TEST -Fo$(TMPDIR)\testMain.obj $?
+$(TMPDIR)\itclStubLib.obj : $(GENERICDIR)\itclStubLib.c
+ $(cc32) -DSTATIC_BUILD $(ITCL_CFLAGS) -Fo$@ $?
#
# Implicit rules
#
{$(WINDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
+ $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMPDIR)\ $<
{$(GENERICDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
+ $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMPDIR)\ $<
{$(ROOT)\compat}.c{$(TMPDIR)}.obj:
- $(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
+ $(cc32) -DDLL_BUILD $(ITCL_CFLAGS) -Fo$(TMPDIR)\ $<
{$(WINDIR)}.rc{$(TMPDIR)}.res:
- $(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -i $(TCLDIR)\generic $(TCL_DEFINES) $<
+ $(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -i $(TCLDIR)\generic -D__WIN32__ \
+ $(ITCL_DEFINES) $<
clean:
- -@$(RM) *.exe
- -@$(RM) *.lib
- -@$(RM) *.dll
- -@$(RM) *.res
- -@$(RM) itclvc.def
- -@$(RM) $(TMPDIR)\*.obj
- -@$(RM) *.exp
+ -@del $(OUTDIR)\*.exp
+ -@del $(OUTDIR)\*.lib
+ -@del $(OUTDIR)\*.dll
+ -@del $(OUTDIR)\*.exe
+ -@del $(OUTDIR)\*.pdb
+ -@del $(TMPDIR)\*.pch
+ -@del $(TMPDIR)\*.obj
+ -@del $(TMPDIR)\*.res
+ -@del $(TMPDIR)\*.def
+ -@del $(TMPDIR)\*.exe
+ -@rmdir $(OUTDIR)
+ -@rmdir $(TMPDIR)
diff --git a/itcl/itcl/win/pkgIndex.tcl b/itcl/itcl/win/pkgIndex.tcl
index b09e5d73ef1..28f0467bfbf 100644
--- a/itcl/itcl/win/pkgIndex.tcl
+++ b/itcl/itcl/win/pkgIndex.tcl
@@ -1,3 +1,3 @@
# Tcl package index file, version 1.0
-package ifneeded Itcl 3.0 [list load itcl30.dll Itcl]
+package ifneeded Itcl 3.1 [list load [file join $dir itcl31.dll] Itcl]
diff --git a/itcl/itk/Makefile.in b/itcl/itk/Makefile.in
new file mode 100644
index 00000000000..4a5e8bba79a
--- /dev/null
+++ b/itcl/itk/Makefile.in
@@ -0,0 +1,467 @@
+# Makefile.in --
+#
+# This file is a Makefile for Sample TEA Extension. If it has the name
+# "Makefile.in" then it is a template for a Makefile; to generate the
+# actual Makefile, run "./configure", which is a configuration script
+# generated by the "autoconf" program (constructs like "@foo@" will get
+# replaced in the actual Makefile.
+#
+# Copyright (c) 1999 Scriptics Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id$
+
+#========================================================================
+# Edit the following few lines when writing a new extension
+#========================================================================
+
+#========================================================================
+# Change the name of the variable "exampleA_LIB_FILE" to match the one
+# used in the configure script. This is the parameterized name of the
+# library that we are building.
+#========================================================================
+
+lib_BINARIES=$(itk_LIB_FILE) $(itkstub_LIB_FILE)
+BINARIES=$(lib_BINARIES)
+
+#========================================================================
+# Enumerate the names of the source files included in this package.
+# This will be used when a dist target is added to the Makefile.
+#========================================================================
+
+WIN_DIR=$(srcdir)/win
+UNIX_DIR=$(srcdir)/unix
+GENERIC_DIR=$(srcdir)/generic
+PLATFORM_DIR=@PLATFORM_DIR@
+
+WIN_SOURCES=$(PLATFORM_DIR)/tclAppInit.c \
+ $(PLATFORM_DIR)/dllEntryPoint.c
+UNIX_SOURCES=$(PLATFORM_DIR)/tclAppInit.c
+GENERIC_SOURCES = $(GENERIC_DIR)/itk_cmds.c \
+ $(GENERIC_DIR)/itk_option.c \
+ $(GENERIC_DIR)/itk_archetype.c \
+ $(GENERIC_DIR)/itk_util.c \
+ $(GENERIC_DIR)/itkStubInit.c \
+ $(GENERIC_DIR)/itkStubLib.c
+PLATFORM_SOURCES = @PLATFORM_SOURCES@
+itk_SOURCES = $(PLATFORM_SOURCES) $(GENERIC_SOURCES)
+SOURCES = $(itk_SOURCES)
+
+#========================================================================
+# Enumerate the names of the object files included in this package.
+# These objects are created and linked into the final library. In
+# most cases these object files will correspond to the source files
+# above.
+#
+#========================================================================
+
+WIN_OBJECTS = dllEntryPoint.$(OBJEXT)
+UNIX_OBJECTS =
+GENERIC_OBJECTS = itk_cmds.$(OBJEXT) \
+ itk_option.$(OBJEXT) \
+ itk_archetype.$(OBJEXT) \
+ itk_util.$(OBJEXT) \
+ itkStubInit.$(OBJEXT) \
+ itkStubLib.$(OBJEXT)
+PLATFORM_OBJECTS = @PLATFORM_OBJECTS@
+itk_OBJECTS = $(PLATFORM_OBJECTS) $(GENERIC_OBJECTS)
+itkstub_OBJECTS = itkStubLib.$(OBJEXT)
+OBJECTS = $(itk_OBJECTS) $(itkstub_OBJECTS)
+
+#========================================================================
+# The substitution of "exampleA_LIB_FILE" into the variable name below
+# let's us refer to the objects for the library without knowing the name
+# of the library in advance. It also lets us use the "$@" variable in
+# the rule for building the library, so we can refer to both the list of
+# objects and the library itself in a platform-independent manner.
+#========================================================================
+
+itk_LIB_FILE = @itk_LIB_FILE@
+$(itk_LIB_FILE)_OBJECTS = $(itk_OBJECTS)
+
+itkstub_LIB_FILE = @itkstub_LIB_FILE@
+$(itkstub_LIB_FILE)_OBJECTS = $(itkstub_OBJECTS)
+
+itclstub_LIB_FILE = @itclstub_LIB_FILE@
+
+tkstub_LIB_SPEC = @tkstub_LIB_SPEC@
+
+#========================================================================
+# This is a list of header files to be installed
+#========================================================================
+
+GENERIC_HDRS= \
+ $(srcdir)/generic/itk.h \
+ $(srcdir)/generic/itkDecls.h
+
+#========================================================================
+# Add additional lines to handle any additional AC_SUBST cases that
+# have been added to the configure script.
+#========================================================================
+
+SAMPLE_NEW_VAR=@SAMPLE_NEW_VAR@
+
+# CYGNUS LOCAL
+ITK_LIBRARY = @datadir@/itk$(VERSION)
+# END CYGNUS LOCAL
+
+ITK_GENERIC_DIR_NATIVE = @ITK_GENERIC_DIR_NATIVE@
+ITK_UNIX_DIR_NATIVE = @ITK_UNIX_DIR_NATIVE@
+ITK_WIN_DIR_NATIVE = @ITK_WIN_DIR_NATIVE@
+
+#========================================================================
+# Nothing of the variables below this line need to be changed. Please
+# check the TARGETS section below to make sure the make targets are
+# correct.
+#========================================================================
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@@VERSION@
+pkglibdir = $(libdir)/@PACKAGE@@VERSION@
+pkgincludedir = $(includedir)/@PACKAGE@@VERSION@
+
+top_builddir = .
+
+# CYGNUS LOCAL
+INSTALL = @INSTALL@
+# END CYGNUS LOCAL
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_FLAG =
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+CC = @CC@
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_DEFAULT = @CFLAGS_DEFAULT@
+CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
+CLEANFILES = @CLEANFILES@
+EXEEXT = @EXEEXT@
+LDFLAGS_DEBUG = @LDFLAGS_DEBUG@
+LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@
+LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@
+MAKE_LIB = @MAKE_LIB@
+MAKE_SHARED_LIB = @MAKE_SHARED_LIB@
+MAKE_STATIC_LIB = @MAKE_STATIC_LIB@
+OBJEXT = @OBJEXT@
+RANLIB = @RANLIB@
+SHLIB_CFLAGS = @SHLIB_CFLAGS@
+SHLIB_LD = @SHLIB_LD@
+SHLIB_LDFLAGS = @SHLIB_LDFLAGS@
+SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
+STLIB_LD = @STLIB_LD@
+TCL_BIN_DIR = @TCL_BIN_DIR@
+TCL_DEFS = @TCL_DEFS@
+TCL_EXTRA_CFLAGS = @TCL_EXTRA_CFLAGS@
+TCL_LD_FLAGS = @TCL_LD_FLAGS@
+TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_LD_LIBS = @TCL_SHLIB_LD_LIBS@
+TCL_SRC_DIR = @TCL_SRC_DIR@
+TCL_DBGX = @TCL_DBGX@
+TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
+TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
+TCL_TOOL_DIR_NATIVE = @TCL_TOOL_DIR_NATIVE@
+TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@
+TCL_UNIX_DIR_NATIVE = @TCL_UNIX_DIR_NATIVE@
+TCL_WIN_DIR_NATIVE = @TCL_WIN_DIR_NATIVE@
+INCLUDE_DIR_NATIVE = @INCLUDE_DIR_NATIVE@
+TCL_BMAP_DIR_NATIVE = @TCL_BMAP_DIR_NATIVE@
+TCL_PLATFORM_DIR_NATIVE = @TCL_PLATFORM_DIR_NATIVE@
+TCL_GENERIC_DIR_NATIVE = @TCL_GENERIC_DIR_NATIVE@
+TK_TOP_DIR_NATIVE = $(TK_SRC_DIR)
+TK_SRC_DIR = @TK_SRC_DIR@
+TCLSH_PROG = @TCLSH_PROG@
+WISH_PROG = @WISH_PROG@
+TK_XINCLUDES = @TK_XINCLUDES@
+TCL_INCLUDES = @TCL_INCLUDES@
+TK_INCLUDES = @TK_INCLUDES@
+ITCL_INCLUDES = @ITCL_INCLUDES@
+ITK_INCLUDES = @ITCL_INCLUDES@ @ITK_INCLUDES@ @TK_XINCLUDES@
+
+AUTOCONF = autoconf
+
+LDFLAGS = $(LDFLAGS_DEFAULT)
+
+INCLUDES = @TCL_INCLUDES@ @TK_INCLUDES@ $(ITK_INCLUDES)
+
+EXTRA_CFLAGS = $(AC_FLAGS) $(PROTO_FLAGS) $(MEM_DEBUG_FLAGS) $(NO_DEPRECATED_FLAGS) $(TCL_EXTRA_CFLAGS)
+
+DEFS = @DEFS@ $(EXTRA_CFLAGS) -DITK_LIBRARY=\"$(ITK_LIBRARY)\"
+
+ACLOCAL_M4 = $(srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/../config/mkinstalldirs
+
+CPPFLAGS = @CPPFLAGS@
+LIBS = @LIBS@
+AR = ar
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+
+#========================================================================
+# Start of user-definable TARGETS section
+#========================================================================
+
+#========================================================================
+# TEA TARGETS. Please note that the "libraries:" target refers to platform
+# independent files, and the "binaries:" target inclues executable programs and
+# platform-dependent libraries. Modify these targets so that they install
+# the various pieces of your package. The make and install rules
+# for the BINARIES that you specified above have already been done.
+#========================================================================
+
+all: binaries libraries doc
+
+#========================================================================
+# The binaries target builds executable programs, Windows .dll's, unix
+# shared/static libraries, and any other platform-dependent files.
+# The list of targets to build for "binaries:" is specified at the top
+# of the Makefile, in the "BINARIES" variable.
+#========================================================================
+
+binaries: $(BINARIES)
+
+libraries:
+
+doc:
+
+install: all install-binaries install-libraries install-doc
+
+install-binaries: binaries install-lib-binaries install-bin-binaries
+
+#========================================================================
+# This rule installs platform-independent files, such as header files.
+#========================================================================
+
+install-libraries: libraries
+ $(mkinstalldirs) $(includedir)
+ @echo "Installing header files in $(includedir)"
+ @for i in $(GENERIC_HDRS) ; do \
+ echo "Installing $$i" ; \
+ $(INSTALL_DATA) $$i $(includedir) ; \
+ done;
+ @echo "Installing library files in $(ITK_LIBRARY)"
+ @for i in $(srcdir)/library/*.* $(srcdir)/library/tclIndex ; do \
+ echo "Installing $$i" ; \
+ $(INSTALL_DATA) $$i $(ITK_LIBRARY) ; \
+ done;
+
+#========================================================================
+# Install documentation. Unix manpages should go in the $(mandir)
+# directory.
+#========================================================================
+
+install-doc: doc
+ $(mkinstalldirs) $(mandir)/mann
+ @echo "Installing man pages in $(mandir)"
+ @for i in $(srcdir)/doc/*.n; \
+ do \
+ echo "Installing $$i info $(mandir)/mann"; \
+ $(INSTALL_DATA) $$i $(mandir)/mann ; \
+ done
+
+test: $(TCLSH_PROG)
+ $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/tests/all.tcl` \
+ -exedir `@CYGPATH@ $(bindir)` $(TESTFLAGS)
+
+depend:
+
+#========================================================================
+# Enumerate the names of the object files included in this package.
+# These objects are created and linked into the final library. In
+# most cases these object files will correspond to the source files
+# above.
+#
+# $(exampleA_LIB_FILE) should be listed as part of the BINARIES variable
+# at the top of the Makefile. That will ensure that this target is built
+# when you run "make binaries".
+#
+# You shouldn't need to modify this target, except to change the package
+# name from "exampleA" to your package's name.
+#========================================================================
+
+$(itk_LIB_FILE): $(itk_OBJECTS)
+ -rm -f $(itk_LIB_FILE)
+ @MAKE_LIB@
+ @POST_MAKE_LIB@
+
+$(itkstub_LIB_FILE): $(itkstub_OBJECTS)
+ -rm -f $(itkstub_LIB_FILE)
+ @MAKE_STATIC_LIB@
+ @POST_MAKE_STATIC_LIB@
+
+#========================================================================
+# We need to enumerate the list of .c to .o lines here.
+# Unfortunately, there does not seem to be any other way to do this
+# in a Makefile-independent way. We can't use VPATH because it picks up
+# object files that may be located in the source directory.
+#
+# In the following lines, $(srcdir) refers to the toplevel directory
+# containing your extension. If your sources are in a subdirectory,
+# you will have to modify the paths to reflect this:
+#
+# exampleA.$(OBJEXT): $(srcdir)/src/win/exampleA.c
+# $(COMPILE) -c `@CYGPATH@ $(srcdir)/src/win/exampleA.c` -o $@
+#========================================================================
+
+dllEntryPoint.$(OBJEXT): $(WIN_DIR)/dllEntryPoint.c
+ $(COMPILE) -c `@CYGPATH@ $(WIN_DIR)/dllEntryPoint.c` -o $@
+
+tclAppInit.$(OBJEXT): $(PLATFORM_DIR)/tclAppInit.c
+ $(COMPILE) -c `@CYGPATH@ $(PLATFORM_DIR)/tclAppInit.c` -o $@
+
+itkStubInit.$(OBJEXT): $(GENERIC_DIR)/itkStubInit.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itkStubInit.c` -o $@
+
+itkStubLib.$(OBJEXT): $(GENERIC_DIR)/itkStubLib.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itkStubLib.c` -o $@
+
+itk_cmds.$(OBJEXT): $(GENERIC_DIR)/itk_cmds.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itk_cmds.c` -o $@
+
+itk_option.$(OBJEXT): $(GENERIC_DIR)/itk_option.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itk_option.c` -o $@
+
+itk_archetype.$(OBJEXT): $(GENERIC_DIR)/itk_archetype.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itk_archetype.c` -o $@
+
+itk_util.$(OBJEXT): $(GENERIC_DIR)/itk_util.c
+ $(COMPILE) -c `@CYGPATH@ $(GENERIC_DIR)/itk_util.c` -o $@
+
+
+#========================================================================
+# End of user-definable section
+#========================================================================
+
+#========================================================================
+# Don't modify the file to clean here. Instead, set the "CLEANFILES"
+# variable in configure.in
+#========================================================================
+
+clean:
+ -test -z "$(BINARIES)" || rm -f $(BINARIES)
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean: clean
+ -rm -f *.tab.c
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -rm -f config.status
+
+#========================================================================
+# Install binary object libraries. On Windows this includes both .dll and
+# .lib files. Because the .lib files are not explicitly listed anywhere,
+# we need to deduce their existence from the .dll file of the same name.
+# Additionally, the .dll files go into the bin directory, but the .lib
+# files go into the lib directory. On Unix platforms, all library files
+# go into the lib directory. In addition, this will generate the pkgIndex.tcl
+# file in the install location (assuming it can find a usable tclsh8.2 shell)
+#
+# You should not have to modify this target.
+#========================================================================
+
+install-lib-binaries: installdirs
+ @list='$(lib_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ ext=`echo $$p|sed -e "s/.*\.//"`; \
+ if test "x$$ext" = "xdll"; then \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p; \
+ lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \
+ if test -f $$lib; then \
+ echo " $(INSTALL_PROGRAM) $$lib $(DESTDIR)$(libdir)/$$lib"; \
+ $(INSTALL_PROGRAM) $$lib $(DESTDIR)$(libdir)/$$lib; \
+ fi; \
+ else \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \
+ fi; \
+ else :; fi; \
+ done
+ @list='$(lib_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
+ $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+ else :; fi; \
+ done
+ $(INSTALL_DATA) pkgIndex.tcl $(pkglibdir)
+
+#========================================================================
+# Install binary executables (e.g. .exe files)
+#
+# You should not have to modify this target.
+#========================================================================
+
+install-bin-binaries: installdirs
+ @list='$(bin_BINARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(bindir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(bindir)/$$p; \
+ else :; fi; \
+ done
+
+.SUFFIXES: .c .o .obj
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+#config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+# $(SHELL) ./config.status --recheck
+#$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+# cd $(srcdir) && $(AUTOCONF)
+
+
+uninstall-binaries:
+ @$(NORMAL_UNINSTALL)
+ list='$(BINARIES)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(libdir)/$$p; \
+ done
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ $(mkinstalldirs) $(DESTDIR)$(pkglibdir)
+ $(mkinstalldirs) $(ITK_LIBRARY)
+
+.PHONY: all binaries clean depend distclean doc install installdirs \
+libraries test
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/itcl/itk/aclocal.m4 b/itcl/itk/aclocal.m4
new file mode 100644
index 00000000000..544b05677f0
--- /dev/null
+++ b/itcl/itk/aclocal.m4
@@ -0,0 +1,3 @@
+builtin(include,../tcl.m4)
+builtin(include,../cygtcl.m4)
+builtin(include,../../config/acinclude.m4)
diff --git a/itcl/itk/configure b/itcl/itk/configure
new file mode 100755
index 00000000000..58134762670
--- /dev/null
+++ b/itcl/itk/configure
@@ -0,0 +1,2921 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --with-tcl directory containing tcl configuration (tclConfig.sh)"
+ac_help="$ac_help
+ --with-tk directory containing tk configuration (tkConfig.sh)"
+ac_help="$ac_help
+ --with-itclinclude=DIR use Itcl headers from DIR"
+ac_help="$ac_help
+ --with-itclconfig directory containing itcl configuration (itclConfig.sh)"
+ac_help="$ac_help
+ --enable-threads build with threads"
+ac_help="$ac_help
+ --enable-shared build and link with shared libraries [--enable-shared]"
+ac_help="$ac_help
+ --enable-symbols build with debugging symbols [--disable-symbols]"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+sitefile=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --site-file=FILE use FILE as the site file
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
+ ac_prev=sitefile ;;
+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+ sitefile="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=generic/itk.h
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$sitefile"; then
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+else
+ CONFIG_SITE="$sitefile"
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+# CYGNUS LOCAL
+ac_aux_dir=
+for ac_dir in ../.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in ../.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Set your package name and version numbers here. The NODOT_VERSION is
+# required for constructing the library name on systems that don't like
+# dots in library names (Windows). The VERSION variable is used on the
+# other systems.
+#--------------------------------------------------------------------
+
+PACKAGE=itk
+
+MAJOR_VERSION=3
+MINOR_VERSION=2
+PATCHLEVEL=.0
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}
+NODOT_VERSION=${MAJOR_VERSION}${MINOR_VERSION}
+
+
+
+
+
+#--------------------------------------------------------------------
+# We put this here so that you can compile with -DVERSION="1.2" to
+# encode the package version directly into the source files.
+#--------------------------------------------------------------------
+
+eval cat >> confdefs.h <<EOF
+#define VERSION "${VERSION}"
+EOF
+
+
+#------------------------------------------------------------------------
+# Handle the --prefix=... option
+#------------------------------------------------------------------------
+
+if test "${prefix}" = "NONE"; then
+ prefix=/usr/local
+fi
+if test "${exec_prefix}" = "NONE"; then
+ exec_prefix=$prefix
+fi
+
+#--------------------------------------------------------------------
+# Check whether --enable-gcc or --disable-gcc was given. Do this
+# before AC_CYGWIN is called so the compiler can
+# be fully tested by built-in autoconf tools.
+# This macro also calls AC_PROG_CC to set the compiler if --enable-gcc
+# was not used.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:626: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:656: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:707: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:739: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 750 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:781: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:786: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:795: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:814: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+# END CYGNUS LOCAL
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:858: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+#--------------------------------------------------------------------
+# Checks to see if the make program sets the $MAKE variable.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:916: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+#--------------------------------------------------------------------
+# Find ranlib
+#--------------------------------------------------------------------
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:950: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+#--------------------------------------------------------------------
+# This macro performs additional compiler tests.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:983: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 988 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_cygwin=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+
+#--------------------------------------------------------------------
+# Determines the correct binary file extension (.o, .obj, .exe etc.)
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+echo "configure:1021: checking for object suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ rm -f conftest*
+echo 'int i = 1;' > conftest.$ac_ext
+if { (eval echo configure:1027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ for ac_file in conftest.*; do
+ case $ac_file in
+ *.c) ;;
+ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
+ esac
+ done
+else
+ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_objext" 1>&6
+OBJEXT=$ac_cv_objext
+ac_objext=$ac_cv_objext
+
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:1045: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1050 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:1057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_mingw32=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:1076: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+ ac_cv_exeext=.exe
+else
+ rm -f conftest*
+ echo 'int main () { return 0; }' > conftest.$ac_ext
+ ac_cv_exeext=
+ if { (eval echo configure:1086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ for file in conftest.*; do
+ case $file in
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+ esac
+ done
+ else
+ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ rm -f conftest*
+ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+
+#--------------------------------------------------------------------
+# "cygpath" is used on windows to generate native path names for include
+# files.
+# These variables should only be used with the compiler and linker since
+# they generate native path names.
+#
+# Unix tclConfig.sh points SRC_DIR at the top-level directory of
+# the Tcl sources, while the Windows tclConfig.sh points SRC_DIR at
+# the win subdirectory. Hence the different usages of SRC_DIR below.
+#
+# This must be done before calling SC_PUBLIC_TCL_HEADERS
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *mingw32* | *windows32*)
+ # Extract the first word of "cygpath", so it can be a program name with args.
+set dummy cygpath; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1125: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CYGPATH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CYGPATH"; then
+ ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CYGPATH="cygpath -w"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo"
+fi
+fi
+CYGPATH="$ac_cv_prog_CYGPATH"
+if test -n "$CYGPATH"; then
+ echo "$ac_t""$CYGPATH" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ RELPATH=".. .. bin"
+ ;;
+ *)
+ CYGPATH=echo
+ RELPATH=..
+ ;;
+esac
+
+
+
+
+#--------------------------------------------------------------------
+# Includes for this package
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+srcdir=`cd ${srcdir} ; pwd`
+ITK_SRC_DIR_NATIVE=`${CYGPATH} ${srcdir}`
+# END CYGNUS LOCAL
+ITK_GENERIC_DIR_NATIVE=`${CYGPATH} ${srcdir}/generic`
+ITK_WIN_DIR_NATIVE=`${CYGPATH} ${srcdir}/win`
+ITK_UNIX_DIR_NATIVE=`${CYGPATH} ${srcdir}/unix`
+
+case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ ITK_PLATFORM_DIR_NATIVE=${ITK_WIN_DIR_NATIVE}
+ ;;
+ *)
+ ITK_PLATFORM_DIR_NATIVE=${ITK_UNIX_DIR_NATIVE}
+ ;;
+esac
+
+ITK_INCLUDES="-I\"${ITK_GENERIC_DIR_NATIVE}\" -I\"${ITK_PLATFORM_DIR_NATIVE}\""
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+
+
+ #
+ # Ok, lets find the tcl configuration
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-tcl
+ #
+
+ if test x"${no_tcl}" = x ; then
+ # we reset no_tcl in case something fails here
+ no_tcl=true
+ # Check whether --with-tcl or --without-tcl was given.
+if test "${with_tcl+set}" = set; then
+ withval="$with_tcl"
+ with_tclconfig=${withval}
+fi
+
+ echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
+echo "configure:1212: checking for Tcl configuration" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+
+ # First check to see if --with-tcl was specified.
+ if test x"${with_tclconfig}" != x ; then
+ if test -f "${with_tclconfig}/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+ else
+ { echo "configure: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" 1>&2; exit 1; }
+ fi
+ fi
+
+ # then check for a private Tcl installation
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ../tcl \
+ `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
+ ../../tcl \
+ `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
+ ../../../tcl \
+ `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few common install locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib 2>/dev/null` \
+ `ls -d /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few other private locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ${srcdir}/../tcl \
+ `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+fi
+
+
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ TCL_BIN_DIR="# no Tcl configs found"
+ { echo "configure: error: Can't find Tcl configuration definitions" 1>&2; exit 1; }
+ exit 0
+ else
+ no_tcl=
+ TCL_BIN_DIR=${ac_cv_c_tclconfig}
+ echo "$ac_t""found $TCL_BIN_DIR/tclConfig.sh" 1>&6
+ fi
+ fi
+
+
+ echo $ac_n "checking for existence of $TCL_BIN_DIR/tclConfig.sh""... $ac_c" 1>&6
+echo "configure:1290: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
+
+ if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+ echo "$ac_t""loading" 1>&6
+ . $TCL_BIN_DIR/tclConfig.sh
+ else
+ echo "$ac_t""file not found" 1>&6
+ fi
+
+ #
+ # The eval is required to do the TCL_DBGX substitution in the
+ # TCL_LIB_FILE variable
+ #
+
+ eval TCL_LIB_FILE=${TCL_LIB_FILE}
+ eval TCL_LIB_FLAG=${TCL_LIB_FLAG}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Load the tkConfig.sh file
+#--------------------------------------------------------------------
+
+
+ #
+ # Ok, lets find the tk configuration
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-tk
+ #
+
+ if test x"${no_tk}" = x ; then
+ # we reset no_tk in case something fails here
+ no_tk=true
+ # Check whether --with-tk or --without-tk was given.
+if test "${with_tk+set}" = set; then
+ withval="$with_tk"
+ with_tkconfig=${withval}
+fi
+
+ echo $ac_n "checking for Tk configuration""... $ac_c" 1>&6
+echo "configure:1345: checking for Tk configuration" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_tkconfig'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+
+ # First check to see if --with-tkconfig was specified.
+ if test x"${with_tkconfig}" != x ; then
+ if test -f "${with_tkconfig}/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
+ else
+ { echo "configure: error: ${with_tkconfig} directory doesn't contain tkConfig.sh" 1>&2; exit 1; }
+ fi
+ fi
+
+ # then check for a private Tk library
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in \
+ ../tk \
+ `ls -dr ../tk[8-9].[0-9]* 2>/dev/null` \
+ ../../tk \
+ `ls -dr ../../tk[8-9].[0-9]* 2>/dev/null` \
+ ../../../tk \
+ `ls -dr ../../../tk[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few common install locations
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib 2>/dev/null` \
+ `ls -d /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few other private locations
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in \
+ ${srcdir}/../tk \
+ `ls -dr ${srcdir}/../tk[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+fi
+
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ TK_BIN_DIR="# no Tk configs found"
+ { echo "configure: error: Can't find Tk configuration definitions" 1>&2; exit 1; }
+ exit 0
+ else
+ no_tk=
+ TK_BIN_DIR=${ac_cv_c_tkconfig}
+ echo "$ac_t""found $TK_BIN_DIR/tkConfig.sh" 1>&6
+ fi
+ fi
+
+
+
+ echo $ac_n "checking for existence of $TK_BIN_DIR/tkConfig.sh""... $ac_c" 1>&6
+echo "configure:1421: checking for existence of $TK_BIN_DIR/tkConfig.sh" >&5
+
+ if test -f "$TK_BIN_DIR/tkConfig.sh" ; then
+ echo "$ac_t""loading" 1>&6
+ . $TK_BIN_DIR/tkConfig.sh
+ else
+ echo "$ac_t""could not find $TK_BIN_DIR/tkConfig.sh" 1>&6
+ fi
+
+
+
+
+
+
+
+# Check whether --with-itcl or --without-itcl was given.
+if test "${with_itcl+set}" = set; then
+ withval="$with_itcl"
+ ITCL_LIB_DIR=$withval
+else
+ ITCL_LIB_DIR=`cd ${srcdir}/../itcl; pwd`
+fi
+
+
+if test ! -r "${ITCL_LIB_DIR}/generic/itclInt.h" ; then
+ { echo "configure: error: Can't find Itcl private header files. Use --with-itclinclude to specify the directory containing the Itcl private headers on your system." 1>&2; exit 1; }
+fi
+
+ITCL_INCLUDES=-I\"`${CYGPATH} ${ITCL_LIB_DIR}/generic`\"
+
+
+# CYGNUS LOCAL
+
+#
+# Ok, lets find the itcl configuration
+# First, look for one uninstalled.
+# the alternative search directory is invoked by --with-itclconfig
+#
+
+if test x"${no_itcl}" = x ; then
+ # we reset no_itcl in case something fails here
+ no_itcl=true
+ # Check whether --with-itclconfig or --without-itclconfig was given.
+if test "${with_itclconfig+set}" = set; then
+ withval="$with_itclconfig"
+ with_itclconfig=${withval}
+fi
+
+ echo $ac_n "checking for Itcl configuration""... $ac_c" 1>&6
+echo "configure:1470: checking for Itcl configuration" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_itclconfig'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+
+ # First check to see if --with-itclconfig was specified.
+ if test x"${with_itclconfig}" != x ; then
+ if test -f "${with_itclconfig}/itclConfig.sh" ; then
+ ac_cv_c_itclconfig=`(cd ${with_itclconfig}; pwd)`
+ else
+ { echo "configure: error: ${with_itclconfig} directory doesn't contain itclConfig.sh" 1>&2; exit 1; }
+ fi
+ fi
+
+ # then check for a private itcl library
+ if test x"${ac_cv_c_itclconfig}" = x ; then
+ for i in \
+ ../itcl/itcl \
+ `ls -dr ../itcl/itcl[3]* 2>/dev/null` \
+ ../../itcl/itcl \
+ `ls -dr ../../itcl/itcl[3]* 2>/dev/null` \
+ ../../../itcl/itcl \
+ `ls -dr ../../../itcl/itcl[3]* 2>/dev/null` ; do
+ if test -f "$i/itclConfig.sh" ; then
+ ac_cv_c_itclconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few common install locations
+ if test x"${ac_cv_c_itclconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/itclConfig.sh" ; then
+ ac_cv_c_itclconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few other private locations
+ if test x"${ac_cv_c_itclconfig}" = x ; then
+ for i in \
+ ${srcdir}/../itcl/itcl \
+ `ls -dr ${srcdir}/../itcl/itcl[3]* 2>/dev/null` ; do
+ if test -f "$i/itcl/itclConfig.sh" ; then
+ ac_cv_c_itclconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+
+fi
+
+ if test x"${ac_cv_c_itclconfig}" = x ; then
+ ITCLCONFIG="# no itcl configs found"
+ { echo "configure: error: Can't find itcl configuration definitions" 1>&2; exit 1; }
+ else
+ no_itcl=
+ ITCLCONFIG=${ac_cv_c_itclconfig}/itclConfig.sh
+ echo "$ac_t""found $ITCLCONFIG" 1>&6
+ fi
+fi
+
+
+
+ if test -f "$ITCLCONFIG" ; then
+ . $ITCLCONFIG
+ fi
+
+
+
+
+
+
+
+
+itclstub_LIB_FILE=${ITCL_STUB_LIB_FILE}
+
+
+tkstub_LIB_SPEC=${TK_STUB_LIB_SPEC}
+
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Choose which headers you need. Extension authors should try very
+# hard to only rely on the Tcl public header files. Internal headers
+# contain private data structures and are subject to change without
+# notice.
+# This must be done AFTER calling SC_PATH_TCLCONFIG/SC_LOAD_TCLCONFIG
+# so that we can extract TCL_SRC_DIR from the config file (in the case
+# of private headers
+#--------------------------------------------------------------------
+
+#SC_PUBLIC_TCL_HEADERS
+
+ echo $ac_n "checking for Tcl private include files""... $ac_c" 1>&6
+echo "configure:1567: checking for Tcl private include files" >&5
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ TCL_TOP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}`\"
+ TCL_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/generic`\"
+ TCL_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/unix`\"
+ TCL_WIN_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/win`\"
+ TCL_BMAP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/bitmaps`\"
+ TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\"
+ TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\"
+ TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE}
+ ;;
+ *)
+ TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)'
+ TCL_GENERIC_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/generic'
+ TCL_UNIX_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/unix'
+ TCL_WIN_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/win'
+ TCL_BMAP_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/bitmaps'
+ TCL_TOOL_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/tools'
+ TCL_COMPAT_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/compat'
+ TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE}
+ ;;
+ esac
+
+
+
+
+
+
+
+
+
+ TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
+
+ echo "$ac_t""Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}" 1>&6
+
+
+#SC_PUBLIC_TK_HEADERS
+
+ echo $ac_n "checking for Tk private include files""... $ac_c" 1>&6
+echo "configure:1608: checking for Tk private include files" >&5
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ TK_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/unix`\"
+ TK_WIN_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/win`\"
+ TK_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/generic`\"
+ TK_XLIB_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/xlib`\"
+ TK_PLATFORM_DIR_NATIVE=${TK_WIN_DIR_NATIVE}
+
+ TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE} -I${TK_XLIB_DIR_NATIVE}"
+ ;;
+ *)
+ TK_GENERIC_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/generic'
+ TK_UNIX_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/unix'
+ TK_WIN_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/win'
+ TK_PLATFORM_DIR_NATIVE=${TK_UNIX_DIR_NATIVE}
+
+ TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}"
+ ;;
+ esac
+
+
+
+
+
+
+
+
+ echo "$ac_t""Using srcdir found in tkConfig.sh" 1>&6
+
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# A few miscellaneous platform-specific items:
+#
+# Define a special symbol for Windows (BUILD_itk in this case) so
+# that we create the export library with the dll. See sha1.h on how
+# to use this.
+#
+# Windows creates a few extra files that need to be cleaned up.
+# You can add more files to clean if your extension creates any extra
+# files.
+#
+# Define any extra compiler flags in the PACKAGE_CFLAGS variable.
+# These will be appended to the current set of compiler flags for
+# your system.
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ cat >> confdefs.h <<EOF
+#define BUILD_${PACKAGE} 1
+EOF
+
+ CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc50.pch"
+ PLATFORM_SOURCES='$(WIN_SOURCES)'
+ PLATFORM_OBJECTS='$(WIN_OBJECTS)'
+ PLATFORM_DIR='$(WIN_DIR)'
+ ;;
+ *)
+ CLEANFILES=
+ PLATFORM_SOURCES='$(UNIX_SOURCES)'
+ PLATFORM_OBJECTS='$(UNIX_OBJECTS)'
+ PLATFORM_DIR='$(UNIX_DIR)'
+ ;;
+esac
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# So far only Tcl responds to this one.
+#--------------------------------------------------------------------
+
+
+ echo $ac_n "checking for building with threads""... $ac_c" 1>&6
+echo "configure:1688: checking for building with threads" >&5
+ # Check whether --enable-threads or --disable-threads was given.
+if test "${enable_threads+set}" = set; then
+ enableval="$enable_threads"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+
+ if test "$tcl_ok" = "yes"; then
+ TCL_THREADS=1
+ cat >> confdefs.h <<\EOF
+#define TCL_THREADS 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define _REENTRANT 1
+EOF
+
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ echo "$ac_t""yes" 1>&6
+ ;;
+ *)
+ echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
+echo "configure:1715: checking for pthread_mutex_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lpthread $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1723 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pthread_mutex_init();
+
+int main() {
+pthread_mutex_init()
+; return 0; }
+EOF
+if { (eval echo configure:1734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=yes
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=no
+fi
+
+ if test "$tcl_ok" = "yes"; then
+ # The space is needed
+ THREADS_LIBS=" -lpthread"
+ echo "$ac_t""yes" 1>&6
+ else
+ TCL_THREADS=0
+ echo "$ac_t""no" 1>&6
+ echo "configure: warning: "Don t know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile..."" 1>&2
+ fi
+ ;;
+ esac
+ else
+ TCL_THREADS=0
+ echo "$ac_t""no (default)" 1>&6
+ fi
+
+
+
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+
+ echo $ac_n "checking how to build libraries""... $ac_c" 1>&6
+echo "configure:1780: checking how to build libraries" >&5
+ # Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+
+# CYGNUS LOCAL
+ case "${host}" in
+ *mingw32* | *windows32*)
+ # Default to shared build for Windows
+ if test "${enable_shared+set}" != set; then
+ tcl_ok=yes
+ fi
+ ;;
+ esac
+# END CYGNUS LOCAL
+
+ if test "$tcl_ok" = "yes" ; then
+ echo "$ac_t""shared" 1>&6
+ SHARED_BUILD=1
+ else
+ echo "$ac_t""static" 1>&6
+ SHARED_BUILD=0
+ cat >> confdefs.h <<\EOF
+#define STATIC_BUILD 1
+EOF
+
+ fi
+
+
+#--------------------------------------------------------------------
+# This macro figures out what flags to use with the compiler/linker
+# when building shared/static debug/optimized objects. This information
+# is all taken from the tclConfig.sh file.
+#--------------------------------------------------------------------
+
+CFLAGS_DEBUG=${TCL_CFLAGS_DEBUG}
+CFLAGS_OPTIMIZE=${TCL_CFLAGS_OPTIMIZE}
+LDFLAGS_DEBUG=${TCL_LDFLAGS_DEBUG}
+LDFLAGS_OPTIMIZE=${TCL_LDFLAGS_OPTIMIZE}
+SHLIB_LD=${TCL_SHLIB_LD}
+STLIB_LD=${TCL_STLIB_LD}
+SHLIB_CFLAGS=${TCL_SHLIB_CFLAGS}
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols
+# option.
+#--------------------------------------------------------------------
+
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ tcl_dbgx=d
+ ;;
+ *)
+ tcl_dbgx=g
+ ;;
+ esac
+
+ echo $ac_n "checking for build with symbols""... $ac_c" 1>&6
+echo "configure:1851: checking for build with symbols" >&5
+ # Check whether --enable-symbols or --disable-symbols was given.
+if test "${enable_symbols+set}" = set; then
+ enableval="$enable_symbols"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+ if test "$tcl_ok" = "yes"; then
+ CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+ LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
+ DBGX=${tcl_dbgx}
+ TCL_DBGX=${tcl_dbgx}
+ echo "$ac_t""yes" 1>&6
+ else
+ CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+ LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+ DBGX=""
+ TCL_DBGX=""
+ echo "$ac_t""no" 1>&6
+ fi
+
+
+
+
+
+
+if test "${SHARED_BUILD}" = "1" ; then
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING} ${SHLIB_CFLAGS}'
+else
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING}'
+fi
+
+#--------------------------------------------------------------------
+# Everyone should be linking against the Tcl stub library. If you
+# can't for some reason, remove this definition. If you aren't using
+# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
+# link against the non-stubbed Tcl library.
+#--------------------------------------------------------------------
+
+if test "${SHARED_BUILD}" = "1" ; then
+ cat >> confdefs.h <<\EOF
+#define USE_TCL_STUBS 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define USE_TK_STUBS 1
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define USE_ITCL_STUBS 1
+EOF
+
+fi
+
+#--------------------------------------------------------------------
+# This macro generates a line to use when building a library. It
+# depends on values set by the SC_ENABLE_SHARED, SC_ENABLE_SYMBOLS,
+# and SC_LOAD_TCLCONFIG macros above.
+#--------------------------------------------------------------------
+
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ if test "${CC}" = "cl"; then
+ MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(\$@_OBJECTS) "
+ MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS} \$(LDFLAGS) -out:\$@ \$(\$@_OBJECTS) "
+ else
+ MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(\$@_OBJECTS) "
+ POST_MAKE_STATIC_LIB="\${RANLIB} \$@"
+ MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(\$@_OBJECTS) \${SHLIB_LDFLAGS} \$(LDFLAGS) \${SHLIB_LD_LIBS} -Wl,--out-implib,\$(patsubst %.dll,lib%.a,\$@)"
+ fi
+ ;;
+ *)
+ MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(\$@_OBJECTS)"
+ POST_MAKE_STATIC_LIB="\${RANLIB} \$@"
+ MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(\$@_OBJECTS) \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS}"
+ ;;
+ esac
+
+ if test "${SHARED_BUILD}" = "1" ; then
+ MAKE_LIB=${MAKE_SHARED_LIB}
+ else
+ MAKE_LIB=${MAKE_STATIC_LIB}
+ POST_MAKE_LIB=${POST_MAKE_STATIC_LIB}
+ fi
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# eval these two values to dereference the ${DBGX} variable.
+#--------------------------------------------------------------------
+
+eval "SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}"
+eval "UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}"
+
+#--------------------------------------------------------------------
+# Shared libraries and static libraries have different names.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+if test "${SHARED_BUILD}" = "1" ; then
+ # FIXME: Need to devise a TCL_TOOL macro to deal with this!
+ case "${host}" in
+ *mingw32* | *windows32*)
+ SHLIB_LD_LIBS="${TCL_BUILD_STUB_LIB_SPEC} ${TCL_SHLIB_LD_LIBS} \
+ ${ITCL_BUILD_STUB_LIB_SPEC} ${TK_BUILD_STUB_LIB_SPEC}"
+ # Need to link to the .a or .lib not the .dll!
+
+ libname=${PACKAGE}
+ suffix=${SHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32* | *cygwin*)
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITK_SHLIB_FILE=$long_libname
+
+
+ libname=${PACKAGE}
+ suffix=${UNSHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ else
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ fi
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITK_LIB_FILE=$long_libname
+
+ ITK_TARGET_FILE=${ITK_SHLIB_FILE}
+ ;;
+ *)
+ SHLIB_LD_LIBS="${TK_BUILD_STUB_LIB_SPEC} ${TCL_BUILD_STUB_LIB_SPEC} \
+ ${ITCL_BUILD_STUB_LIB_SPEC}"
+
+ libname=${PACKAGE}
+ suffix=${SHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32* | *cygwin*)
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITK_LIB_FILE=$long_libname
+
+ ITK_TARGET_FILE=${ITK_LIB_FILE}
+ ;;
+ esac
+else
+
+ libname=${PACKAGE}
+ suffix=${UNSHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ else
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ fi
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITK_LIB_FILE=$long_libname
+
+ ITK_TARGET_FILE=${ITK_LIB_FILE}
+fi
+
+
+ libname=${PACKAGE}stub
+ suffix=${UNSHARED_LIB_SUFFIX}
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "long_libname=\"${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ else
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ fi
+ ;;
+ *)
+ eval "long_libname=\"lib${TCL_VENDOR_PREFIX}${libname}${suffix}\""
+ ;;
+ esac
+
+ eval "long_libname=${long_libname}"
+
+ # Trick to replace DBGX with TCL_DBGX
+ DBGX='${TCL_DBGX}'
+ eval "long_libname=${long_libname}"
+
+ ITK_STUB_LIB_FILE=$long_libname
+
+
+
+
+
+
+ libname=${PACKAGE}
+ version=${VERSION}
+
+ if test "$TCL_LIB_SUFFIX" = "" ; then
+ { echo "configure: error: The TCL_LIB_SUFFIX variable is not defined" 1>&2; exit 1; }
+ fi
+
+ # If the . character is not allowed in lib name, remove it from version
+ if test "${TCL_LIB_VERSIONS_OK}" != "ok"; then
+ version=`echo $version | tr -d .`
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "short_libname=\"${TCL_VENDOR_PREFIX}${libname}${version}${TCL_LIB_SUFFIX}\""
+ else
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}${TCL_DBGX}"
+ fi
+ ;;
+ *)
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}\${TCL_DBGX}"
+ ;;
+ esac
+
+ ITK_LIB_FLAG=$short_libname
+
+
+ libname=${PACKAGE}stub
+ version=${VERSION}
+
+ if test "$TCL_LIB_SUFFIX" = "" ; then
+ { echo "configure: error: The TCL_LIB_SUFFIX variable is not defined" 1>&2; exit 1; }
+ fi
+
+ # If the . character is not allowed in lib name, remove it from version
+ if test "${TCL_LIB_VERSIONS_OK}" != "ok"; then
+ version=`echo $version | tr -d .`
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+ eval "short_libname=\"${TCL_VENDOR_PREFIX}${libname}${version}${TCL_LIB_SUFFIX}\""
+ else
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}${TCL_DBGX}"
+ fi
+ ;;
+ *)
+ short_libname="-l${TCL_VENDOR_PREFIX}${libname}${version}\${TCL_DBGX}"
+ ;;
+ esac
+
+ ITK_STUB_LIB_FLAG=$short_libname
+
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="`pwd`/${ITK_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITK_BUILD_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITK_BUILD_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITK_BUILD_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITK_BUILD_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=`pwd`
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITK_BUILD_LIB_SPEC="-L${dirname} ${ITK_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITK_BUILD_LIB_SPEC="-L`pwd` ${ITK_LIB_FLAG}"
+ ;;
+ esac
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="`pwd`/${ITK_STUB_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITK_BUILD_STUB_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITK_BUILD_STUB_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITK_BUILD_STUB_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITK_BUILD_STUB_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=`pwd`
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITK_BUILD_STUB_LIB_SPEC="-L${dirname} ${ITK_STUB_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITK_BUILD_STUB_LIB_SPEC="-L`pwd` ${ITK_STUB_LIB_FLAG}"
+ ;;
+ esac
+
+
+
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="${exec_prefix}/lib/${ITK_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITK_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITK_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITK_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITK_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=${exec_prefix}/lib
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITK_LIB_SPEC="-L${dirname} ${ITK_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITK_LIB_SPEC="-L${exec_prefix}/lib ${ITK_LIB_FLAG}"
+ ;;
+ esac
+
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "$GCC" != yes; then
+
+ val="${exec_prefix}/lib/${ITK_STUB_LIB_FLAG}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITK_STUB_LIB_SPEC" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITK_STUB_LIB_SPEC=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITK_STUB_LIB_SPEC="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITK_STUB_LIB_SPEC=$val
+ ;;
+ esac
+
+ else
+
+ val=${exec_prefix}/lib
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable dirname" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ dirname=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ dirname="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ dirname=$val
+ ;;
+ esac
+
+ ITK_STUB_LIB_SPEC="-L${dirname} ${ITK_STUB_LIB_FLAG}"
+ fi
+ ;;
+ *)
+ ITK_STUB_LIB_SPEC="-L${exec_prefix}/lib ${ITK_STUB_LIB_FLAG}"
+ ;;
+ esac
+
+
+
+
+
+
+ val="`pwd`/${ITK_LIB_FILE}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITK_LIB_FULL_PATH" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITK_LIB_FULL_PATH=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITK_LIB_FULL_PATH="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITK_LIB_FULL_PATH=$val
+ ;;
+ esac
+
+
+
+
+ val="`pwd`/${ITK_STUB_LIB_FILE}"
+
+ if test "$val" = "" ; then
+ { echo "configure: error: Empty value for variable ITK_STUB_LIB_FULL_PATH" 1>&2; exit 1; }
+ fi
+
+ case "${host}" in
+ *windows32* | *mingw32*)
+ if test "${CYGPATH}" = ""; then
+ { echo "configure: error: CYGPATH variable is not defined." 1>&2; exit 1; }
+ elif test "${CYGPATH}" = "echo"; then
+ # No cygpath when cross compiling
+ ITK_STUB_LIB_FULL_PATH=$val
+ else
+ # store literal argument text in a variable
+ val=$val
+ # Convert Cygwin to Windows path (/tmp/foo -> C:\Tmp\foo)
+ val="`${CYGPATH} $val`"
+ # Convert path like C:\Tmp\foo to C:/Tmp/foo
+ ITK_STUB_LIB_FULL_PATH="`echo $val | sed -e s#\\\\\\\\#/#g`"
+ fi
+ ;;
+ *)
+ # Default to a no-op under Unix or Cygwin gcc
+ ITK_STUB_LIB_FULL_PATH=$val
+ ;;
+ esac
+
+
+
+
+
+itkstub_LIB_FILE=${ITK_STUB_LIB_FILE}
+itk_LIB_FILE=${ITK_TARGET_FILE}
+
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Change the name from exampeA_LIB_FILE to match your package name.
+# Use the stub_LIB_FILE substitution if your package creates a stub
+# library.
+#--------------------------------------------------------------------
+
+
+
+
+
+#--------------------------------------------------------------------
+# Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl
+# file during the install process. Don't run the TCLSH_PROG through
+# ${CYGPATH} because it's being used directly by make.
+# Require that we use a tclsh shell version 8.2 or later since earlier
+# versions have bugs in the pkg_mkIndex routine.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# A Tcl shell is not available when bootstrapping!
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# A wish shell is needed to run the test suite.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# A Wish shell is not available when bootstrapping!
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+# Note: The itkConfig.sh file below is not included in the net release.
+# We subst these variables to retain compatibility with the previous
+# version of itkConfig.sh.
+
+ITCL_VERSION=${VERSION}
+
+
+ITCL_MAJOR_VERSION=${MAJOR_VERSION}
+
+
+ITCL_MINOR_VERSION=${MINOR_VERSION}
+
+
+ITCL_RELEASE_LEVEL=${PATCHLEVEL}
+
+
+ITK_SRC_DIR=${ITK_SRC_DIR_NATIVE}
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile \
+ itkConfig.sh \
+ pkgIndex.tcl" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@CC@%$CC%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@RANLIB@%$RANLIB%g
+s%@OBJEXT@%$OBJEXT%g
+s%@EXEEXT@%$EXEEXT%g
+s%@CYGPATH@%$CYGPATH%g
+s%@RELPATH@%$RELPATH%g
+s%@ITK_GENERIC_DIR_NATIVE@%$ITK_GENERIC_DIR_NATIVE%g
+s%@ITK_WIN_DIR_NATIVE@%$ITK_WIN_DIR_NATIVE%g
+s%@ITK_UNIX_DIR_NATIVE@%$ITK_UNIX_DIR_NATIVE%g
+s%@ITK_INCLUDES@%$ITK_INCLUDES%g
+s%@TCL_DBGX@%$TCL_DBGX%g
+s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g
+s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
+s%@TCL_LIB_FILE@%$TCL_LIB_FILE%g
+s%@TCL_LIBS@%$TCL_LIBS%g
+s%@TCL_DEFS@%$TCL_DEFS%g
+s%@TCL_SHLIB_LD_LIBS@%$TCL_SHLIB_LD_LIBS%g
+s%@TCL_EXTRA_CFLAGS@%$TCL_EXTRA_CFLAGS%g
+s%@TCL_LD_FLAGS@%$TCL_LD_FLAGS%g
+s%@TCL_STUB_LIB_FILE@%$TCL_STUB_LIB_FILE%g
+s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g
+s%@TCL_BUILD_LIB_SPEC@%$TCL_BUILD_LIB_SPEC%g
+s%@TCL_STUB_LIB_SPEC@%$TCL_STUB_LIB_SPEC%g
+s%@TCL_BUILD_STUB_LIB_SPEC@%$TCL_BUILD_STUB_LIB_SPEC%g
+s%@TK_BIN_DIR@%$TK_BIN_DIR%g
+s%@TK_SRC_DIR@%$TK_SRC_DIR%g
+s%@TK_LIB_FILE@%$TK_LIB_FILE%g
+s%@TK_XINCLUDES@%$TK_XINCLUDES%g
+s%@ITCL_INCLUDES@%$ITCL_INCLUDES%g
+s%@ITCL_BUILD_LIB_SPEC@%$ITCL_BUILD_LIB_SPEC%g
+s%@ITCL_SH@%$ITCL_SH%g
+s%@ITCL_LIB_FILE@%$ITCL_LIB_FILE%g
+s%@ITCL_LIB_FULL_PATH@%$ITCL_LIB_FULL_PATH%g
+s%@itclstub_LIB_FILE@%$itclstub_LIB_FILE%g
+s%@tkstub_LIB_SPEC@%$tkstub_LIB_SPEC%g
+s%@TCL_TOP_DIR_NATIVE@%$TCL_TOP_DIR_NATIVE%g
+s%@TCL_GENERIC_DIR_NATIVE@%$TCL_GENERIC_DIR_NATIVE%g
+s%@TCL_UNIX_DIR_NATIVE@%$TCL_UNIX_DIR_NATIVE%g
+s%@TCL_WIN_DIR_NATIVE@%$TCL_WIN_DIR_NATIVE%g
+s%@TCL_BMAP_DIR_NATIVE@%$TCL_BMAP_DIR_NATIVE%g
+s%@TCL_TOOL_DIR_NATIVE@%$TCL_TOOL_DIR_NATIVE%g
+s%@TCL_PLATFORM_DIR_NATIVE@%$TCL_PLATFORM_DIR_NATIVE%g
+s%@TCL_INCLUDES@%$TCL_INCLUDES%g
+s%@TK_UNIX_DIR_NATIVE@%$TK_UNIX_DIR_NATIVE%g
+s%@TK_WIN_DIR_NATIVE@%$TK_WIN_DIR_NATIVE%g
+s%@TK_GENERIC_DIR_NATIVE@%$TK_GENERIC_DIR_NATIVE%g
+s%@TK_XLIB_DIR_NATIVE@%$TK_XLIB_DIR_NATIVE%g
+s%@TK_PLATFORM_DIR_NATIVE@%$TK_PLATFORM_DIR_NATIVE%g
+s%@TK_INCLUDES@%$TK_INCLUDES%g
+s%@CLEANFILES@%$CLEANFILES%g
+s%@PLATFORM_SOURCES@%$PLATFORM_SOURCES%g
+s%@PLATFORM_OBJECTS@%$PLATFORM_OBJECTS%g
+s%@PLATFORM_DIR@%$PLATFORM_DIR%g
+s%@CFLAGS_DEBUG@%$CFLAGS_DEBUG%g
+s%@CFLAGS_OPTIMIZE@%$CFLAGS_OPTIMIZE%g
+s%@STLIB_LD@%$STLIB_LD%g
+s%@SHLIB_LD@%$SHLIB_LD%g
+s%@SHLIB_CFLAGS@%$SHLIB_CFLAGS%g
+s%@SHLIB_LDFLAGS@%$SHLIB_LDFLAGS%g
+s%@CFLAGS_DEFAULT@%$CFLAGS_DEFAULT%g
+s%@LDFLAGS_DEFAULT@%$LDFLAGS_DEFAULT%g
+s%@MAKE_LIB@%$MAKE_LIB%g
+s%@MAKE_SHARED_LIB@%$MAKE_SHARED_LIB%g
+s%@MAKE_STATIC_LIB@%$MAKE_STATIC_LIB%g
+s%@POST_MAKE_LIB@%$POST_MAKE_LIB%g
+s%@POST_MAKE_STATIC_LIB@%$POST_MAKE_STATIC_LIB%g
+s%@ITK_LIB_FILE@%$ITK_LIB_FILE%g
+s%@ITK_STUB_LIB_FILE@%$ITK_STUB_LIB_FILE%g
+s%@ITK_BUILD_LIB_SPEC@%$ITK_BUILD_LIB_SPEC%g
+s%@ITK_BUILD_STUB_LIB_SPEC@%$ITK_BUILD_STUB_LIB_SPEC%g
+s%@ITK_LIB_SPEC@%$ITK_LIB_SPEC%g
+s%@ITK_STUB_LIB_SPEC@%$ITK_STUB_LIB_SPEC%g
+s%@ITK_LIB_FULL_PATH@%$ITK_LIB_FULL_PATH%g
+s%@ITK_STUB_LIB_FULL_PATH@%$ITK_STUB_LIB_FULL_PATH%g
+s%@itkstub_LIB_FILE@%$itkstub_LIB_FILE%g
+s%@itk_LIB_FILE@%$itk_LIB_FILE%g
+s%@SHLIB_LD_LIBS@%$SHLIB_LD_LIBS%g
+s%@ITCL_VERSION@%$ITCL_VERSION%g
+s%@ITCL_MAJOR_VERSION@%$ITCL_MAJOR_VERSION%g
+s%@ITCL_MINOR_VERSION@%$ITCL_MINOR_VERSION%g
+s%@ITCL_RELEASE_LEVEL@%$ITCL_RELEASE_LEVEL%g
+s%@ITK_SRC_DIR@%$ITK_SRC_DIR%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile \
+ itkConfig.sh \
+ pkgIndex.tcl"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
+# END CYGNUS LOCAL
diff --git a/itcl/itk/configure.in b/itcl/itk/configure.in
new file mode 100644
index 00000000000..b39ace6d032
--- /dev/null
+++ b/itcl/itk/configure.in
@@ -0,0 +1,438 @@
+#--------------------------------------------------------------------
+# Sample configure.in for Tcl Extensions. The only places you should
+# need to modify this file are marked by the string __CHANGE__
+#--------------------------------------------------------------------
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# This very first macro is used to verify that the configure script can
+# find the sources. The argument to AC_INIT should be a unique filename
+# for this package, and can be a relative path, such as:
+#
+# AC_INIT(../generic/tcl.h)
+#--------------------------------------------------------------------
+
+AC_INIT(generic/itk.h)
+# CYGNUS LOCAL
+AC_CONFIG_AUX_DIR(../..)
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Set your package name and version numbers here. The NODOT_VERSION is
+# required for constructing the library name on systems that don't like
+# dots in library names (Windows). The VERSION variable is used on the
+# other systems.
+#--------------------------------------------------------------------
+
+PACKAGE=itk
+
+MAJOR_VERSION=3
+MINOR_VERSION=2
+PATCHLEVEL=.0
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}
+NODOT_VERSION=${MAJOR_VERSION}${MINOR_VERSION}
+
+
+AC_SUBST(PACKAGE)
+AC_SUBST(VERSION)
+
+#--------------------------------------------------------------------
+# We put this here so that you can compile with -DVERSION="1.2" to
+# encode the package version directly into the source files.
+#--------------------------------------------------------------------
+
+eval AC_DEFINE_UNQUOTED(VERSION, "${VERSION}")
+
+#------------------------------------------------------------------------
+# Handle the --prefix=... option
+#------------------------------------------------------------------------
+
+if test "${prefix}" = "NONE"; then
+ prefix=/usr/local
+fi
+if test "${exec_prefix}" = "NONE"; then
+ exec_prefix=$prefix
+fi
+
+#--------------------------------------------------------------------
+# Check whether --enable-gcc or --disable-gcc was given. Do this
+# before AC_CYGWIN is called so the compiler can
+# be fully tested by built-in autoconf tools.
+# This macro also calls AC_PROG_CC to set the compiler if --enable-gcc
+# was not used.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+dnl SC_ENABLE_GCC
+AC_PROG_CC
+# END CYGNUS LOCAL
+AC_PROG_INSTALL
+
+#--------------------------------------------------------------------
+# Checks to see if the make program sets the $MAKE variable.
+#--------------------------------------------------------------------
+
+AC_PROG_MAKE_SET
+
+#--------------------------------------------------------------------
+# Find ranlib
+#--------------------------------------------------------------------
+
+AC_PROG_RANLIB
+
+#--------------------------------------------------------------------
+# This macro performs additional compiler tests.
+#--------------------------------------------------------------------
+
+AC_CYGWIN
+
+#--------------------------------------------------------------------
+# Determines the correct binary file extension (.o, .obj, .exe etc.)
+#--------------------------------------------------------------------
+
+AC_OBJEXT
+AC_EXEEXT
+
+#--------------------------------------------------------------------
+# "cygpath" is used on windows to generate native path names for include
+# files.
+# These variables should only be used with the compiler and linker since
+# they generate native path names.
+#
+# Unix tclConfig.sh points SRC_DIR at the top-level directory of
+# the Tcl sources, while the Windows tclConfig.sh points SRC_DIR at
+# the win subdirectory. Hence the different usages of SRC_DIR below.
+#
+# This must be done before calling SC_PUBLIC_TCL_HEADERS
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *mingw32* | *windows32*)
+ AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo)
+ RELPATH=".. .. bin"
+ ;;
+ *)
+ CYGPATH=echo
+ RELPATH=..
+ ;;
+esac
+
+AC_SUBST(CYGPATH)
+AC_SUBST(RELPATH)
+
+#--------------------------------------------------------------------
+# Includes for this package
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+srcdir=`cd ${srcdir} ; pwd`
+ITK_SRC_DIR_NATIVE=`${CYGPATH} ${srcdir}`
+# END CYGNUS LOCAL
+ITK_GENERIC_DIR_NATIVE=`${CYGPATH} ${srcdir}/generic`
+ITK_WIN_DIR_NATIVE=`${CYGPATH} ${srcdir}/win`
+ITK_UNIX_DIR_NATIVE=`${CYGPATH} ${srcdir}/unix`
+
+case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ ITK_PLATFORM_DIR_NATIVE=${ITK_WIN_DIR_NATIVE}
+ ;;
+ *)
+ ITK_PLATFORM_DIR_NATIVE=${ITK_UNIX_DIR_NATIVE}
+ ;;
+esac
+
+ITK_INCLUDES="-I\"${ITK_GENERIC_DIR_NATIVE}\" -I\"${ITK_PLATFORM_DIR_NATIVE}\""
+
+AC_SUBST(ITK_GENERIC_DIR_NATIVE)
+AC_SUBST(ITK_WIN_DIR_NATIVE)
+AC_SUBST(ITK_UNIX_DIR_NATIVE)
+AC_SUBST(ITK_INCLUDES)
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+
+SC_PATH_TCLCONFIG
+SC_LOAD_TCLCONFIG
+
+#--------------------------------------------------------------------
+# Load the tkConfig.sh file
+#--------------------------------------------------------------------
+
+SC_PATH_TKCONFIG
+SC_LOAD_TKCONFIG
+
+AC_ARG_WITH(itcl, [ --with-itclinclude=DIR use Itcl headers from DIR],
+ ITCL_LIB_DIR=$withval, ITCL_LIB_DIR=`cd ${srcdir}/../itcl; pwd`)
+
+if test ! -r "${ITCL_LIB_DIR}/generic/itclInt.h" ; then
+ AC_MSG_ERROR(Can't find Itcl private header files. Use --with-itclinclude to specify the directory containing the Itcl private headers on your system.)
+fi
+
+ITCL_INCLUDES=-I\"`${CYGPATH} ${ITCL_LIB_DIR}/generic`\"
+AC_SUBST(ITCL_INCLUDES)
+
+# CYGNUS LOCAL
+CYG_AC_PATH_ITCLCONFIG
+CYG_AC_LOAD_ITCLCONFIG
+
+itclstub_LIB_FILE=${ITCL_STUB_LIB_FILE}
+AC_SUBST(itclstub_LIB_FILE)
+
+tkstub_LIB_SPEC=${TK_STUB_LIB_SPEC}
+AC_SUBST(tkstub_LIB_SPEC)
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Choose which headers you need. Extension authors should try very
+# hard to only rely on the Tcl public header files. Internal headers
+# contain private data structures and are subject to change without
+# notice.
+# This must be done AFTER calling SC_PATH_TCLCONFIG/SC_LOAD_TCLCONFIG
+# so that we can extract TCL_SRC_DIR from the config file (in the case
+# of private headers
+#--------------------------------------------------------------------
+
+#SC_PUBLIC_TCL_HEADERS
+SC_PRIVATE_TCL_HEADERS
+
+#SC_PUBLIC_TK_HEADERS
+SC_PRIVATE_TK_HEADERS
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# A few miscellaneous platform-specific items:
+#
+# Define a special symbol for Windows (BUILD_itk in this case) so
+# that we create the export library with the dll. See sha1.h on how
+# to use this.
+#
+# Windows creates a few extra files that need to be cleaned up.
+# You can add more files to clean if your extension creates any extra
+# files.
+#
+# Define any extra compiler flags in the PACKAGE_CFLAGS variable.
+# These will be appended to the current set of compiler flags for
+# your system.
+#--------------------------------------------------------------------
+
+case "${host}" in
+ *cygwin* | *mingw32* | *windows32*)
+ AC_DEFINE_UNQUOTED(BUILD_${PACKAGE})
+ CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc50.pch"
+ PLATFORM_SOURCES='$(WIN_SOURCES)'
+ PLATFORM_OBJECTS='$(WIN_OBJECTS)'
+ PLATFORM_DIR='$(WIN_DIR)'
+ ;;
+ *)
+ CLEANFILES=
+ PLATFORM_SOURCES='$(UNIX_SOURCES)'
+ PLATFORM_OBJECTS='$(UNIX_OBJECTS)'
+ PLATFORM_DIR='$(UNIX_DIR)'
+ ;;
+esac
+
+AC_SUBST(CLEANFILES)
+AC_SUBST(PLATFORM_SOURCES)
+AC_SUBST(PLATFORM_OBJECTS)
+AC_SUBST(PLATFORM_DIR)
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# So far only Tcl responds to this one.
+#--------------------------------------------------------------------
+
+SC_ENABLE_THREADS
+
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+SC_ENABLE_SHARED
+
+#--------------------------------------------------------------------
+# This macro figures out what flags to use with the compiler/linker
+# when building shared/static debug/optimized objects. This information
+# is all taken from the tclConfig.sh file.
+#--------------------------------------------------------------------
+
+CFLAGS_DEBUG=${TCL_CFLAGS_DEBUG}
+CFLAGS_OPTIMIZE=${TCL_CFLAGS_OPTIMIZE}
+LDFLAGS_DEBUG=${TCL_LDFLAGS_DEBUG}
+LDFLAGS_OPTIMIZE=${TCL_LDFLAGS_OPTIMIZE}
+SHLIB_LD=${TCL_SHLIB_LD}
+STLIB_LD=${TCL_STLIB_LD}
+SHLIB_CFLAGS=${TCL_SHLIB_CFLAGS}
+
+AC_SUBST(CFLAGS_DEBUG)
+AC_SUBST(CFLAGS_OPTIMIZE)
+AC_SUBST(STLIB_LD)
+AC_SUBST(SHLIB_LD)
+AC_SUBST(SHLIB_CFLAGS)
+AC_SUBST(SHLIB_LDFLAGS)
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols
+# option.
+#--------------------------------------------------------------------
+
+SC_ENABLE_SYMBOLS
+
+if test "${SHARED_BUILD}" = "1" ; then
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING} ${SHLIB_CFLAGS}'
+else
+ CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING}'
+fi
+
+#--------------------------------------------------------------------
+# Everyone should be linking against the Tcl stub library. If you
+# can't for some reason, remove this definition. If you aren't using
+# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
+# link against the non-stubbed Tcl library.
+#--------------------------------------------------------------------
+
+if test "${SHARED_BUILD}" = "1" ; then
+ AC_DEFINE(USE_TCL_STUBS)
+ AC_DEFINE(USE_TK_STUBS)
+ AC_DEFINE(USE_ITCL_STUBS)
+fi
+
+#--------------------------------------------------------------------
+# This macro generates a line to use when building a library. It
+# depends on values set by the SC_ENABLE_SHARED, SC_ENABLE_SYMBOLS,
+# and SC_LOAD_TCLCONFIG macros above.
+#--------------------------------------------------------------------
+
+SC_MAKE_LIB
+
+#--------------------------------------------------------------------
+# eval these two values to dereference the ${DBGX} variable.
+#--------------------------------------------------------------------
+
+eval "SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}"
+eval "UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}"
+
+#--------------------------------------------------------------------
+# Shared libraries and static libraries have different names.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+if test "${SHARED_BUILD}" = "1" ; then
+ # FIXME: Need to devise a TCL_TOOL macro to deal with this!
+ case "${host}" in
+ *mingw32* | *windows32*)
+ SHLIB_LD_LIBS="${TCL_BUILD_STUB_LIB_SPEC} ${TCL_SHLIB_LD_LIBS} \
+ ${ITCL_BUILD_STUB_LIB_SPEC} ${TK_BUILD_STUB_LIB_SPEC}"
+ # Need to link to the .a or .lib not the .dll!
+ TCL_TOOL_SHARED_LIB_LONGNAME(ITK_SHLIB_FILE, ${PACKAGE}, ${SHARED_LIB_SUFFIX})
+ TCL_TOOL_STATIC_LIB_LONGNAME(ITK_LIB_FILE, ${PACKAGE}, ${UNSHARED_LIB_SUFFIX})
+ ITK_TARGET_FILE=${ITK_SHLIB_FILE}
+ ;;
+ *)
+ SHLIB_LD_LIBS="${TK_BUILD_STUB_LIB_SPEC} ${TCL_BUILD_STUB_LIB_SPEC} \
+ ${ITCL_BUILD_STUB_LIB_SPEC}"
+ TCL_TOOL_SHARED_LIB_LONGNAME(ITK_LIB_FILE, ${PACKAGE}, ${SHARED_LIB_SUFFIX})
+ ITK_TARGET_FILE=${ITK_LIB_FILE}
+ ;;
+ esac
+else
+ TCL_TOOL_STATIC_LIB_LONGNAME(ITK_LIB_FILE, ${PACKAGE}, ${UNSHARED_LIB_SUFFIX})
+ ITK_TARGET_FILE=${ITK_LIB_FILE}
+fi
+
+TCL_TOOL_STATIC_LIB_LONGNAME(ITK_STUB_LIB_FILE, ${PACKAGE}stub, ${UNSHARED_LIB_SUFFIX})
+
+AC_SUBST(ITK_LIB_FILE)
+AC_SUBST(ITK_STUB_LIB_FILE)
+
+TCL_TOOL_LIB_SHORTNAME(ITK_LIB_FLAG, ${PACKAGE}, ${VERSION})
+TCL_TOOL_LIB_SHORTNAME(ITK_STUB_LIB_FLAG, ${PACKAGE}stub, ${VERSION})
+
+TCL_TOOL_LIB_SPEC(ITK_BUILD_LIB_SPEC, `pwd`, ${ITK_LIB_FLAG})
+TCL_TOOL_LIB_SPEC(ITK_BUILD_STUB_LIB_SPEC, `pwd`, ${ITK_STUB_LIB_FLAG})
+AC_SUBST(ITK_BUILD_LIB_SPEC)
+AC_SUBST(ITK_BUILD_STUB_LIB_SPEC)
+
+TCL_TOOL_LIB_SPEC(ITK_LIB_SPEC, ${exec_prefix}/lib, ${ITK_LIB_FLAG})
+TCL_TOOL_LIB_SPEC(ITK_STUB_LIB_SPEC, ${exec_prefix}/lib, ${ITK_STUB_LIB_FLAG})
+AC_SUBST(ITK_LIB_SPEC)
+AC_SUBST(ITK_STUB_LIB_SPEC)
+
+TCL_TOOL_LIB_PATH(ITK_LIB_FULL_PATH, `pwd`, ${ITK_LIB_FILE})
+TCL_TOOL_LIB_PATH(ITK_STUB_LIB_FULL_PATH, `pwd`, ${ITK_STUB_LIB_FILE})
+AC_SUBST(ITK_LIB_FULL_PATH)
+AC_SUBST(ITK_STUB_LIB_FULL_PATH)
+
+itkstub_LIB_FILE=${ITK_STUB_LIB_FILE}
+itk_LIB_FILE=${ITK_TARGET_FILE}
+
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# __CHANGE__
+# Change the name from exampeA_LIB_FILE to match your package name.
+# Use the stub_LIB_FILE substitution if your package creates a stub
+# library.
+#--------------------------------------------------------------------
+
+AC_SUBST(itkstub_LIB_FILE)
+AC_SUBST(itk_LIB_FILE)
+AC_SUBST(SHLIB_LD_LIBS)
+
+#--------------------------------------------------------------------
+# Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl
+# file during the install process. Don't run the TCLSH_PROG through
+# ${CYGPATH} because it's being used directly by make.
+# Require that we use a tclsh shell version 8.2 or later since earlier
+# versions have bugs in the pkg_mkIndex routine.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# A Tcl shell is not available when bootstrapping!
+dnl SC_PROG_TCLSH
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# A wish shell is needed to run the test suite.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# A Wish shell is not available when bootstrapping!
+dnl SC_PROG_WISH
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+
+# Note: The itkConfig.sh file below is not included in the net release.
+# We subst these variables to retain compatibility with the previous
+# version of itkConfig.sh.
+
+ITCL_VERSION=${VERSION}
+AC_SUBST(ITCL_VERSION)
+
+ITCL_MAJOR_VERSION=${MAJOR_VERSION}
+AC_SUBST(ITCL_MAJOR_VERSION)
+
+ITCL_MINOR_VERSION=${MINOR_VERSION}
+AC_SUBST(ITCL_MINOR_VERSION)
+
+ITCL_RELEASE_LEVEL=${PATCHLEVEL}
+AC_SUBST(ITCL_RELEASE_LEVEL)
+
+ITK_SRC_DIR=${ITK_SRC_DIR_NATIVE}
+AC_SUBST(ITK_SRC_DIR)
+
+AC_OUTPUT([Makefile \
+ itkConfig.sh \
+ pkgIndex.tcl])
+
+# END CYGNUS LOCAL
diff --git a/itcl/itk/generic/itk.decls b/itcl/itk/generic/itk.decls
new file mode 100644
index 00000000000..c0f2f814fba
--- /dev/null
+++ b/itcl/itk/generic/itk.decls
@@ -0,0 +1,111 @@
+# itk.decls --
+#
+# This file contains the declarations for all supported public
+# functions that are exported by the Itk library via the stubs table.
+# This file is used to generate the itkDecls.h file.
+#
+#
+# Copyright (c) 1998-1999 by XXXX
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: $Id$
+
+library itk
+interface itk
+
+# Declare each of the functions in the public Itk interface. Note that
+# the an index should never be reused for a different function in order
+# to preserve backwards compatibility.
+
+
+#
+# Exported functions:
+#
+
+declare 0 generic {
+ int Itk_Init (Tcl_Interp *interp)
+}
+#declare 1 generic {
+# int Itk_SafeInit (Tcl_Interp *interp)
+#}
+
+
+#
+# Functions used internally by this package:
+#
+
+declare 2 generic {
+ int Itk_ConfigBodyCmd (ClientData cdata, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 3 generic {
+ int Itk_UsualCmd (ClientData cdata, Tcl_Interp *interp, int objc, \
+ Tcl_Obj *CONST objv[])
+}
+
+
+#
+# Functions for managing options included in class definitions:
+#
+
+declare 4 generic {
+ int Itk_ClassOptionDefineCmd (ClientData cdata, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 5 generic {
+ int Itk_ClassOptionIllegalCmd (ClientData cdata, Tcl_Interp *interp, \
+ int objc, Tcl_Obj *CONST objv[])
+}
+declare 6 generic {
+ int Itk_ConfigClassOption (Tcl_Interp *interp, ItclObject *contextObj, \
+ ClientData cdata, char* newVal)
+}
+declare 7 generic {
+ ItkClassOptTable* Itk_CreateClassOptTable( Tcl_Interp *interp, \
+ ItclClass *cdefn)
+}
+declare 8 generic {
+ ItkClassOptTable* Itk_FindClassOptTable (ItclClass *cdefn)
+}
+#declare 9 generic {
+# void Itk_DeleteClassOptTable (Tcl_Interp *interp, ItclClass *cdefn)
+#}
+declare 10 generic {
+ int Itk_CreateClassOption (Tcl_Interp *interp, ItclClass *cdefn, \
+ char *switchName, char *resName, char *resClass, char *defVal, \
+ char *config, ItkClassOption **optPtr)
+}
+declare 11 generic {
+ ItkClassOption* Itk_FindClassOption (ItclClass *cdefn, char *switchName)
+}
+declare 12 generic {
+ void Itk_DelClassOption (ItkClassOption *opt)
+}
+
+
+#
+# Functions needed for the Archetype base class:
+#
+
+declare 13 generic {
+ int Itk_ArchetypeInit (Tcl_Interp* interp)
+}
+
+
+#
+# Functions for maintaining the ordered option list:
+#
+
+declare 14 generic {
+ void Itk_OptListInit (ItkOptList* olist, Tcl_HashTable *options)
+}
+declare 15 generic {
+ void Itk_OptListFree (ItkOptList* olist)
+}
+declare 16 generic {
+ void Itk_OptListAdd (ItkOptList* olist, Tcl_HashEntry *entry)
+}
+declare 17 generic {
+ void Itk_OptListRemove (ItkOptList* olist, Tcl_HashEntry *entry)
+}
diff --git a/itcl/itk/generic/itk.h b/itcl/itk/generic/itk.h
index c754ba449eb..6bfa73c92f1 100644
--- a/itcl/itk/generic/itk.h
+++ b/itcl/itk/generic/itk.h
@@ -93,62 +93,21 @@ typedef struct ItkClassOption {
char *init; /* initial value for option */
} ItkClassOption;
+#include "itkDecls.h"
/*
- * Exported functions:
+ * This function is contained in the itkstub static library
*/
-EXTERN int Itk_Init _ANSI_ARGS_((Tcl_Interp *interp));
-EXTERN int Itk_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
-/*
- * Functions used internally by this package:
- */
-EXTERN int Itk_ConfigBodyCmd _ANSI_ARGS_((ClientData cdata,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itk_UsualCmd _ANSI_ARGS_((ClientData cdata,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-
-/*
- * Functions for managing options included in class definitions:
- */
-EXTERN int Itk_ClassOptionDefineCmd _ANSI_ARGS_((ClientData cdata,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-EXTERN int Itk_ClassOptionIllegalCmd _ANSI_ARGS_((ClientData cdata,
- Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
-
-EXTERN int Itk_ConfigClassOption _ANSI_ARGS_((Tcl_Interp *interp,
- ItclObject *contextObj, ClientData cdata, char* newVal));
+#ifdef USE_ITK_STUBS
-EXTERN ItkClassOptTable* Itk_CreateClassOptTable _ANSI_ARGS_((
- Tcl_Interp *interp, ItclClass *cdefn));
-EXTERN ItkClassOptTable* Itk_FindClassOptTable _ANSI_ARGS_((
- ItclClass *cdefn));
-EXTERN void Itk_DeleteClassOptTable _ANSI_ARGS_((Tcl_Interp *interp,
- ItclClass *cdefn));
-
-EXTERN int Itk_CreateClassOption _ANSI_ARGS_((Tcl_Interp *interp,
- ItclClass *cdefn, char *switchName, char *resName, char *resClass,
- char *defVal, char *config, ItkClassOption **optPtr));
-EXTERN ItkClassOption* Itk_FindClassOption _ANSI_ARGS_((
- ItclClass *cdefn, char *switchName));
-EXTERN void Itk_DelClassOption _ANSI_ARGS_((ItkClassOption *opt));
-
-/*
- * Functions needed for the Archetype base class:
- */
-EXTERN int Itk_ArchetypeInit _ANSI_ARGS_((Tcl_Interp* interp));
+char * Itk_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,
+ char *version, int exact));
+#endif
/*
- * Functions for maintaining the ordered option list:
+ * Public functions that are not accessible via the stubs table.
*/
-EXTERN void Itk_OptListInit _ANSI_ARGS_((ItkOptList* olist,
- Tcl_HashTable *options));
-EXTERN void Itk_OptListFree _ANSI_ARGS_((ItkOptList* olist));
-
-EXTERN void Itk_OptListAdd _ANSI_ARGS_((ItkOptList* olist,
- Tcl_HashEntry *entry));
-EXTERN void Itk_OptListRemove _ANSI_ARGS_((ItkOptList* olist,
- Tcl_HashEntry *entry));
# undef TCL_STORAGE_CLASS
# define TCL_STORAGE_CLASS DLLIMPORT
diff --git a/itcl/itk/generic/itkDecls.h b/itcl/itk/generic/itkDecls.h
new file mode 100644
index 00000000000..65c8522331c
--- /dev/null
+++ b/itcl/itk/generic/itkDecls.h
@@ -0,0 +1,202 @@
+/*
+ * itkDecls.h --
+ *
+ * Declarations of functions in the platform independent public Tcl API.
+ *
+ * Copyright (c) 1998-1999 by XXXX
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: $Id$
+ */
+
+#ifndef _ITKDECLS
+#define _ITKDECLS
+
+#ifdef BUILD_itk
+#undef TCL_STORAGE_CLASS
+#define TCL_STORAGE_CLASS DLLEXPORT
+#endif
+
+/*
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
+ * script. Any modifications to the function declarations below should be made
+ * in the generic/tk.decls script.
+ */
+
+/* !BEGIN!: Do not edit below this line. */
+
+/*
+ * Exported function declarations:
+ */
+
+/* 0 */
+EXTERN int Itk_Init _ANSI_ARGS_((Tcl_Interp * interp));
+/* Slot 1 is reserved */
+/* 2 */
+EXTERN int Itk_ConfigBodyCmd _ANSI_ARGS_((ClientData cdata,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 3 */
+EXTERN int Itk_UsualCmd _ANSI_ARGS_((ClientData cdata,
+ Tcl_Interp * interp, int objc,
+ Tcl_Obj *CONST objv[]));
+/* 4 */
+EXTERN int Itk_ClassOptionDefineCmd _ANSI_ARGS_((
+ ClientData cdata, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 5 */
+EXTERN int Itk_ClassOptionIllegalCmd _ANSI_ARGS_((
+ ClientData cdata, Tcl_Interp * interp,
+ int objc, Tcl_Obj *CONST objv[]));
+/* 6 */
+EXTERN int Itk_ConfigClassOption _ANSI_ARGS_((
+ Tcl_Interp * interp, ItclObject * contextObj,
+ ClientData cdata, char* newVal));
+/* 7 */
+EXTERN ItkClassOptTable* Itk_CreateClassOptTable _ANSI_ARGS_((
+ Tcl_Interp * interp, ItclClass * cdefn));
+/* 8 */
+EXTERN ItkClassOptTable* Itk_FindClassOptTable _ANSI_ARGS_((
+ ItclClass * cdefn));
+/* Slot 9 is reserved */
+/* 10 */
+EXTERN int Itk_CreateClassOption _ANSI_ARGS_((
+ Tcl_Interp * interp, ItclClass * cdefn,
+ char * switchName, char * resName,
+ char * resClass, char * defVal,
+ char * config, ItkClassOption ** optPtr));
+/* 11 */
+EXTERN ItkClassOption* Itk_FindClassOption _ANSI_ARGS_((ItclClass * cdefn,
+ char * switchName));
+/* 12 */
+EXTERN void Itk_DelClassOption _ANSI_ARGS_((ItkClassOption * opt));
+/* 13 */
+EXTERN int Itk_ArchetypeInit _ANSI_ARGS_((Tcl_Interp* interp));
+/* 14 */
+EXTERN void Itk_OptListInit _ANSI_ARGS_((ItkOptList* olist,
+ Tcl_HashTable * options));
+/* 15 */
+EXTERN void Itk_OptListFree _ANSI_ARGS_((ItkOptList* olist));
+/* 16 */
+EXTERN void Itk_OptListAdd _ANSI_ARGS_((ItkOptList* olist,
+ Tcl_HashEntry * entry));
+/* 17 */
+EXTERN void Itk_OptListRemove _ANSI_ARGS_((ItkOptList* olist,
+ Tcl_HashEntry * entry));
+
+typedef struct ItkStubs {
+ int magic;
+ struct ItkStubHooks *hooks;
+
+ int (*itk_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 0 */
+ void *reserved1;
+ int (*itk_ConfigBodyCmd) _ANSI_ARGS_((ClientData cdata, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 2 */
+ int (*itk_UsualCmd) _ANSI_ARGS_((ClientData cdata, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 3 */
+ int (*itk_ClassOptionDefineCmd) _ANSI_ARGS_((ClientData cdata, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 4 */
+ int (*itk_ClassOptionIllegalCmd) _ANSI_ARGS_((ClientData cdata, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 5 */
+ int (*itk_ConfigClassOption) _ANSI_ARGS_((Tcl_Interp * interp, ItclObject * contextObj, ClientData cdata, char* newVal)); /* 6 */
+ ItkClassOptTable* (*itk_CreateClassOptTable) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass * cdefn)); /* 7 */
+ ItkClassOptTable* (*itk_FindClassOptTable) _ANSI_ARGS_((ItclClass * cdefn)); /* 8 */
+ void *reserved9;
+ int (*itk_CreateClassOption) _ANSI_ARGS_((Tcl_Interp * interp, ItclClass * cdefn, char * switchName, char * resName, char * resClass, char * defVal, char * config, ItkClassOption ** optPtr)); /* 10 */
+ ItkClassOption* (*itk_FindClassOption) _ANSI_ARGS_((ItclClass * cdefn, char * switchName)); /* 11 */
+ void (*itk_DelClassOption) _ANSI_ARGS_((ItkClassOption * opt)); /* 12 */
+ int (*itk_ArchetypeInit) _ANSI_ARGS_((Tcl_Interp* interp)); /* 13 */
+ void (*itk_OptListInit) _ANSI_ARGS_((ItkOptList* olist, Tcl_HashTable * options)); /* 14 */
+ void (*itk_OptListFree) _ANSI_ARGS_((ItkOptList* olist)); /* 15 */
+ void (*itk_OptListAdd) _ANSI_ARGS_((ItkOptList* olist, Tcl_HashEntry * entry)); /* 16 */
+ void (*itk_OptListRemove) _ANSI_ARGS_((ItkOptList* olist, Tcl_HashEntry * entry)); /* 17 */
+} ItkStubs;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern ItkStubs *itkStubsPtr;
+#ifdef __cplusplus
+}
+#endif
+
+#if defined(USE_ITK_STUBS) && !defined(USE_ITK_STUB_PROCS)
+
+/*
+ * Inline function declarations:
+ */
+
+#ifndef Itk_Init
+#define Itk_Init \
+ (itkStubsPtr->itk_Init) /* 0 */
+#endif
+/* Slot 1 is reserved */
+#ifndef Itk_ConfigBodyCmd
+#define Itk_ConfigBodyCmd \
+ (itkStubsPtr->itk_ConfigBodyCmd) /* 2 */
+#endif
+#ifndef Itk_UsualCmd
+#define Itk_UsualCmd \
+ (itkStubsPtr->itk_UsualCmd) /* 3 */
+#endif
+#ifndef Itk_ClassOptionDefineCmd
+#define Itk_ClassOptionDefineCmd \
+ (itkStubsPtr->itk_ClassOptionDefineCmd) /* 4 */
+#endif
+#ifndef Itk_ClassOptionIllegalCmd
+#define Itk_ClassOptionIllegalCmd \
+ (itkStubsPtr->itk_ClassOptionIllegalCmd) /* 5 */
+#endif
+#ifndef Itk_ConfigClassOption
+#define Itk_ConfigClassOption \
+ (itkStubsPtr->itk_ConfigClassOption) /* 6 */
+#endif
+#ifndef Itk_CreateClassOptTable
+#define Itk_CreateClassOptTable \
+ (itkStubsPtr->itk_CreateClassOptTable) /* 7 */
+#endif
+#ifndef Itk_FindClassOptTable
+#define Itk_FindClassOptTable \
+ (itkStubsPtr->itk_FindClassOptTable) /* 8 */
+#endif
+/* Slot 9 is reserved */
+#ifndef Itk_CreateClassOption
+#define Itk_CreateClassOption \
+ (itkStubsPtr->itk_CreateClassOption) /* 10 */
+#endif
+#ifndef Itk_FindClassOption
+#define Itk_FindClassOption \
+ (itkStubsPtr->itk_FindClassOption) /* 11 */
+#endif
+#ifndef Itk_DelClassOption
+#define Itk_DelClassOption \
+ (itkStubsPtr->itk_DelClassOption) /* 12 */
+#endif
+#ifndef Itk_ArchetypeInit
+#define Itk_ArchetypeInit \
+ (itkStubsPtr->itk_ArchetypeInit) /* 13 */
+#endif
+#ifndef Itk_OptListInit
+#define Itk_OptListInit \
+ (itkStubsPtr->itk_OptListInit) /* 14 */
+#endif
+#ifndef Itk_OptListFree
+#define Itk_OptListFree \
+ (itkStubsPtr->itk_OptListFree) /* 15 */
+#endif
+#ifndef Itk_OptListAdd
+#define Itk_OptListAdd \
+ (itkStubsPtr->itk_OptListAdd) /* 16 */
+#endif
+#ifndef Itk_OptListRemove
+#define Itk_OptListRemove \
+ (itkStubsPtr->itk_OptListRemove) /* 17 */
+#endif
+
+#endif /* defined(USE_ITK_STUBS) && !defined(USE_ITK_STUB_PROCS) */
+
+/* !END!: Do not edit above this line. */
+
+#undef TCL_STORAGE_CLASS
+#define TCL_STORAGE_CLASS DLLIMPORT
+
+#endif /* _ITKDECLS */
+
diff --git a/itcl/itk/generic/itkStubInit.c b/itcl/itk/generic/itkStubInit.c
new file mode 100644
index 00000000000..a4a0a55009b
--- /dev/null
+++ b/itcl/itk/generic/itkStubInit.c
@@ -0,0 +1,51 @@
+/*
+ * tkStubInit.c --
+ *
+ * This file contains the initializers for the Itk stub vectors.
+ *
+ * Copyright (c) 1998-1999 by XXXX
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: $Id$
+ */
+
+#include "itk.h"
+
+/*
+ * Remove macros that will interfere with the definitions below.
+ */
+
+/*
+ * WARNING: The contents of this file is automatically generated by the
+ * tools/genStubs.tcl script. Any modifications to the function declarations
+ * below should be made in the generic/itk.decls script.
+ */
+
+/* !BEGIN!: Do not edit below this line. */
+
+ItkStubs itkStubs = {
+ TCL_STUB_MAGIC,
+ NULL,
+ Itk_Init, /* 0 */
+ NULL, /* 1 */
+ Itk_ConfigBodyCmd, /* 2 */
+ Itk_UsualCmd, /* 3 */
+ Itk_ClassOptionDefineCmd, /* 4 */
+ Itk_ClassOptionIllegalCmd, /* 5 */
+ Itk_ConfigClassOption, /* 6 */
+ Itk_CreateClassOptTable, /* 7 */
+ Itk_FindClassOptTable, /* 8 */
+ NULL, /* 9 */
+ Itk_CreateClassOption, /* 10 */
+ Itk_FindClassOption, /* 11 */
+ Itk_DelClassOption, /* 12 */
+ Itk_ArchetypeInit, /* 13 */
+ Itk_OptListInit, /* 14 */
+ Itk_OptListFree, /* 15 */
+ Itk_OptListAdd, /* 16 */
+ Itk_OptListRemove, /* 17 */
+};
+
+/* !END!: Do not edit above this line. */
diff --git a/itcl/itk/generic/itkStubLib.c b/itcl/itk/generic/itkStubLib.c
new file mode 100644
index 00000000000..1732ef780b1
--- /dev/null
+++ b/itcl/itk/generic/itkStubLib.c
@@ -0,0 +1,73 @@
+/*
+ * itkStubLib.c --
+ *
+ * Stub object that will be statically linked into extensions that wish
+ * to access Itk.
+ *
+ * Copyright (c) 1998-1999 by XXXX
+ * Copyright (c) 1998 Paul Duffin.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: $Id$
+ */
+
+/*
+ * We need to ensure that we use the stub macros so that this file contains
+ * no references to any of the stub functions. This will make it possible
+ * to build an extension that references Tcl_InitStubs but doesn't end up
+ * including the rest of the stub functions.
+ */
+
+#ifndef USE_TCL_STUBS
+#define USE_TCL_STUBS
+#endif
+#undef USE_TCL_STUB_PROCS
+
+#ifndef USE_ITK_STUBS
+#define USE_ITK_STUBS
+#endif
+#undef USE_ITK_STUB_PROCS
+
+#include "itk.h"
+
+ItkStubs *itkStubsPtr;
+
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Itk_InitStubs --
+ *
+ * Tries to initialise the stub table pointers and ensures that
+ * the correct version of Itk is loaded.
+ *
+ * Results:
+ * The actual version of Itk that satisfies the request, or
+ * NULL to indicate that an error occurred.
+ *
+ * Side effects:
+ * Sets the stub table pointers.
+ *
+ *----------------------------------------------------------------------
+ */
+
+char *
+Itk_InitStubs (interp, version, exact)
+ Tcl_Interp *interp;
+ char *version;
+ int exact;
+{
+ char *actualVersion;
+
+ actualVersion = Tcl_PkgRequireEx(interp, "Itk", version, exact,
+ (ClientData *) &itkStubsPtr);
+
+ if (actualVersion == NULL) {
+ itkStubsPtr = NULL;
+ return NULL;
+ }
+
+ return actualVersion;
+}
diff --git a/itcl/itk/generic/itk_archetype.c b/itcl/itk/generic/itk_archetype.c
index 06a031f745b..f8075863145 100644
--- a/itcl/itk/generic/itk_archetype.c
+++ b/itcl/itk/generic/itk_archetype.c
@@ -791,10 +791,10 @@ Itk_ArchCompAddCmd(dummy, interp, objc, objv)
oldFramePtr = _Tcl_ActivateCallFrame(interp, uplevelFramePtr);
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- if (Tcl_EvalObj(interp, objv[2]) != TCL_OK) {
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
if (Tcl_EvalObj(interp, objv[2], 0) != TCL_OK) {
+#else
+ if (Tcl_EvalObj(interp, objv[2]) != TCL_OK) {
#endif
/* END CYGNUS LOCAL */
goto compFail;
@@ -986,10 +986,10 @@ Itk_ArchCompAddCmd(dummy, interp, objc, objv)
if (result == TCL_OK) {
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- result = Tcl_EvalObj(interp, objPtr);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
result = Tcl_EvalObj(interp, objPtr, 0);
+#else
+ result = Tcl_EvalObj(interp, objPtr);
#endif
/* END CYGNUS LOCAL */
Tcl_PopCallFrame(interp);
@@ -1112,6 +1112,8 @@ Itk_ArchCompDeleteCmd(dummy, interp, objc, objv)
ArchComponent *archComp;
ArchOption *archOpt;
ArchOptionPart *optPart;
+ Itcl_List delOptList;
+ Tcl_DString buffer;
/*
* Get the Archetype info associated with this widget.
@@ -1143,8 +1145,31 @@ Itk_ArchCompDeleteCmd(dummy, interp, objc, objv)
return TCL_ERROR;
}
archComp = (ArchComponent*)Tcl_GetHashValue(entry);
+
+ /*
+ * Clean up the binding tag that causes the widget to
+ * call this method automatically when destroyed.
+ * Ignore errors if anything goes wrong.
+ */
+ Tcl_DStringInit(&buffer);
+ Tcl_DStringAppend(&buffer, "itk::remove_destroy_hook ", -1);
+ Tcl_DStringAppend(&buffer, Tk_PathName(archComp->tkwin), -1);
+ (void) Tcl_Eval(interp, Tcl_DStringValue(&buffer));
+ Tcl_ResetResult(interp);
+ Tcl_DStringFree(&buffer);
+
+ Tcl_UnsetVar2(interp, "itk_component", token, 0);
Tcl_DeleteHashEntry(entry);
+ /*
+ * Clean up the options that belong to the component. Do this
+ * by scanning through all available options and looking for
+ * those that belong to the component. If we remove them as
+ * we go, we'll mess up Tcl_NextHashEntry. So instead, we
+ * build up a list of options to remove, and then remove the
+ * options below.
+ */
+ Itcl_InitList(&delOptList);
entry = Tcl_FirstHashEntry(&info->options, &place);
while (entry) {
archOpt = (ArchOption*)Tcl_GetHashValue(entry);
@@ -1152,16 +1177,28 @@ Itk_ArchCompDeleteCmd(dummy, interp, objc, objv)
while (elem) {
optPart = (ArchOptionPart*)Itcl_GetListValue(elem);
if (optPart->from == (ClientData)archComp) {
- Itk_DelOptionPart(optPart);
- elem = Itcl_DeleteListElem(elem);
- }
- else {
- elem = Itcl_NextListElem(elem);
+ Itcl_AppendList(&delOptList, (ClientData)entry);
}
+ elem = Itcl_NextListElem(elem);
}
entry = Tcl_NextHashEntry(&place);
}
+ /*
+ * Now that we've figured out which options to delete,
+ * go through the list and remove them.
+ */
+ elem = Itcl_FirstListElem(&delOptList);
+ while (elem) {
+ entry = (Tcl_HashEntry*)Itcl_GetListValue(elem);
+ token = Tcl_GetHashKey(&info->options, entry);
+
+ Itk_RemoveArchOptionPart(info, token, (ClientData)archComp);
+
+ elem = Itcl_NextListElem(elem);
+ }
+ Itcl_DeleteList(&delOptList);
+
Itk_DelArchComponent(archComp);
}
return TCL_OK;
@@ -1544,10 +1581,10 @@ Itk_ArchOptUsualCmd(clientData, interp, objc, objv)
if (entry) {
codePtr = (Tcl_Obj*)Tcl_GetHashValue(entry);
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- return Tcl_EvalObj(interp, codePtr);
-#else
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
return Tcl_EvalObj(interp, codePtr, 0);
+#else
+ return Tcl_EvalObj(interp, codePtr);
#endif
/* END CYGNUS LOCAL */
}
@@ -4043,10 +4080,10 @@ Itk_CreateGenericOpt(interp, switchName, accessCmd)
Tcl_AppendToObj(codePtr, name, -1);
/* CYGNUS LOCAL - Fix for Tcl8.1 */
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 0
- if (Tcl_EvalObj(interp, codePtr) != TCL_OK) {
+#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 1
+ if (Tcl_EvalObj(interp, codePtr, 0) != TCL_OK) {
#else
- if (Tcl_EvalObj(interp, codePtr, 0) != TCL_OK) {
+ if (Tcl_EvalObj(interp, codePtr) != TCL_OK) {
#endif
/* END CYGNUS LOCAL */
goto optionDone;
diff --git a/itcl/itk/generic/itk_cmds.c b/itcl/itk/generic/itk_cmds.c
index 0a789705d44..1e2fde7fcd7 100644
--- a/itcl/itk/generic/itk_cmds.c
+++ b/itcl/itk/generic/itk_cmds.c
@@ -45,11 +45,43 @@ namespace eval ::itk {\n\
variable library\n\
variable version\n\
rename _find_init {}\n\
- tcl_findLibrary itk 3.0 {} itk.tcl ITK_LIBRARY ::itk::library {} {} itcl\n\
- }\n\
+ if {[info exists library]} {\n\
+ lappend dirs $library\n\
+ } else {\n\
+ if {[catch {uplevel #0 source -rsrc itk}] == 0} {\n\
+ return\n\
+ }\n\
+ set dirs {}\n\
+ if {[info exists env(ITK_LIBRARY)]} {\n\
+ lappend dirs $env(ITK_LIBRARY)\n\
+ }\n\
+ lappend dirs [file join [file dirname $tcl_library] itk$version]\n\
+ set bindir [file dirname [info nameofexecutable]]\n\
+ lappend dirs [file join $bindir .. lib itk$version]\n\
+ lappend dirs [file join $bindir .. library]\n\
+ lappend dirs [file join $bindir .. .. library]\n\
+ lappend dirs [file join $bindir .. .. itk library]\n\
+ }\n\
+ foreach i $dirs {\n\
+ set library $i\n\
+ set itkfile [file join $i itk.tcl]\n\
+ if {![catch {uplevel #0 [list source $itkfile]} msg]} {\n\
+ return\n\
+ }\n\
+ }\n\
+ set msg \"Can't find a usable itk.tcl in the following directories:\n\"\n\
+ append msg \" $dirs\n\"\n\
+ append msg \"This probably means that Itcl/Itk weren't installed properly.\n\"\n\
+ append msg \"If you know where the Itk library directory was installed,\n\"\n\
+ append msg \"you can set the environment variable ITK_LIBRARY to point\n\"\n\
+ append msg \"to the library directory.\n\"\n\
+ error $msg\n\
+ }\n\
_find_init\n\
}";
+extern ItkStubs itkStubs;
+
/*
* ------------------------------------------------------------------------
@@ -71,23 +103,16 @@ Initialize(interp)
Tcl_Namespace *itkNs, *parserNs;
ClientData parserInfo;
- if (Tcl_PkgRequire(interp, "Tk", TK_VERSION, 0) == NULL) {
+ if (Tcl_InitStubs(interp, "8.1", 0) == NULL) {
return TCL_ERROR;
- }
- if (Tcl_PkgRequire(interp, "Itcl", ITCL_VERSION, 0) == NULL) {
+ };
+ if (Tk_InitStubs(interp, "8.1", 0) == NULL) {
+ return TCL_ERROR;
+ };
+ if (Itcl_InitStubs(interp, ITCL_VERSION, 0) == NULL) {
return TCL_ERROR;
}
- /*
- * Install [incr Tk] facilities if not already installed.
- */
- itkNs = Tcl_FindNamespace(interp, "::itk", (Tcl_Namespace*)NULL,
- /* flags */ 0);
-
- if (itkNs) {
- Tcl_SetResult(interp, "already installed: [incr Tk]", TCL_STATIC);
- return TCL_ERROR;
- }
/*
* Add the "itk_option" ensemble to the itcl class definition parser.
@@ -130,12 +155,20 @@ Initialize(interp)
}
/*
- * Create the "itk" namespace. Export all the commands in
- * the namespace so that they can be imported by a command
- * such as "namespace import itk::*"
+ * Install [incr Tk] facilities if not already installed.
*/
- itkNs = Tcl_CreateNamespace(interp, "::itk",
- (ClientData)NULL, (Tcl_NamespaceDeleteProc*)NULL);
+ itkNs = Tcl_FindNamespace(interp, "::itk", (Tcl_Namespace*)NULL,
+ /* flags */ 0);
+
+ if (itkNs == NULL) {
+ /*
+ * Create the "itk" namespace. Export all the commands in
+ * the namespace so that they can be imported by a command
+ * such as "namespace import itk::*"
+ */
+ itkNs = Tcl_CreateNamespace(interp, "::itk",
+ (ClientData)NULL, (Tcl_NamespaceDeleteProc*)NULL);
+ }
if (!itkNs ||
Tcl_Export(interp, itkNs, "*", /* resetListFirst */ 1) != TCL_OK) {
@@ -162,7 +195,8 @@ Initialize(interp)
/*
* Signal that the package has been loaded.
*/
- if (Tcl_PkgProvide(interp, "Itk", ITCL_VERSION) != TCL_OK) {
+ if (Tcl_PkgProvideEx(interp, "Itk", ITCL_VERSION,
+ (ClientData) &itkStubs) != TCL_OK) {
return TCL_ERROR;
}
return TCL_OK;
diff --git a/itcl/itk/itkConfig.sh.in b/itcl/itk/itkConfig.sh.in
index daad0d2e3fa..c0b21a9fe05 100644
--- a/itcl/itk/itkConfig.sh.in
+++ b/itcl/itk/itkConfig.sh.in
@@ -27,6 +27,23 @@ ITK_BUILD_LIB_SPEC='@ITK_BUILD_LIB_SPEC@'
# installed directory.
ITK_LIB_SPEC='@ITK_LIB_SPEC@'
+# Path to the library name. Used for dependencies.
+ITK_LIB_FULL_PATH='@ITK_LIB_FULL_PATH@'
+
+# The name of the Itk stub library
+ITK_STUB_LIB_FILE=@ITK_STUB_LIB_FILE@
+
+# String to pass to linker to pick up the Itcl stub library from its
+# build directory.
+ITK_BUILD_STUB_LIB_SPEC='@ITK_BUILD_STUB_LIB_SPEC@'
+
+# String to pass to linker to pick up the Itcl stub library from its
+# installed directory.
+ITK_STUB_LIB_SPEC='@ITK_STUB_LIB_SPEC@'
+
+# Full path to itcl library for dependency checking.
+ITK_STUB_LIB_FULL_PATH='@ITK_STUB_LIB_FULL_PATH@'
+
# Location of the top-level source directories from which [incr Tk]
# was built. This is the directory that contains a README file as well
# as subdirectories such as generic, unix, etc. If [incr Tk] was
@@ -34,6 +51,3 @@ ITK_LIB_SPEC='@ITK_LIB_SPEC@'
# files, this points to the location of the sources, not the location
# where [incr Tk] was compiled.
ITK_SRC_DIR='@ITK_SRC_DIR@'
-
-# Path to the library name. Used for dependencies.
-ITK_LIB_FULL_PATH='@ITK_LIB_FULL_PATH@'
diff --git a/itcl/itk/library/itk.tcl b/itcl/itk/library/itk.tcl
index 54ef1ec507b..dea0f669bb6 100644
--- a/itcl/itk/library/itk.tcl
+++ b/itcl/itk/library/itk.tcl
@@ -25,6 +25,26 @@ if {$tcl_platform(os) == "MacOS"} {
lappend auto_path ${itk::library}
}
+# ----------------------------------------------------------------------
+# USAGE: itk::remove_destroy_hook <widget>
+#
+# Used internally via "itk_component delete" when disconnecting a
+# component <widget> from the mega-widget that contains it.
+# Each component has a special binding for the <Destroy> event
+# that causes it to disconnect itself from its parent when destroyed.
+# This procedure removes the binding from the binding tag list and
+# deletes the binding. It is much easier to implement this in
+# Tcl than C.
+# ----------------------------------------------------------------------
+proc ::itk::remove_destroy_hook {widget} {
+ set tags [bindtags $widget]
+ set i [lsearch $tags "itk-destroy-$widget"]
+ if {$i >= 0} {
+ bindtags $widget [lreplace $tags $i $i]
+ }
+ bind itk-destroy-$widget <Destroy> {}
+}
+
#
# Define "usual" option-handling code for the Tk widgets:
#
diff --git a/itcl/itk/mac/itkMacLibrary.r b/itcl/itk/mac/itkMacLibrary.r
index 5b82cf8fea8..9b63ef25ee3 100644
--- a/itcl/itk/mac/itkMacLibrary.r
+++ b/itcl/itk/mac/itkMacLibrary.r
@@ -89,6 +89,6 @@ read 'TEXT' (ITK_LIBRARY_RESOURCES+12, "itk:tclIndex", purgeable)
"::mac:tclIndex";
data 'TEXT' (ITK_LIBRARY_RESOURCES+13,"pkgIndex",purgeable, preload) {
"# Tcl package index file, version 1.0\n"
- "package ifneeded Itk 3.0 [list package require Itcl 3.0 \; load [file join $dir itk30[info sharedlibextension]] Itk \; source -rsrc itk:tclIndex]\n"
+ "package ifneeded Itk 3.1 [list package require Itcl 3.1 \; load [file join $dir itk31[info sharedlibextension]] Itk \; source -rsrc itk:tclIndex]\n"
};
diff --git a/itcl/itk/mac/pkgIndex.tcl b/itcl/itk/mac/pkgIndex.tcl
index 8b8cad8bea4..04ada33ab18 100644
--- a/itcl/itk/mac/pkgIndex.tcl
+++ b/itcl/itk/mac/pkgIndex.tcl
@@ -1,3 +1,3 @@
# Tcl package index file, version 1.0
-package ifneeded Itk 3.0 [list load [file join $dir itk30[info sharedlibextension]] Itk]
+package ifneeded Itk 3.1 [list load [file join $dir itk31[info sharedlibextension]] Itk]
diff --git a/itcl/itk/pkgIndex.tcl b/itcl/itk/pkgIndex.tcl
new file mode 100644
index 00000000000..614ba374ce3
--- /dev/null
+++ b/itcl/itk/pkgIndex.tcl
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Itk 3.2 [list load [file join $dir .. "libitk3.2.so"] Itk]
diff --git a/itcl/itk/pkgIndex.tcl.in b/itcl/itk/pkgIndex.tcl.in
new file mode 100644
index 00000000000..d9d57d47399
--- /dev/null
+++ b/itcl/itk/pkgIndex.tcl.in
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Itk @VERSION@ [list load [file join $dir @RELPATH@ "@itk_LIB_FILE@"] Itk]
diff --git a/itcl/itk/tests/all b/itcl/itk/tests/all
index b50794c1448..b8b15b09f16 100644
--- a/itcl/itk/tests/all
+++ b/itcl/itk/tests/all
@@ -3,6 +3,11 @@
# in this directory.
#
# SCCS: @(#) all 1.7 96/02/16 08:55:38
+# ------------------------------------------------------------------
+# THIS SCRIPT IS NOW DEPRECATED! It is kept for older Tcl
+# installations that don't have the "tcltest" package.
+# Instead, use the "all.tcl" script to run the test suite.
+# ------------------------------------------------------------------
foreach i [lsort [glob *.test]] {
if [string match l.*.test $i] {
diff --git a/itcl/itk/tests/all.tcl b/itcl/itk/tests/all.tcl
new file mode 100644
index 00000000000..3cf9670dfeb
--- /dev/null
+++ b/itcl/itk/tests/all.tcl
@@ -0,0 +1,122 @@
+# all.tcl --
+#
+# This file contains a top-level script to run all of the Tcl
+# tests. Execute it by invoking "source all.test" when running tcltest
+# in this directory.
+#
+# Copyright (c) 1998-2000 by Ajuba Solutions
+# All rights reserved.
+#
+# RCS: @(#) $Id$
+
+package require tcltest
+namespace import -force ::tcltest::*
+
+# Look for the -exedir flag and find a suitable tclsh executable.
+
+if {(![info exists argv]) || ([llength $argv] < 1)} {
+ set flagArray {}
+} else {
+ set flagArray $argv
+}
+
+array set flag $flagArray
+if {[info exists flag(-exedir)]} {
+ set shell [lindex \
+ [glob -nocomplain \
+ [file join $flag(-exedir) wish*.bin] \
+ [file join $flag(-exedir) wish*]] 0]
+} else {
+ set shell $::tcltest::tcltest
+}
+
+set ::tcltest::testSingleFile false
+
+# use [pwd] trick to expand relative file paths to absolute paths - MMc
+set cwd [pwd]
+cd [file dirname [info script]]
+set ::tcltest::testsDirectory [pwd]
+cd $cwd
+
+set logfile [file join $::tcltest::temporaryDirectory Log.txt]
+
+puts stdout "Using interp: $shell"
+puts stdout "Running tests in working dir: $::tcltest::testsDirectory"
+if {[llength $::tcltest::skip] > 0} {
+ puts stdout "Skipping tests that match: $::tcltest::skip"
+}
+if {[llength $::tcltest::match] > 0} {
+ puts stdout "Only running tests that match: $::tcltest::match"
+}
+
+if {[llength $::tcltest::skipFiles] > 0} {
+ puts stdout "Skipping test files that match: $::tcltest::skipFiles"
+}
+if {[llength $::tcltest::matchFiles] > 0} {
+ puts stdout "Only sourcing test files that match: $::tcltest::matchFiles"
+}
+
+set timeCmd {clock format [clock seconds]}
+puts stdout "Tests began at [eval $timeCmd]"
+
+# source each of the specified tests
+foreach file [lsort [::tcltest::getMatchingFiles]] {
+ set tail [file tail $file]
+ puts stdout $tail
+
+ # Change to the tests directory so the value of the following
+ # variable is set correctly when we spawn the child test processes
+
+ cd $::tcltest::testsDirectory
+ set cmd [concat [list | $shell $file] [split $argv] \
+ [list -outfile $logfile]]
+ if {[catch {
+ set pipeFd [open $cmd "r"]
+ while {[gets $pipeFd line] >= 0} {
+ puts $::tcltest::outputChannel $line
+ }
+ close $pipeFd
+ } msg]} {
+ # Print results to ::tcltest::outputChannel.
+ puts $::tcltest::outputChannel $msg
+ }
+
+ # Now concatenate the temporary log file to
+ # ::tcltest::outputChannel
+ if {[catch {
+ set fd [open $logfile "r"]
+ while {![eof $fd]} {
+ gets $fd line
+ if {![eof $fd]} {
+ if {[regexp {^([^:]+):\tTotal\t([0-9]+)\tPassed\t([0-9]+)\tSkipped\t([0-9]+)\tFailed\t([0-9]+)} $line null testFile Total Passed Skipped Failed]} {
+ foreach index [list "Total" "Passed" "Skipped" \
+ "Failed"] {
+ incr ::tcltest::numTests($index) [set $index]
+ }
+ incr ::tcltest::numTestFiles
+ if {$Failed > 0} {
+ lappend ::tcltest::failFiles $testFile
+ }
+ }
+ puts $::tcltest::outputChannel $line
+ }
+ }
+ close $fd
+ } msg]} {
+ puts $::tcltest::outputChannel $msg
+ }
+}
+
+set numFailures [llength $::tcltest::failFiles]
+
+# cleanup
+puts stdout "\nTests ended at [eval $timeCmd]"
+::tcltest::cleanupTests 1
+
+if {$numFailures > 0} {
+ return -code error -errorcode $numFailures \
+ -errorinfo "Found $numFailures test file failures"
+} else {
+ return
+}
+exit
diff --git a/itcl/itk/tests/defs b/itcl/itk/tests/defs
index 4be66bc07c2..6b6660f3edb 100644
--- a/itcl/itk/tests/defs
+++ b/itcl/itk/tests/defs
@@ -10,6 +10,11 @@
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# SCCS: @(#) defs 1.44 96/10/08 17:26:58
+# ------------------------------------------------------------------
+# THIS SCRIPT IS NOW DEPRECATED! It is kept for older Tcl
+# installations that don't have the "tcltest" package.
+# Instead, use "package require tcltest" in the test suite.
+# ------------------------------------------------------------------
if ![info exists VERBOSE] {
set VERBOSE 0
@@ -80,6 +85,8 @@ if {[info commands memory] == ""} {
# unixExecs - 1 means this machine has commands such as 'cat',
# 'echo' etc available.
+package require Itk
+
catch {unset testConfig}
if {$tcl_platform(platform) == "unix"} {
set testConfig(unixOnly) 1
diff --git a/itcl/itk/tests/interp.test b/itcl/itk/tests/interp.test
index 894b3c6f88b..86979830fc9 100644
--- a/itcl/itk/tests/interp.test
+++ b/itcl/itk/tests/interp.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itk
+
# ----------------------------------------------------------------------
# Make sure that slave interpreters can be created and loaded
# with [incr Tcl] / [incr Tk]...
@@ -46,3 +51,6 @@ test interp-1.3 {errors are okay when slave interp is deleted} {
}
interp delete slave
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/itk/tests/option.test b/itcl/itk/tests/option.test
index 857525c4deb..d99a4013e11 100644
--- a/itcl/itk/tests/option.test
+++ b/itcl/itk/tests/option.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itk
+
# ----------------------------------------------------------------------
# Component option processing
# ----------------------------------------------------------------------
@@ -115,15 +120,15 @@ test option-2.1 {create a widget for the following tests} {
} {.testUsual}
test option-2.2 {register some "usual" code} {
- usual TestOptComp-test {keep -cursor -foreground}
+ itk::usual TestOptComp-test {keep -cursor -foreground}
} {}
test option-2.3 {query back "usual" code} {
- usual TestOptComp-test
+ itk::usual TestOptComp-test
} {keep -cursor -foreground}
test option-2.4 {query back unknown "usual" code} {
- usual xyzzyxyzzy
+ itk::usual xyzzyxyzzy
} {}
test option-2.5 {add a component using "usual" code} {
@@ -177,3 +182,6 @@ foreach widget {button canvas checkbutton entry frame label listbox
# Clean up
# ----------------------------------------------------------------------
itcl::delete class TestOptComp TestOptWidget
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/itk/tests/privacy.test b/itcl/itk/tests/privacy.test
index 19ce700fd44..a3cfe533aa9 100644
--- a/itcl/itk/tests/privacy.test
+++ b/itcl/itk/tests/privacy.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itk
+
# ----------------------------------------------------------------------
# Define a base class with public variables and a simple mega-widget
# ----------------------------------------------------------------------
@@ -92,3 +97,6 @@ test privacy-1.7 {components are visible depending on namespace context} {
# Clean up
# ----------------------------------------------------------------------
itcl::delete class TestPrivacy TestMorePrivacy
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/itk/tests/public.test b/itcl/itk/tests/public.test
index 03f54ac5737..d83006d6953 100644
--- a/itcl/itk/tests/public.test
+++ b/itcl/itk/tests/public.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itk
+
# ----------------------------------------------------------------------
# Define a base class with public variables and a simple mega-widget
# ----------------------------------------------------------------------
@@ -73,3 +78,6 @@ test public-1.4 {config code gets fired off} {
# Clean up
# ----------------------------------------------------------------------
itcl::delete class TestPublic test_public_base
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/itk/tests/toplevel.test b/itcl/itk/tests/toplevel.test
index ac6a07f0eb9..d58a86dc457 100644
--- a/itcl/itk/tests/toplevel.test
+++ b/itcl/itk/tests/toplevel.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itk
+
# ----------------------------------------------------------------------
# Toplevel mega-widget
# ----------------------------------------------------------------------
@@ -78,3 +83,6 @@ test toplevel-1.6 {when a mega-widget is destroyed, its object is deleted} {
# Clean up
# ----------------------------------------------------------------------
itcl::delete class TestToplevel
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/itk/tests/widget.test b/itcl/itk/tests/widget.test
index f793b7d81c4..bfc62330937 100644
--- a/itcl/itk/tests/widget.test
+++ b/itcl/itk/tests/widget.test
@@ -13,8 +13,13 @@
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
if {[string compare test [info procs test]] == 1} then {source defs}
+package require Itk
+
# ----------------------------------------------------------------------
# Simple mega-widget
# ----------------------------------------------------------------------
@@ -157,7 +162,7 @@ test widget-1.10 {check the invocation of "config" code} {
} {{} {test message}}
test widget-1.11a {configure using the "code" command} {
- .testWidget0 do {configure -command [code $this action "button press"]}
+ .testWidget0 do {configure -command [itcl::code $this action "button press"]}
.testWidget0 cget -command
} {namespace inscope ::TestWidget {::.testWidget0 action {button press}}}
@@ -204,7 +209,7 @@ test widget-1.16 {dead components are removed from the component list} {
} {hull test1 test2}
test widget-1.17 {use "configbody" command to change "config" code} {
- configbody TestWidget::status {lappend status "new"}
+ itcl::configbody TestWidget::status {lappend status "new"}
} {}
test widget-1.18 {"config" code can really change} {
@@ -215,7 +220,7 @@ test widget-1.18 {"config" code can really change} {
} {new new}
test widget-1.19 {"config" code can change back} {
- configbody TestWidget::status {lappend status $itk_option(-status)}
+ itcl::configbody TestWidget::status {lappend status $itk_option(-status)}
} {}
test widget-1.20 {mega-widgets show up on the object list} {
@@ -237,7 +242,33 @@ test widget-1.23 {when an object is deleted the widget is destroyed} {
winfo exists .testWidget0
} {0}
+test widget-1.24 {recreate another test widget} {
+ TestWidget .testWidget
+} {.testWidget}
+
+test widget-1.25 {when an internal component is destroyed, it is removed from the list of components, and any dead options disappear} {
+ list [lsort [.testWidget component]] \
+ [.testWidget configure] \
+ [catch {destroy [.testWidget component test1]}] \
+ [.testWidget component] \
+ [.testWidget do {return [lsort [array names itk_component]]}] \
+ [.testWidget configure]
+} {{hull test1 test2} {{-background background Background linen linen} {-borderwidth borderWidth BorderWidth 2 2} {-clientdata clientData ClientData {} {}} {-command command Command {} {}} {-cursor cursor Cursor {} {}} {-foreground foreground Foreground navy navy} {-highlight highlight Foreground white white} {-normal normal Background ivory ivory} {-status status Status {} {}} {-text text Text {} {}}} 0 {hull test2} {hull test2} {{-background background Background linen linen} {-borderwidth borderWidth BorderWidth 2 2} {-clientdata clientData ClientData {} {}} {-command command Command {} {}} {-cursor cursor Cursor {} {}} {-foreground foreground Foreground navy navy} {-highlight highlight Foreground white white} {-normal normal Background ivory ivory} {-status status Status {} {}}}}
+
+test widget-1.26 {when an internal component is deleted (but not destroyed) it is disconnected from the option list and its binding tags are updated} {
+ set comp [.testWidget component test2]
+ list [bindtags $comp] \
+ [bind itk-destroy-$comp <Destroy>] \
+ [catch {.testWidget do {itk_component delete test2}}] \
+ [bindtags $comp] \
+ [bind itk-destroy-$comp <Destroy>] \
+ [.testWidget configure]
+} {{itk-destroy-.testWidget.t2 .testWidget.t2 Button . all} {namespace inscope ::itk::Archetype {::.testWidget itk_component delete test2}} 0 {.testWidget.t2 Button . all} {} {{-background background Background linen linen} {-clientdata clientData ClientData {} {}} {-cursor cursor Cursor {} {}} {-status status Status {} {}}}}
+
# ----------------------------------------------------------------------
# Clean up
# ----------------------------------------------------------------------
itcl::delete class TestWidget
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/itk/win/Makefile.in b/itcl/itk/win/Makefile.in
index 52dd3f487fb..b7c46ee314f 100644
--- a/itcl/itk/win/Makefile.in
+++ b/itcl/itk/win/Makefile.in
@@ -12,6 +12,11 @@ prefix = @prefix@
exec_prefix = @exec_prefix@
VPATH = @srcdir@:@srcdir@/../generic:@srcdir@/../unix
srcdir = @srcdir@
+libdir=@libdir@
+bindir=@bindir@
+includedir=@includedir@
+mandir=@mandir@
+datadir=@datadir@
CC = @CC@
CFLAGS = @CFLAGS@
@@ -96,16 +101,16 @@ ITKWISHRES = @ITKWISHRES@
ITK_LIBRARY = $(prefix)/share/itk$(ITCL_VERSION)
# Directory in which to install the archive libitcl.a:
-INSTALL_LIB_DIR = @libdir@
+INSTALL_LIB_DIR = $(libdir)
# Directory in which to install the program itclsh:
-INSTALL_BIN_DIR = @bindir@
+INSTALL_BIN_DIR = $(bindir)
# Directory in which to install the include file itcl.h:
-INSTALL_INCLUDE_DIR = @includedir@
+INSTALL_INCLUDE_DIR = $(includedir)
# Top-level directory for manual entries:
-INSTALL_MAN_DIR = @mandir@
+INSTALL_MAN_DIR = $(mandir)
# Directory in which to install manual entry for itclsh:
INSTALL_MAN1_DIR = $(INSTALL_MAN_DIR)/man1
@@ -367,7 +372,7 @@ install-headers:
$(INSTALL_DATA) $$i $(INSTALL_INCLUDE_DIR); \
done;
-install-libraries:
+install-libraries: install-shared-libraries
@for i in $(prefix)/lib $(ITK_LIBRARY); \
do \
if [ ! -d $$i ] ; then \
@@ -389,6 +394,10 @@ install-libraries:
@echo "Installing tclIndex"
@$(INSTALL_DATA) $(SRC_LIB_DIR)/tclIndex $(ITK_LIBRARY)
+install-shared-libraries:
+ @echo "Installing $(ITKDLL) as $(INSTALL_BIN_DIR)/$(ITKDLL)"
+ @$(INSTALL_PROGRAM) $(ITKDLL) $(INSTALL_BIN_DIR)/$(ITKDLL)
+
install-man:
@for i in $(INSTALL_MAN_DIR) $(INSTALL_MAN1_DIR) \
$(INSTALL_MAN3_DIR) $(INSTALL_MANN_DIR) ; \
diff --git a/itcl/itk/win/dllEntryPoint.c b/itcl/itk/win/dllEntryPoint.c
index d7b2f9e3613..8b8c55e9d19 100644
--- a/itcl/itk/win/dllEntryPoint.c
+++ b/itcl/itk/win/dllEntryPoint.c
@@ -4,14 +4,9 @@
* This file implements the Dll entry point as needed by Windows.
*/
-/*
- * dllEntryPoint.c --
- *
- * This file implements the Dll entry point as needed by Windows.
- */
-
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
+/* CYGNUS LOCAL */
#include <tcl.h>
/*
@@ -20,15 +15,21 @@
BOOL APIENTRY DllMain _ANSI_ARGS_((HINSTANCE hInst,
DWORD reason, LPVOID reserved));
+/* END CYGNUS LOCAL */
+
+/*
+#if defined(_MSC_VER)
+# define DllEntryPoint DllMain
+#endif
+*/
-/* CYGNUS LOCAL */
#ifdef __CYGWIN32__
/* cygwin32 requires an impure pointer variable, which must be
explicitly initialized when the DLL starts up. */
struct _reent *_impure_ptr;
extern struct _reent *_imp__reent_data;
-#endif
+#endif /* __CYGWIN32__ */
/*
*----------------------------------------------------------------------
diff --git a/itcl/itk/win/makefile.bc b/itcl/itk/win/makefile.bc
index 27fd4e783ba..0d56d4d4ade 100644
--- a/itcl/itk/win/makefile.bc
+++ b/itcl/itk/win/makefile.bc
@@ -66,7 +66,6 @@ LNLIBS_dll = $(ITCLLIBDIR)\$(ITCLLIB) $(TKLIBDIR)\$(TKLIB) $(TCLLIBDIR)\$(TCLLIB
.path.obj=$(TMPDIR)
ITKWISHOBJS = \
- $(TKLIBDIR)\tkConsole.obj \
$(TMPDIR)\winMain.obj
ITKOBJS = \
diff --git a/itcl/itk/win/makefile.vc b/itcl/itk/win/makefile.vc
index b0653f31892..5d26cf408a3 100644
--- a/itcl/itk/win/makefile.vc
+++ b/itcl/itk/win/makefile.vc
@@ -30,8 +30,9 @@ ITCLDIR = ..\..\itcl
ITKNAMEPREFIX = itk
WISHNAMEPREFIX = itkwish
-VERSION = 30
-DOTVERSION = 3.0
+VERSION = 31
+DOTVERSION = 3.1
+STUBPREFIX = $(ITKNAMEPREFIX)stub
BINROOT = .
!IF "$(NODEBUG)" == "1"
@@ -50,47 +51,66 @@ ITKLIB = $(OUTDIR)\$(ITKNAMEPREFIX)$(VERSION)$(DBGX).lib
ITKWISH = $(OUTDIR)\$(WISHNAMEPREFIX)$(VERSION)$(DBGX).exe
DUMPEXTS = $(TMPDIR)\dumpexts.exe
+ITKSTUBLIBNAME = $(STUBPREFIX)$(VERSION)$(DBGX).lib
+ITKSTUBLIB = $(OUTDIR)\$(ITKSTUBLIBNAME)
+
+
LIB_INSTALL_DIR = $(INSTALLDIR)\lib
BIN_INSTALL_DIR = $(INSTALLDIR)\bin
SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\itk$(DOTVERSION)
INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
ITKWISHOBJS = \
- $(TMPDIR)\winMain.obj \
- $(TMPDIR)\tkConsole.obj
+ $(TMPDIR)\winMain.obj
ITKOBJS = \
+ $(TMPDIR)\itkStubInit.obj \
$(TMPDIR)\itk_archetype.obj \
$(TMPDIR)\itk_cmds.obj \
$(TMPDIR)\itk_option.obj \
$(TMPDIR)\itk_util.obj \
$(TMPDIR)\dllEntryPoint.obj
+ITKSTUBOBJS = \
+ $(TMPDIR)\itkStubLib.obj
+
cc32 = $(TOOLS32)\bin\cl.exe
link32 = $(TOOLS32)\bin\link.exe
rc32 = $(TOOLS32_rc)\bin\rc.exe
include32 = -I$(TOOLS32)\include
+lib32 = "$(TOOLS32)\bin\lib.exe"
WINDIR = $(ROOT)\win
GENERICDIR = $(ROOT)\generic
RCDIR = $(WINDIR)\rc
TCLBUILDDIR = $(TCLDIR)\win\$(OUTDIR)
-TCLLIB = $(TCLBUILDDIR)\tcl80$(DBGX).lib
-TCLDLL = $(TCLBUILDDIR)\tcl80$(DBGX).dll
+TCLLIB = $(TCLBUILDDIR)\tcl81$(DBGX).lib
+TCLSTUBLIB = $(TCLBUILDDIR)\tclstub81$(DBGX).lib
+TCLDLL = $(TCLBUILDDIR)\tcl81$(DBGX).dll
TKBUILDDIR = $(TKDIR)\win\$(OUTDIR)
-TKLIB = $(TKBUILDDIR)\tk80$(DBGX).lib
-TKDLL = $(TKBUILDDIR)\tk80$(DBGX).dll
+TKLIB = $(TKBUILDDIR)\tk81$(DBGX).lib
+TKSTUBLIB = $(TKBUILDDIR)\tkstub81$(DBGX).lib
+TKDLL = $(TKBUILDDIR)\tk81$(DBGX).dll
ITCLBUILDDIR = $(ITCLDIR)\win\$(OUTDIR)
ITCLLIB = $(ITCLBUILDDIR)\itcl$(VERSION)$(DBGX).lib
ITCLDLL = $(ITCLBUILDDIR)\itcl$(VERSION)$(DBGX).dll
+ITCLSTUBLIBNAME = itclstub$(VERSION)$(DBGX).lib
+ITCLSTUBLIB = $(ITCLBUILDDIR)\$(ITCLSTUBLIBNAME)
+
ITK_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) \
- -I$(TCLDIR)\generic -I$(TKDIR)\generic -I$(TKDIR)\xlib -I$(ITCLDIR)\generic
-ITK_DEFINES = -DBUILD_itk $(DEBUGDEFINES)
+ -I$(TCLDIR)\generic -I$(TKDIR)\generic \
+ -I$(TCLDIR)\win -I$(TKDIR)\win \
+ -I$(TKDIR)\xlib -I$(ITCLDIR)\generic
-ITK_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \
- $(ITK_INCLUDES) $(ITK_DEFINES)
+ITK_EXE_DEFINES = -DBUILD_itk $(DEBUGDEFINES)
+
+ITK_EXE_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \
+ $(ITK_INCLUDES) $(ITK_EXE_DEFINES)
+
+ITK_CFLAGS = $(ITK_EXE_CFLAGS) -DUSE_TK_STUBS -DUSE_TCL_STUBS \
+ -DUSE_ITCL_STUBS
######################################################################
# Link flags
@@ -108,7 +128,7 @@ lcommon = /NODEFAULTLIB /RELEASE /NOLOGO
# declarations for use on Intel i386, i486, and Pentium systems
!IF "$(MACHINE)" == "IX86"
DLLENTRY = @12
-lflags = $(lcommon) -align:0x1000 /MACHINE:$(MACHINE)
+lflags = $(lcommon) /MACHINE:$(MACHINE)
!ELSE
lflags = $(lcommon) /MACHINE:$(MACHINE)
!ENDIF
@@ -138,12 +158,12 @@ guilibsdll = $(libcdll) $(winlibs)
!IF "$(NODEBUG)" == "1"
!IF "$(MACHINE)" == "ALPHA"
# MSVC on Alpha doesn't understand -Ot
-cdebug = -O2i -Gs -GD
+cdebug = -O2i -Gs -GD -DNDEBUG
!ELSE
-cdebug = -Oti -Gs -GD
+cdebug = -Oti -Gs -GD -DNDEBUG
!ENDIF
!ELSE
-cdebug = -Z7 -Od -WX
+cdebug = -Z7 -Od -WX -DDEBUG
!ENDIF
# declarations common to all compiler options
@@ -181,31 +201,35 @@ CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE
# Project specific targets
######################################################################
-all: setup $(ITKWISH)
-test: setup $(ITKWISH)
+all: setup $(ITKWISH) $(ITKDLL) $(ITKSTUBLIB)
+test: setup $(ITKDLL) $(ITKSTUBLIB) $(ITKWISH)
-@copy $(TCLDLL) $(TMPDIR)
-@copy $(TKDLL) $(TMPDIR)
-@copy $(ITCLDLL) $(TMPDIR)
- $(ITKWISH)
+# $(ITKWISH)
setup:
if not exist $(TMPDIR) mkdir $(TMPDIR)
if not exist $(OUTDIR) mkdir $(OUTDIR)
-$(ITKLIB): $(ITKDLL)
-
-$(ITKDLL): $(ITKOBJS) $(TMPDIR)\itk.res $(TMPDIR)\itkvc.def
+$(ITKLIB) : $(ITKDLL) $(ITKSTUBLIB)
+$(ITKDLL) : $(ITKOBJS) $(TMPDIR)\itk.res $(TMPDIR)\itkvc.def
set LIB=$(TOOLS32)\lib
$(link32) $(ldebug) $(dlllflags) -def:$(TMPDIR)\itkvc.def \
- -out:$@ $(TMPDIR)\itk.res $(TCLLIB) $(TKLIB) $(ITCLLIB) \
- $(guilibsdll) @<<
+ -out:$@ $(TMPDIR)\itk.res $(TCLSTUBLIB) \
+ $(TKSTUBLIB) $(guilibsdll) @<<
$(ITKOBJS)
<<
+
+$(ITKSTUBLIB): $(ITKSTUBOBJS)
+ $(lib32) -nologo -out:$@ $(ITKSTUBOBJS)
+
$(ITKWISH): $(ITKWISHOBJS) $(ITKLIB) $(TMPDIR)\itkwish.res
set LIB=$(TOOLS32)\lib
$(link32) $(ldebug) $(guilflags) $(TMPDIR)\itkwish.res -out:$@ \
- $(guilibsdll) $(TCLLIB) $(TKLIB) $(ITCLLIB) $(ITKLIB) $(ITKWISHOBJS)
+ $(guilibsdll) $(TCLLIB) $(TKLIB) $(ITCLLIB) $(ITKLIB) \
+ $(ITKWISHOBJS)
$(TMPDIR)\itkvc.def: $(DUMPEXTS) $(ITKOBJS)
$(DUMPEXTS) -o $@ $(ITKDLLNAME) @<<
@@ -231,14 +255,24 @@ install: all
copy $(ROOT)\win\*.tcl "$(SCRIPT_INSTALL_DIR)"
#
+# Regenerate the stubs files.
+#
+genstubs:
+ $(TCLSH) $(TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \
+ $(GENERICDIR)\itk.decls
+
+#
# Special case object file targets
#
$(TMPDIR)\winMain.obj: $(ROOT)\win\winMain.c
- $(cc32) -DBUILD_tcl -DBUILD_tk $(ITK_CFLAGS) -Fo$@ $?
+ $(cc32) $(ITK_EXE_CFLAGS) -Fo$@ $?
+
+# The following object is part of the stub library and should not
+# be built as DLL objects but none of the symbols should be exported
-$(TMPDIR)\tkConsole.obj: $(TKDIR)\generic\tkConsole.c
- $(cc32) -DBUILD_tcl -DBUILD_tk $(ITK_CFLAGS) -Fo$@ $?
+$(TMPDIR)\itkStubLib.obj : $(GENERICDIR)\itkStubLib.c
+ $(cc32) -DSTATIC_BUILD $(ITK_CFLAGS) -Fo$@ $?
#
# Implicit rules
diff --git a/itcl/itk/win/pkgIndex.tcl b/itcl/itk/win/pkgIndex.tcl
index e9eac5973a9..381ad6cae08 100644
--- a/itcl/itk/win/pkgIndex.tcl
+++ b/itcl/itk/win/pkgIndex.tcl
@@ -1,3 +1,3 @@
# Tcl package index file, version 1.0
-package ifneeded Itk 3.0 [list load itk30.dll Itk]
+package ifneeded Itk 3.1 [list load [file join $dir itk31.dll] Itk]
diff --git a/itcl/itk/win/rc/itk.rc b/itcl/itk/win/rc/itk.rc
index 65cb79be4cf..f63bf01dc7d 100644
--- a/itcl/itk/win/rc/itk.rc
+++ b/itcl/itk/win/rc/itk.rc
@@ -1,126 +1,126 @@
-// SCCS: @(#) tk.rc 1.17 96/09/12 16:22:08
-//
-// Version
-//
-
-#define RESOURCE_INCLUDED
-#include <itcl.h>
-#include <itk.h>
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL,0
- PRODUCTVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL,0
- FILEFLAGSMASK 0x3fL
- FILEFLAGS 0x0L
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "FileDescription", "Itk DLL\0"
- VALUE "Authors", "Michael McLennan\0"
-
- VALUE "OriginalFilename", "itk" STRINGIFY(ITCL_MAJOR_VERSION) STRINGIFY(ITCL_MINOR_VERSION) ".dll\0"
- VALUE "CompanyName", "Bell Labs Innovations for Lucent Technologies\0"
- VALUE "FileVersion", ITCL_PATCH_LEVEL
- VALUE "LegalCopyright", "Copyright \251 1993-1998\0"
- VALUE "ProductName", "[incr Tk] " ITCL_VERSION " for Windows\0"
- VALUE "ProductVersion", ITCL_PATCH_LEVEL
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-//
-// Icon
-//
-
-tk ICON DISCARDABLE "itk.ico"
-
-//
-// Cursor
-//
-
-X_cursor CURSOR DISCARDABLE "cursor00.cur"
-arrow CURSOR DISCARDABLE "cursor02.cur"
-based_arrow_down CURSOR DISCARDABLE "cursor04.cur"
-based_arrow_up CURSOR DISCARDABLE "cursor06.cur"
-boat CURSOR DISCARDABLE "cursor08.cur"
-bogosity CURSOR DISCARDABLE "cursor0a.cur"
-bottom_left_corner CURSOR DISCARDABLE "cursor0c.cur"
-bottom_right_corner CURSOR DISCARDABLE "cursor0e.cur"
-bottom_side CURSOR DISCARDABLE "cursor10.cur"
-bottom_tee CURSOR DISCARDABLE "cursor12.cur"
-box_spiral CURSOR DISCARDABLE "cursor14.cur"
-center_ptr CURSOR DISCARDABLE "cursor16.cur"
-circle CURSOR DISCARDABLE "cursor18.cur"
-clock CURSOR DISCARDABLE "cursor1a.cur"
-coffee_mug CURSOR DISCARDABLE "cursor1c.cur"
-cross CURSOR DISCARDABLE "cursor1e.cur"
-cross_reverse CURSOR DISCARDABLE "cursor20.cur"
-crosshair CURSOR DISCARDABLE "cursor22.cur"
-diamond_cross CURSOR DISCARDABLE "cursor24.cur"
-dot CURSOR DISCARDABLE "cursor26.cur"
-dotbox CURSOR DISCARDABLE "cursor28.cur"
-double_arrow CURSOR DISCARDABLE "cursor2a.cur"
-draft_large CURSOR DISCARDABLE "cursor2c.cur"
-draft_small CURSOR DISCARDABLE "cursor2e.cur"
-draped_box CURSOR DISCARDABLE "cursor30.cur"
-exchange CURSOR DISCARDABLE "cursor32.cur"
-fleur CURSOR DISCARDABLE "cursor34.cur"
-gobbler CURSOR DISCARDABLE "cursor36.cur"
-gumby CURSOR DISCARDABLE "cursor38.cur"
-hand1 CURSOR DISCARDABLE "cursor3a.cur"
-hand2 CURSOR DISCARDABLE "cursor3c.cur"
-heart CURSOR DISCARDABLE "cursor3e.cur"
-icon CURSOR DISCARDABLE "cursor40.cur"
-iron_cross CURSOR DISCARDABLE "cursor42.cur"
-left_ptr CURSOR DISCARDABLE "cursor44.cur"
-left_side CURSOR DISCARDABLE "cursor46.cur"
-left_tee CURSOR DISCARDABLE "cursor48.cur"
-leftbutton CURSOR DISCARDABLE "cursor4a.cur"
-ll_angle CURSOR DISCARDABLE "cursor4c.cur"
-lr_angle CURSOR DISCARDABLE "cursor4e.cur"
-man CURSOR DISCARDABLE "cursor50.cur"
-middlebutton CURSOR DISCARDABLE "cursor52.cur"
-mouse CURSOR DISCARDABLE "cursor54.cur"
-pencil CURSOR DISCARDABLE "cursor56.cur"
-pirate CURSOR DISCARDABLE "cursor58.cur"
-plus CURSOR DISCARDABLE "cursor5a.cur"
-question_arrow CURSOR DISCARDABLE "cursor5c.cur"
-right_ptr CURSOR DISCARDABLE "cursor5e.cur"
-right_side CURSOR DISCARDABLE "cursor60.cur"
-right_tee CURSOR DISCARDABLE "cursor62.cur"
-rightbutton CURSOR DISCARDABLE "cursor64.cur"
-rtl_logo CURSOR DISCARDABLE "cursor66.cur"
-sailboat CURSOR DISCARDABLE "cursor68.cur"
-sb_down_arrow CURSOR DISCARDABLE "cursor6a.cur"
-sb_h_double_arrow CURSOR DISCARDABLE "cursor6c.cur"
-sb_left_arrow CURSOR DISCARDABLE "cursor6e.cur"
-sb_right_arrow CURSOR DISCARDABLE "cursor70.cur"
-sb_up_arrow CURSOR DISCARDABLE "cursor72.cur"
-sb_v_double_arrow CURSOR DISCARDABLE "cursor74.cur"
-shuttle CURSOR DISCARDABLE "cursor76.cur"
-sizing CURSOR DISCARDABLE "cursor78.cur"
-spider CURSOR DISCARDABLE "cursor7a.cur"
-spraycan CURSOR DISCARDABLE "cursor7c.cur"
-star CURSOR DISCARDABLE "cursor7e.cur"
-target CURSOR DISCARDABLE "cursor80.cur"
-tcross CURSOR DISCARDABLE "cursor82.cur"
-top_left_arrow CURSOR DISCARDABLE "cursor84.cur"
-top_left_corner CURSOR DISCARDABLE "cursor86.cur"
-top_right_corner CURSOR DISCARDABLE "cursor88.cur"
-top_side CURSOR DISCARDABLE "cursor8a.cur"
-top_tee CURSOR DISCARDABLE "cursor8c.cur"
-trek CURSOR DISCARDABLE "cursor8e.cur"
-ul_angle CURSOR DISCARDABLE "cursor90.cur"
-umbrella CURSOR DISCARDABLE "cursor92.cur"
-ur_angle CURSOR DISCARDABLE "cursor94.cur"
-watch CURSOR DISCARDABLE "cursor96.cur"
-xterm CURSOR DISCARDABLE "cursor98.cur"
+// SCCS: @(#) tk.rc 1.17 96/09/12 16:22:08
+//
+// Version
+//
+
+#define VS_VERSION_INFO 1
+#define RESOURCE_INCLUDED
+#include <itcl.h>
+#include <itk.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL
+ PRODUCTVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "FileDescription", "Itk language extension for Tcl\0"
+ VALUE "Authors", "Michael McLennan\0"
+ VALUE "OriginalFilename", "itk" STRINGIFY(ITCL_MAJOR_VERSION) STRINGIFY(ITCL_MINOR_VERSION) ".dll\0"
+ VALUE "CompanyName", "Bell Labs Innovations for Lucent Technologies\0"
+ VALUE "FileVersion", ITCL_PATCH_LEVEL
+ VALUE "LegalCopyright", "Copyright \251 1993-1998\0"
+ VALUE "ProductName", "[incr Tk] " ITCL_VERSION " for Windows\0"
+ VALUE "ProductVersion", ITCL_PATCH_LEVEL
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+//
+// Icon
+//
+
+tk ICON DISCARDABLE "itk.ico"
+
+//
+// Cursor
+//
+
+X_cursor CURSOR DISCARDABLE "cursor00.cur"
+arrow CURSOR DISCARDABLE "cursor02.cur"
+based_arrow_down CURSOR DISCARDABLE "cursor04.cur"
+based_arrow_up CURSOR DISCARDABLE "cursor06.cur"
+boat CURSOR DISCARDABLE "cursor08.cur"
+bogosity CURSOR DISCARDABLE "cursor0a.cur"
+bottom_left_corner CURSOR DISCARDABLE "cursor0c.cur"
+bottom_right_corner CURSOR DISCARDABLE "cursor0e.cur"
+bottom_side CURSOR DISCARDABLE "cursor10.cur"
+bottom_tee CURSOR DISCARDABLE "cursor12.cur"
+box_spiral CURSOR DISCARDABLE "cursor14.cur"
+center_ptr CURSOR DISCARDABLE "cursor16.cur"
+circle CURSOR DISCARDABLE "cursor18.cur"
+clock CURSOR DISCARDABLE "cursor1a.cur"
+coffee_mug CURSOR DISCARDABLE "cursor1c.cur"
+cross CURSOR DISCARDABLE "cursor1e.cur"
+cross_reverse CURSOR DISCARDABLE "cursor20.cur"
+crosshair CURSOR DISCARDABLE "cursor22.cur"
+diamond_cross CURSOR DISCARDABLE "cursor24.cur"
+dot CURSOR DISCARDABLE "cursor26.cur"
+dotbox CURSOR DISCARDABLE "cursor28.cur"
+double_arrow CURSOR DISCARDABLE "cursor2a.cur"
+draft_large CURSOR DISCARDABLE "cursor2c.cur"
+draft_small CURSOR DISCARDABLE "cursor2e.cur"
+draped_box CURSOR DISCARDABLE "cursor30.cur"
+exchange CURSOR DISCARDABLE "cursor32.cur"
+fleur CURSOR DISCARDABLE "cursor34.cur"
+gobbler CURSOR DISCARDABLE "cursor36.cur"
+gumby CURSOR DISCARDABLE "cursor38.cur"
+hand1 CURSOR DISCARDABLE "cursor3a.cur"
+hand2 CURSOR DISCARDABLE "cursor3c.cur"
+heart CURSOR DISCARDABLE "cursor3e.cur"
+icon CURSOR DISCARDABLE "cursor40.cur"
+iron_cross CURSOR DISCARDABLE "cursor42.cur"
+left_ptr CURSOR DISCARDABLE "cursor44.cur"
+left_side CURSOR DISCARDABLE "cursor46.cur"
+left_tee CURSOR DISCARDABLE "cursor48.cur"
+leftbutton CURSOR DISCARDABLE "cursor4a.cur"
+ll_angle CURSOR DISCARDABLE "cursor4c.cur"
+lr_angle CURSOR DISCARDABLE "cursor4e.cur"
+man CURSOR DISCARDABLE "cursor50.cur"
+middlebutton CURSOR DISCARDABLE "cursor52.cur"
+mouse CURSOR DISCARDABLE "cursor54.cur"
+pencil CURSOR DISCARDABLE "cursor56.cur"
+pirate CURSOR DISCARDABLE "cursor58.cur"
+plus CURSOR DISCARDABLE "cursor5a.cur"
+question_arrow CURSOR DISCARDABLE "cursor5c.cur"
+right_ptr CURSOR DISCARDABLE "cursor5e.cur"
+right_side CURSOR DISCARDABLE "cursor60.cur"
+right_tee CURSOR DISCARDABLE "cursor62.cur"
+rightbutton CURSOR DISCARDABLE "cursor64.cur"
+rtl_logo CURSOR DISCARDABLE "cursor66.cur"
+sailboat CURSOR DISCARDABLE "cursor68.cur"
+sb_down_arrow CURSOR DISCARDABLE "cursor6a.cur"
+sb_h_double_arrow CURSOR DISCARDABLE "cursor6c.cur"
+sb_left_arrow CURSOR DISCARDABLE "cursor6e.cur"
+sb_right_arrow CURSOR DISCARDABLE "cursor70.cur"
+sb_up_arrow CURSOR DISCARDABLE "cursor72.cur"
+sb_v_double_arrow CURSOR DISCARDABLE "cursor74.cur"
+shuttle CURSOR DISCARDABLE "cursor76.cur"
+sizing CURSOR DISCARDABLE "cursor78.cur"
+spider CURSOR DISCARDABLE "cursor7a.cur"
+spraycan CURSOR DISCARDABLE "cursor7c.cur"
+star CURSOR DISCARDABLE "cursor7e.cur"
+target CURSOR DISCARDABLE "cursor80.cur"
+tcross CURSOR DISCARDABLE "cursor82.cur"
+top_left_arrow CURSOR DISCARDABLE "cursor84.cur"
+top_left_corner CURSOR DISCARDABLE "cursor86.cur"
+top_right_corner CURSOR DISCARDABLE "cursor88.cur"
+top_side CURSOR DISCARDABLE "cursor8a.cur"
+top_tee CURSOR DISCARDABLE "cursor8c.cur"
+trek CURSOR DISCARDABLE "cursor8e.cur"
+ul_angle CURSOR DISCARDABLE "cursor90.cur"
+umbrella CURSOR DISCARDABLE "cursor92.cur"
+ur_angle CURSOR DISCARDABLE "cursor94.cur"
+watch CURSOR DISCARDABLE "cursor96.cur"
+xterm CURSOR DISCARDABLE "cursor98.cur"
diff --git a/itcl/itk/win/rc/itkwish.rc b/itcl/itk/win/rc/itkwish.rc
index 88b91e08186..94fd89fdb21 100644
--- a/itcl/itk/win/rc/itkwish.rc
+++ b/itcl/itk/win/rc/itkwish.rc
@@ -1,43 +1,43 @@
-// SCCS: @(#) wish.rc 1.13 96/09/12 16:22:14
-//
-// Version
-//
-
-#define RESOURCE_INCLUDED
-#include <itcl.h>
-#include <itk.h>
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL,0
- PRODUCTVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL,0
- FILEFLAGSMASK 0x3fL
- FILEFLAGS 0x0L
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "FileDescription", "[incr Tk] Object-Oriented Wish Application\0"
- VALUE "Authors", "Michael McLennan\0"
- VALUE "OriginalFilename", "itkwish.exe\0"
- VALUE "CompanyName", "Bell Labs Innovations for Lucent Technologies\0"
- VALUE "FileVersion", ITCL_PATCH_LEVEL
- VALUE "LegalCopyright", "Copyright \251 1993-1998\0"
- VALUE "ProductName", "[incr Tk] " ITCL_VERSION " for Windows\0"
- VALUE "ProductVersion", ITCL_PATCH_LEVEL
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-//
-// Icon
-//
-
-wish ICON DISCARDABLE "itk.ico"
+// SCCS: @(#) wish.rc 1.13 96/09/12 16:22:14
+//
+// Version
+//
+
+#define RESOURCE_INCLUDED
+#include <itcl.h>
+#include <itk.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL
+ PRODUCTVERSION ITCL_MAJOR_VERSION,ITCL_MINOR_VERSION,ITCL_RELEASE_LEVEL
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0x0L
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "FileDescription", "[incr Tk] Object-Oriented Wish Application\0"
+ VALUE "Authors", "Michael McLennan\0"
+ VALUE "OriginalFilename", "itkwish.exe\0"
+ VALUE "CompanyName", "Bell Labs Innovations for Lucent Technologies\0"
+ VALUE "FileVersion", ITCL_PATCH_LEVEL
+ VALUE "LegalCopyright", "Copyright \251 1993-1998\0"
+ VALUE "ProductName", "[incr Tk] " ITCL_VERSION " for Windows\0"
+ VALUE "ProductVersion", ITCL_PATCH_LEVEL
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+//
+// Icon
+//
+
+wish ICON DISCARDABLE "itk.ico"
diff --git a/itcl/itk/win/winMain.c b/itcl/itk/win/winMain.c
index bcd32cba6b3..4ec8d1976c4 100644
--- a/itcl/itk/win/winMain.c
+++ b/itcl/itk/win/winMain.c
@@ -21,15 +21,8 @@
#include "itk.h"
/* include tclInt.h for access to namespace API */
-#include "tclInt.h"
+#include "tkInt.h"
-/*
- * The following declarations refer to internal Tk routines. These
- * interfaces are available for use, but are not supported.
- */
-
-EXTERN void TkConsoleCreate(void);
-EXTERN int TkConsoleInit(Tcl_Interp *interp);
/*
* Forward declarations for procedures defined later in this file:
@@ -96,8 +89,6 @@ WinMain(hInstance, hPrevInstance, lpszCmdLine, nCmdShow)
* called to attach the console to a text widget.
*/
- TkConsoleCreate();
-
setargv(&argc, &argv);
/*
@@ -182,7 +173,7 @@ Tcl_AppInit(interp)
* application.
*/
- if (TkConsoleInit(interp) == TCL_ERROR) {
+ if (Tk_CreateConsoleWindow(interp) == TCL_ERROR) {
goto error;
}
diff --git a/itcl/iwidgets3.0.0/CHANGES b/itcl/iwidgets3.0.0/CHANGES
index 7356fe253cd..b03c44c4ec0 100644
--- a/itcl/iwidgets3.0.0/CHANGES
+++ b/itcl/iwidgets3.0.0/CHANGES
@@ -117,6 +117,14 @@ ______________________________________________________________________________
>> Changed component option basis to be that of the "usuals".
+>> Added a -pasting configuration option to allow user to enable/disable
+ pasting into the entry component of the entryfield. csmith@adc.com
+ (Chad Smith)
+
+>> Removed hardcoded state comparisons in the _keyPress method and replaced
+ with code to mask out <Ctrl> and <Alt> keypress events. csmith@adc.com
+ (Chad Smith)
+
Pushbutton
______________________________________________________________________________
diff --git a/itcl/iwidgets3.0.0/Makefile.in b/itcl/iwidgets3.0.0/Makefile.in
new file mode 100644
index 00000000000..98071c14df7
--- /dev/null
+++ b/itcl/iwidgets3.0.0/Makefile.in
@@ -0,0 +1,242 @@
+#
+# This file is a Makefile for [incr Widgets]. If it has the name
+# "Makefile.in" then it is a template for a Makefile; to generate
+# the actual Makefile, run "./configure", which is a configuration
+# script generated by the "autoconf" program (constructs like
+# "@foo@" will get replaced in the actual Makefile.
+#
+# RCS: $Id$
+
+# Current [incr Widgets] version; used in various names.
+
+ITCL_VERSION = @ITCL_VERSION@
+IWIDGETS_VERSION = @VERSION@
+VERSION = @VERSION@
+
+#----------------------------------------------------------------
+# Things you can change to personalize the Makefile for your own
+# site (you can make these changes in either Makefile.in or
+# Makefile, but changes to Makefile will get lost if you re-run
+# the configuration script).
+#----------------------------------------------------------------
+
+# Default top-level directories in which to install architecture-
+# specific files (exec_prefix) and machine-independent files such
+# as scripts (prefix). The values specified here may be overridden
+# at configure-time with the --exec-prefix and --prefix options
+# to the "configure" script.
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+srcdir = @srcdir@
+bindir = @bindir@
+
+# The following definition can be set to non-null for special systems
+# like AFS with replication. It allows the pathnames used for installation
+# to be different than those used for actually reference files at
+# run-time. INSTALL_ROOT is prepended to $prefix and $exec_prefix
+# when installing files.
+INSTALL_ROOT =
+
+# Path name to use when installing library scripts:
+
+# CYGNUS LOCAL
+SCRIPT_INSTALL_DIR = @datadir@/iwidgets$(VERSION)
+# END CYGNUS LOCAL
+
+# Directory in which to install the archive libtcl.a:
+LIB_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/lib
+
+# Directory in which to install the program tclsh:
+BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin
+
+# Directory in which to install the include file itcl.h:
+INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
+
+# Top-level directory in which to install manual entries:
+MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
+
+# Directory in which to install manual entry for itclsh:
+MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1
+
+# Directory in which to install manual entries for [incr Tcl]'s
+# C library procedures:
+MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3
+
+# Directory in which to install manual entries for the built-in
+# [incr Tcl] commands:
+MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
+
+# Directory in which to install html version of manual entries:
+HTML_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/doc
+
+# Tcl libraries can be found here:
+TCL_LIB_DIR = @TCL_LIB_DIR@
+
+# Directory containing Tcl source code (for library used during test):
+TCL_SRC_DIR = @TCL_SRC_DIR@
+
+# Tk libraries can be found here:
+TK_LIB_DIR = @TK_LIB_DIR@
+
+# Directory containing Tk source code (for library used during test):
+TK_SRC_DIR = @TK_SRC_DIR@
+
+# Itcl libraries can be found here:
+ITCL_LIB_DIR = @ITCL_LIB_DIR@
+
+# Directory containing Itcl source code (for library used during test):
+ITCL_SRC_DIR = @ITCL_SRC_DIR@
+
+# Itk libraries can be found here:
+ITK_LIB_DIR = @ITK_LIB_DIR@
+
+# Directory containing Itk source code (for library used during test):
+ITK_SRC_DIR = @ITK_SRC_DIR@
+
+# [incr Tk] build directory containing the itkwish binary for 'make test'
+ITK_BIN_DIR = ../../itk/unix
+
+# Some versions of make, like SGI's, use the following variable to
+# determine which shell to use for executing commands:
+SHELL = /bin/sh
+
+#----------------------------------------------------------------
+# The information below is modified by the configure script when
+# Makefile is generated from Makefile.in. You shouldn't normally
+# modify any of this stuff by hand.
+#----------------------------------------------------------------
+
+# CYGNUS LOCAL
+INSTALL = @INSTALL@
+# END CYGNUS LOCAL
+INSTALL_PROGRAM = $(INSTALL)
+INSTALL_DATA = $(INSTALL) -m 644
+INSTALL_SCRIPT = $(INSTALL) -m 555
+MKINSTALLDIRS = $(srcdir)/../config/mkinstalldirs
+RANLIB = @RANLIB@
+LN_S = ln -s
+TOP_DIR = $(srcdir)
+GENERIC_DIR = $(TOP_DIR)/generic
+UNIX_DIR = $(TOP_DIR)/unix
+
+CYGPATH = @CYGPATH@
+TCLSH_PROG = @TCLSH_PROG@
+
+#----------------------------------------------------------------
+# The information below should be usable as is. The configure
+# script won't modify it and you shouldn't need to modify it
+# either.
+#----------------------------------------------------------------
+
+all: binaries libraries doc
+
+binaries:
+
+libraries:
+
+doc:
+
+test:
+ LD_LIBRARY_PATH=$(TCL_LIB_DIR):$(TK_LIB_DIR):$(ITCL_LIB_DIR):$(ITK_LIB_DIR):$(LD_LIBRARY_PATH); export LD_LIBRARY_PATH ; \
+ TCL_LIBRARY=$(TCL_SRC_DIR)/library; export TCL_LIBRARY; \
+ ITCL_LIBRARY=$(ITCL_SRC_DIR)/library; export ITCL_LIBRARY; \
+ TK_LIBRARY=$(TK_SRC_DIR)/library; export TK_LIBRARY; \
+ ITK_LIBRARY=$(ITK_SRC_DIR)/library; export ITK_LIBRARY; \
+ $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/tests/all.tcl` \
+ -exedir `@CYGPATH@ $(bindir)` $(TESTFLAGS)
+
+testold: $(ITK_BIN_DIR)/itkwish
+ LD_LIBRARY_PATH=$(TCL_LIB_DIR):$(TK_LIB_DIR):$(ITCL_LIB_DIR):$(ITK_LIB_DIR):$(LD_LIBRARY_PATH); export LD_LIBRARY_PATH ; \
+ TCL_LIBRARY=$(TCL_SRC_DIR)/library; export TCL_LIBRARY; \
+ ITCL_LIBRARY=$(ITCL_SRC_DIR)/library; export ITCL_LIBRARY; \
+ TK_LIBRARY=$(TK_SRC_DIR)/library; export TK_LIBRARY; \
+ ITK_LIBRARY=$(ITK_SRC_DIR)/library; export ITK_LIBRARY; \
+ ( echo lappend auto_path $(TOP_DIR)/generic \; package provide Iwidgets $(VERSION) \; cd $(TOP_DIR)/tests\; source all\; exit ) | $(ITK_BIN_DIR)/itkwish
+
+static:
+
+standalone:
+
+plusplus:
+
+install: all install-binaries install-libraries install-doc
+
+install-binaries:
+
+install-libraries:
+ @$(MKINSTALLDIRS) $(SCRIPT_INSTALL_DIR) $(LIB_INSTALL_DIR)
+ @rm -f $(LIB_INSTALL_DIR)/iwidgets
+ $(LN_S) $(SCRIPT_INSTALL_DIR) $(LIB_INSTALL_DIR)/iwidgets
+ @$(MKINSTALLDIRS) $(SCRIPT_INSTALL_DIR)/scripts
+ @echo "Installing files from $(GENERIC_DIR) into $(SCRIPT_INSTALL_DIR)"
+ @for i in $(GENERIC_DIR)/*.tcl $(GENERIC_DIR)/*.itk $(GENERIC_DIR)/*.itcl $(GENERIC_DIR)/tclIndex $(GENERIC_DIR)/*.gif ; \
+ do \
+ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/scripts; \
+ done;
+ @echo "Installing iwidgets.tcl pkgIndex.tcl into $(SCRIPT_INSTALL_DIR)"
+ @for i in iwidgets.tcl pkgIndex.tcl ; \
+ do \
+ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
+ done;
+ $(MAKE) install-demos
+
+install-demos:
+ @$(MKINSTALLDIRS) $(SCRIPT_INSTALL_DIR)/demos/images $(SCRIPT_INSTALL_DIR)/demos/html
+ @echo "Installing demos from $(srcdir)/demos into $(SCRIPT_INSTALL_DIR)/demos"
+ @for i in $(srcdir)/demos/*; \
+ do \
+ if [ -f $$i ] ; then \
+ $(INSTALL_SCRIPT) $$i $(SCRIPT_INSTALL_DIR)/demos; \
+ fi; \
+ done;
+ @echo "Installing images from $(srcdir)/demos/images into $(SCRIPT_INSTALL_DIR)/demos/images"
+ for i in $(srcdir)/demos/images/*; \
+ do \
+ if [ -f $$i ] ; then \
+ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \
+ fi; \
+ done;
+ @echo "Installing html from $(srcdir)/demos/html into $(SCRIPT_INSTALL_DIR)/demos/html"
+ for i in $(srcdir)/demos/html/*; \
+ do \
+ if [ -f $$i ] ; then \
+ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/html; \
+ fi; \
+ done;
+
+install-doc:
+ @$(MKINSTALLDIRS) $(MANN_INSTALL_DIR)
+ @echo "Installing docs from $(TOP_DIR)/doc into $(MANN_INSTALL_DIR)"
+ @cd $(TOP_DIR)/doc; for i in *.n; \
+ do \
+ sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
+ $$i > $(MANN_INSTALL_DIR)/$$i; \
+ done;
+ $(INSTALL_DATA) $(srcdir)/license.terms $(SCRIPT_INSTALL_DIR)
+
+install-html:
+ @$(MKINSTALLDIRS) $(HTML_INSTALL_DIR)
+ @echo "Generating html from $(TOP_DIR)/doc into $(HTML_INSTALL_DIR)"
+ @cd $(TOP_DIR)/doc; for i in *.n; \
+ do \
+ $(TOP_DIR)/tk2html $(MANN_INSTALL_DIR)/$$i > $(HTML_INSTALL_DIR)/$$i.html; \
+ done;
+
+Makefile: $(srcdir)/Makefile.in
+ $(SHELL) config.status
+
+clean:
+ rm -f core errs *~ \#* TAGS *.E a.out errors
+
+distclean: clean
+ rm -f Makefile config.status config.cache config.log
+
+depend:
+ makedepend -- $(CC_SWITCHES) -- $(SRCS)
+
+configure: configure.in
+ autoconf
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/itcl/iwidgets3.0.0/README b/itcl/iwidgets3.0.0/README
index 36416d9553f..945928f0f9d 100644
--- a/itcl/iwidgets3.0.0/README
+++ b/itcl/iwidgets3.0.0/README
@@ -279,4 +279,3 @@
_/ _/ _/ _/ _/ _/ _/ ulferts@swbell.net
_/ _/_/ _/ _/ _/ _/ mulferts@austin.dsccc.com
_/ _/ _/ _/ _/_/_/ _/ _/_/_/_/ _/ DSC Communications Corp, Austin Texas
- ____________________________________________________________________________ \ No newline at end of file
diff --git a/itcl/iwidgets3.0.0/aclocal.m4 b/itcl/iwidgets3.0.0/aclocal.m4
new file mode 100644
index 00000000000..09bc09fa2b7
--- /dev/null
+++ b/itcl/iwidgets3.0.0/aclocal.m4
@@ -0,0 +1,2 @@
+builtin(include,../tcl.m4)
+builtin(include,../cygtcl.m4)
diff --git a/itcl/iwidgets3.0.0/configure b/itcl/iwidgets3.0.0/configure
new file mode 100755
index 00000000000..b693e8d0541
--- /dev/null
+++ b/itcl/iwidgets3.0.0/configure
@@ -0,0 +1,1281 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --with-tcl directory containing tcl configuration (tclConfig.sh)"
+ac_help="$ac_help
+ --with-tk directory containing tk configuration (tkConfig.sh)"
+ac_help="$ac_help
+ --with-itcl=DIR use Itcl 3.0 binaries from DIR"
+ac_help="$ac_help
+ --with-itk=DIR use Itk 3.0 binaries from DIR"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+sitefile=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --site-file=FILE use FILE as the site file
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
+ ac_prev=sitefile ;;
+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+ sitefile="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=generic/buttonbox.itk
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$sitefile"; then
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+ fi
+else
+ CONFIG_SITE="$sitefile"
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+# RCS: $Id$
+
+#--------------------------------------------------------------------
+# We should really cache the ITCL_VERSION when we configure itcl,
+# and pick up the version from the cache here.
+#--------------------------------------------------------------------
+
+ITCL_VERSION=3.2
+
+
+PACKAGE=iwidgets
+MAJOR_VERSION=3
+MINOR_VERSION=0
+PATCHLEVEL=.1
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}${PATCHLEVEL}
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../config $srcdir/../config; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in ../config $srcdir/../config" 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:597: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+case "`uname -s`" in
+ *win32* | *WIN32* | *CYGWIN_NT*|*CYGWIN_98*|*CYGWIN_95*)
+ CYGPATH="cygpath -w"
+ RELPATH=".. .. bin"
+ ;;
+ *)
+ CYGPATH=echo
+ RELPATH=..
+ ;;
+esac
+
+
+
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Tcl is; if
+# not, search for Tcl.
+#--------------------------------------------------------------------
+
+
+ #
+ # Ok, lets find the tcl configuration
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-tcl
+ #
+
+ if test x"${no_tcl}" = x ; then
+ # we reset no_tcl in case something fails here
+ no_tcl=true
+ # Check whether --with-tcl or --without-tcl was given.
+if test "${with_tcl+set}" = set; then
+ withval="$with_tcl"
+ with_tclconfig=${withval}
+fi
+
+ echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
+echo "configure:686: checking for Tcl configuration" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+
+ # First check to see if --with-tcl was specified.
+ if test x"${with_tclconfig}" != x ; then
+ if test -f "${with_tclconfig}/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+ else
+ { echo "configure: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" 1>&2; exit 1; }
+ fi
+ fi
+
+ # then check for a private Tcl installation
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ../tcl \
+ `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
+ ../../tcl \
+ `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
+ ../../../tcl \
+ `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few common install locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib 2>/dev/null` \
+ `ls -d /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few other private locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ${srcdir}/../tcl \
+ `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+fi
+
+
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ TCL_BIN_DIR="# no Tcl configs found"
+ { echo "configure: error: Can't find Tcl configuration definitions" 1>&2; exit 1; }
+ exit 0
+ else
+ no_tcl=
+ TCL_BIN_DIR=${ac_cv_c_tclconfig}
+ echo "$ac_t""found $TCL_BIN_DIR/tclConfig.sh" 1>&6
+ fi
+ fi
+
+
+ echo $ac_n "checking for existence of $TCL_BIN_DIR/tclConfig.sh""... $ac_c" 1>&6
+echo "configure:764: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
+
+ if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+ echo "$ac_t""loading" 1>&6
+ . $TCL_BIN_DIR/tclConfig.sh
+ else
+ echo "$ac_t""file not found" 1>&6
+ fi
+
+ #
+ # The eval is required to do the TCL_DBGX substitution in the
+ # TCL_LIB_FILE variable
+ #
+
+ eval TCL_LIB_FILE=${TCL_LIB_FILE}
+ eval TCL_LIB_FLAG=${TCL_LIB_FLAG}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Tk is; if
+# not, search for Tk.
+#--------------------------------------------------------------------
+
+
+ #
+ # Ok, lets find the tk configuration
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-tk
+ #
+
+ if test x"${no_tk}" = x ; then
+ # we reset no_tk in case something fails here
+ no_tk=true
+ # Check whether --with-tk or --without-tk was given.
+if test "${with_tk+set}" = set; then
+ withval="$with_tk"
+ with_tkconfig=${withval}
+fi
+
+ echo $ac_n "checking for Tk configuration""... $ac_c" 1>&6
+echo "configure:820: checking for Tk configuration" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_tkconfig'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+
+ # First check to see if --with-tkconfig was specified.
+ if test x"${with_tkconfig}" != x ; then
+ if test -f "${with_tkconfig}/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
+ else
+ { echo "configure: error: ${with_tkconfig} directory doesn't contain tkConfig.sh" 1>&2; exit 1; }
+ fi
+ fi
+
+ # then check for a private Tk library
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in \
+ ../tk \
+ `ls -dr ../tk[8-9].[0-9]* 2>/dev/null` \
+ ../../tk \
+ `ls -dr ../../tk[8-9].[0-9]* 2>/dev/null` \
+ ../../../tk \
+ `ls -dr ../../../tk[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few common install locations
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib 2>/dev/null` \
+ `ls -d /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few other private locations
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in \
+ ${srcdir}/../tk \
+ `ls -dr ${srcdir}/../tk[8-9].[0-9]* 2>/dev/null` ; do
+ if test -f "$i/unix/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+fi
+
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ TK_BIN_DIR="# no Tk configs found"
+ { echo "configure: error: Can't find Tk configuration definitions" 1>&2; exit 1; }
+ exit 0
+ else
+ no_tk=
+ TK_BIN_DIR=${ac_cv_c_tkconfig}
+ echo "$ac_t""found $TK_BIN_DIR/tkConfig.sh" 1>&6
+ fi
+ fi
+
+
+
+ echo $ac_n "checking for existence of $TK_BIN_DIR/tkConfig.sh""... $ac_c" 1>&6
+echo "configure:896: checking for existence of $TK_BIN_DIR/tkConfig.sh" >&5
+
+ if test -f "$TK_BIN_DIR/tkConfig.sh" ; then
+ echo "$ac_t""loading" 1>&6
+ . $TK_BIN_DIR/tkConfig.sh
+ else
+ echo "$ac_t""could not find $TK_BIN_DIR/tkConfig.sh" 1>&6
+ fi
+
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Itcl is; if
+# not, search for Itcl.
+#--------------------------------------------------------------------
+
+# Check whether --with-itcl or --without-itcl was given.
+if test "${with_itcl+set}" = set; then
+ withval="$with_itcl"
+ itcl_search=$withval
+else
+ itcl_search=`cd ${srcdir}/../itcl; pwd`
+fi
+
+
+ITCL_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+ if test -r $dir/library/itcl.tcl; then
+ ITCL_LIB_DIR=$dir
+ ITCL_SRC_DIR=$dir
+ break
+ fi
+done
+
+if test -z "$ITCL_LIB_DIR"; then
+ { echo "configure: error: Can't find Itcl libraries. Use --with-itcl to specify the directory containing itcl.tcl on your system." 1>&2; exit 1; }
+fi
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Itk is; if
+# not, search for Itk.
+#--------------------------------------------------------------------
+
+# Check whether --with-itk or --without-itk was given.
+if test "${with_itk+set}" = set; then
+ withval="$with_itk"
+ itk_search=$withval
+else
+ itk_search=`cd ${srcdir}/../itk; pwd`
+fi
+
+
+ITK_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itk_search ; do
+ if test -r $dir/library/itk.tcl; then
+ ITK_LIB_DIR=$dir
+ ITK_SRC_DIR=$dir
+ break
+ fi
+done
+
+if test -z "$ITK_LIB_DIR"; then
+ { echo "configure: error: Can't find Itk libraries. Use --with-itk to specify the directory containing itk.tcl on your system." 1>&2; exit 1; }
+fi
+
+#--------------------------------------------------------------------
+# Needed for running the test suite
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# Fill in template files with the proper info.
+#--------------------------------------------------------------------
+#AC_SUBST(BUILD_DIR)
+
+
+
+
+
+
+
+
+
+#AC_SUBST(ITCL_VERSION)
+#AC_SUBST(IWIDGETS_VERSION)
+#AC_SUBST(IWIDGETS_LIBRARY)
+#AC_SUBST(IWIDGETS_SRC_DIR)
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile \
+ iwidgets.tcl \
+ pkgIndex.tcl" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@ITCL_VERSION@%$ITCL_VERSION%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@CYGPATH@%$CYGPATH%g
+s%@RELPATH@%$RELPATH%g
+s%@TCL_DBGX@%$TCL_DBGX%g
+s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g
+s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
+s%@TCL_LIB_FILE@%$TCL_LIB_FILE%g
+s%@TCL_LIBS@%$TCL_LIBS%g
+s%@TCL_DEFS@%$TCL_DEFS%g
+s%@TCL_SHLIB_LD_LIBS@%$TCL_SHLIB_LD_LIBS%g
+s%@TCL_EXTRA_CFLAGS@%$TCL_EXTRA_CFLAGS%g
+s%@TCL_LD_FLAGS@%$TCL_LD_FLAGS%g
+s%@TCL_STUB_LIB_FILE@%$TCL_STUB_LIB_FILE%g
+s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g
+s%@TCL_BUILD_LIB_SPEC@%$TCL_BUILD_LIB_SPEC%g
+s%@TCL_STUB_LIB_SPEC@%$TCL_STUB_LIB_SPEC%g
+s%@TCL_BUILD_STUB_LIB_SPEC@%$TCL_BUILD_STUB_LIB_SPEC%g
+s%@TK_BIN_DIR@%$TK_BIN_DIR%g
+s%@TK_SRC_DIR@%$TK_SRC_DIR%g
+s%@TK_LIB_FILE@%$TK_LIB_FILE%g
+s%@TK_XINCLUDES@%$TK_XINCLUDES%g
+s%@TCL_LIB_DIR@%$TCL_LIB_DIR%g
+s%@TK_LIB_DIR@%$TK_LIB_DIR%g
+s%@ITCL_LIB_DIR@%$ITCL_LIB_DIR%g
+s%@ITCL_SRC_DIR@%$ITCL_SRC_DIR%g
+s%@ITK_LIB_DIR@%$ITK_LIB_DIR%g
+s%@ITK_SRC_DIR@%$ITK_SRC_DIR%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile \
+ iwidgets.tcl \
+ pkgIndex.tcl"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff --git a/itcl/iwidgets3.0.0/configure.in b/itcl/iwidgets3.0.0/configure.in
new file mode 100644
index 00000000000..44331b67ff9
--- /dev/null
+++ b/itcl/iwidgets3.0.0/configure.in
@@ -0,0 +1,131 @@
+dnl This file is an input file used by the GNU "autoconf" program to
+dnl generate the file "configure", which is run during [incr Tcl]
+dnl installation to configure the system for the local environment.
+
+AC_INIT(generic/buttonbox.itk)
+# RCS: $Id$
+
+#--------------------------------------------------------------------
+# We should really cache the ITCL_VERSION when we configure itcl,
+# and pick up the version from the cache here.
+#--------------------------------------------------------------------
+
+ITCL_VERSION=3.2
+AC_SUBST(ITCL_VERSION)
+
+PACKAGE=iwidgets
+MAJOR_VERSION=3
+MINOR_VERSION=0
+PATCHLEVEL=.1
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}${PATCHLEVEL}
+
+AC_SUBST(PACKAGE)
+AC_SUBST(VERSION)
+
+AC_CONFIG_AUX_DIR(../config)
+AC_PREREQ(2.0)
+
+AC_PROG_INSTALL
+
+case "`uname -s`" in
+ *win32* | *WIN32* | *CYGWIN_NT*|*CYGWIN_98*|*CYGWIN_95*)
+ CYGPATH="cygpath -w"
+ RELPATH=".. .. bin"
+ ;;
+ *)
+ CYGPATH=echo
+ RELPATH=..
+ ;;
+esac
+
+AC_SUBST(CYGPATH)
+AC_SUBST(RELPATH)
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Tcl is; if
+# not, search for Tcl.
+#--------------------------------------------------------------------
+
+SC_PATH_TCLCONFIG
+SC_LOAD_TCLCONFIG
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Tk is; if
+# not, search for Tk.
+#--------------------------------------------------------------------
+
+SC_PATH_TKCONFIG
+SC_LOAD_TKCONFIG
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Itcl is; if
+# not, search for Itcl.
+#--------------------------------------------------------------------
+
+AC_ARG_WITH(itcl, [ --with-itcl=DIR use Itcl 3.0 binaries from DIR],
+ itcl_search=$withval, itcl_search=`cd ${srcdir}/../itcl; pwd`)
+
+ITCL_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+ if test -r $dir/library/itcl.tcl; then
+ ITCL_LIB_DIR=$dir
+ ITCL_SRC_DIR=$dir
+ break
+ fi
+done
+
+if test -z "$ITCL_LIB_DIR"; then
+ AC_MSG_ERROR(Can't find Itcl libraries. Use --with-itcl to specify the directory containing itcl.tcl on your system.)
+fi
+
+#--------------------------------------------------------------------
+# See if there was a command-line option for where Itk is; if
+# not, search for Itk.
+#--------------------------------------------------------------------
+
+AC_ARG_WITH(itk, [ --with-itk=DIR use Itk 3.0 binaries from DIR],
+ itk_search=$withval, itk_search=`cd ${srcdir}/../itk; pwd`)
+
+ITK_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itk_search ; do
+ if test -r $dir/library/itk.tcl; then
+ ITK_LIB_DIR=$dir
+ ITK_SRC_DIR=$dir
+ break
+ fi
+done
+
+if test -z "$ITK_LIB_DIR"; then
+ AC_MSG_ERROR(Can't find Itk libraries. Use --with-itk to specify the directory containing itk.tcl on your system.)
+fi
+
+#--------------------------------------------------------------------
+# Needed for running the test suite
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+dnl SC_PROG_TCLSH
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+# Fill in template files with the proper info.
+#--------------------------------------------------------------------
+#AC_SUBST(BUILD_DIR)
+AC_SUBST(TCL_LIB_DIR)
+AC_SUBST(TCL_SRC_DIR)
+AC_SUBST(TK_LIB_DIR)
+AC_SUBST(TK_SRC_DIR)
+AC_SUBST(ITCL_LIB_DIR)
+AC_SUBST(ITCL_SRC_DIR)
+AC_SUBST(ITK_LIB_DIR)
+AC_SUBST(ITK_SRC_DIR)
+
+#AC_SUBST(ITCL_VERSION)
+#AC_SUBST(IWIDGETS_VERSION)
+#AC_SUBST(IWIDGETS_LIBRARY)
+#AC_SUBST(IWIDGETS_SRC_DIR)
+
+AC_OUTPUT(Makefile \
+ iwidgets.tcl \
+ pkgIndex.tcl)
diff --git a/itcl/iwidgets3.0.0/demos/canvasprintbox b/itcl/iwidgets3.0.0/demos/canvasprintbox
new file mode 100644
index 00000000000..3ee0da26ece
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/canvasprintbox
@@ -0,0 +1,24 @@
+#!/bin/sh
+# \
+ exec itkwish "$0" ${1+"$@"}
+
+package require Iwidgets 3.0
+
+# itkwish interprets the rest...
+# ----------------------------------------------------------------------
+option add *textBackground seashell
+
+#
+# Make a canvas for the main application:
+#
+canvas .c -width 200 -height 200 -background white
+
+.c create rectangle 30 30 150 150 -fill blue
+.c create oval 70 70 190 190 -fill red
+.c create polygon 60 50 110 180 10 180 -fill green
+.c create text 100 5 -anchor n -text "Example Drawing"
+
+iwidgets::canvasprintbox .pcb -printcmd "lpr" -pagesize "A4"
+
+.pcb setcanvas .c
+
diff --git a/itcl/iwidgets3.0.0/demos/catalog b/itcl/iwidgets3.0.0/demos/catalog
new file mode 100644
index 00000000000..b0c19776867
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/catalog
@@ -0,0 +1,409 @@
+#!/bin/sh
+# ----------------------------------------------------------------------
+# PROGRAM: demo program for [incr Widgets]
+# ----------------------------------------------------------------------
+# Michael J. McLennan
+# Bell Labs Innovations for Lucent Technologies
+# mmclennan@lucent.com
+# http://www.tcltk.com/itcl/
+# ======================================================================
+# Copyright (c) 1993-1998 Lucent Technologies, Inc.
+# ======================================================================
+#\
+exec itkwish3.0 "$0"
+
+package require Itcl
+package require Itk
+package require Iwidgets 3.0
+
+# everything else is executed by itkwish...
+# ----------------------------------------------------------------------
+option add *Scrolledtext.textBackground white startupFile
+option add *Scrolledlistbox.textBackground white startupFile
+option add *Scrolledhtml.textBackground white startupFile
+option add *Scrolledhtml.padX 10 startupFile
+option add *boxColor blue startupFile
+option add *boxTextColor white startupFile
+
+# ----------------------------------------------------------------------
+# USAGE: iw_demo_file <name>
+#
+# Returns the proper demo file name for a demo called <name>.
+# ----------------------------------------------------------------------
+proc iw_demo_file {name} {
+ global iwidgets::library
+ return [file join $library demos $name]
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_demo_manpage <name>
+#
+# Returns the proper man page file for a demo called <name>.
+# ----------------------------------------------------------------------
+proc iw_demo_manpage {name} {
+ global iwidgets::library
+ return [file join $library demos html $name.n.html]
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_load_demo <name>
+#
+# Loads a demo program with the given <name>. Demos can be written
+# as if they will pop up in the main application window, but they will
+# pop up inside the tab notebook instead.
+# ----------------------------------------------------------------------
+proc iw_load_demo {name} {
+ global widgets
+
+ catch {eval destroy [winfo children $widgets(info-example)]}
+ iw_lock on
+ iw_status "Loading..."
+
+ set win [frame $widgets(info-example).inner]
+ pack $win -expand yes
+
+ set loadcmd {
+ set fid [open [iw_demo_file $name] r]
+ set code [read $fid]
+ close $fid
+ }
+ if {[catch $loadcmd result] == 0} {
+ regsub -all "(\"|\{|\\\[| |\n|^|\t)((\\.\[A-Za-z0-9\]+)+)" \
+ $code "\\1$win\\2" code
+ regsub -all "(\"|\{|\\\[| |\n|^)(\\. )" \
+ $code "\\1$win " code
+ if {[catch {uplevel #0 $code} result] == 0} {
+ $widgets(info-code) clear
+ $widgets(info-code) import [iw_demo_file $name]
+ iw_draw_hier $name
+ iw_load_manpage $name
+ iw_lock off
+ iw_status ""
+ return
+ }
+ }
+ catch {eval destroy [winfo children $win]}
+ label $win.err -background white -wraplength 4i \
+ -text "Can't load demo:\n$result"
+ pack $win.err -expand yes
+ iw_lock off
+ iw_status ""
+}
+
+# overload a few critical functions that might be used by demo programs...
+rename exit tcl_exit
+proc exit {{status 0}} {
+ # do nothing
+}
+
+rename puts tcl_puts
+proc puts {args} {
+ global widgets
+ if {[llength $args] == 1} {
+ iw_status [lindex $args 0]
+ } else {
+ eval tcl_puts $args
+ }
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_load_manpage
+#
+# Loads the man page for the current demo. Man pages are not
+# automatically loaded unless the man page viewer is visible.
+# This procedure checks to see if the viewer is visible, and loads
+# the man page if needed.
+# ----------------------------------------------------------------------
+set iwManPage ""
+proc iw_load_manpage {{name ""}} {
+ global widgets iwManPage
+
+ if {[winfo ismapped $widgets(info-manpage)]} {
+ if {$name == ""} {
+ set name [$widgets(list) getcurselection]
+ }
+ if {$name != $iwManPage} {
+ iw_lock on
+ iw_status "Loading man page..."
+ $widgets(info-manpage) import [iw_demo_manpage $name]
+ iw_lock off
+ iw_status ""
+ place forget $widgets(info-manpage-feedback)
+ }
+ set iwManPage $name
+ }
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_manpage_progress
+#
+# Handles the progress meter whenever an HTML man page is rendered.
+# If the progress meter is not showing, it is put up, and the current
+# state is updated. If the meter is at 100%, it is taken down.
+# ----------------------------------------------------------------------
+proc iw_manpage_progress {n} {
+ global widgets remaining
+
+ if {![winfo ismapped $widgets(info-manpage-feedback)]} {
+ $widgets(info-manpage-feedback) configure -steps $n
+ $widgets(info-manpage-feedback) reset
+ place $widgets(info-manpage-feedback) -relx 0.5 -rely 0.5 \
+ -anchor c -width 200
+ update
+ set remaining $n
+ }
+
+ $widgets(info-manpage-feedback) step [expr $remaining - $n]
+ set remaining $n
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_status <message>
+#
+# Displays a status <message> near the top of the window.
+# ----------------------------------------------------------------------
+proc iw_status {message} {
+ global widgets
+ $widgets(status) configure -text $message
+ update
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_lock <state>
+#
+# Locks or unlocks the main window. Sets a grab on the main menu,
+# so that all events are sent to it.
+# ----------------------------------------------------------------------
+proc iw_lock {state} {
+ global widgets
+ if {$state} {
+ grab set $widgets(mainMenu)
+ . configure -cursor watch
+ } else {
+ grab release $widgets(mainMenu)
+ . configure -cursor ""
+ }
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_draw_hier <name>
+#
+# Queries the hierarchy for a particular class in demo <name> and
+# draws a class diagram into a display window. Usually invoked when
+# a demo is loaded to display the class hierarchy for the associated
+# widget.
+# ----------------------------------------------------------------------
+proc iw_draw_hier {name} {
+ global widgets
+ set canv $widgets(info-hier)
+ $canv delete all
+
+ set class [string toupper [string index $name 0]][string tolower [string range $name 1 end]]
+
+ if {[catch [list namespace eval iwidgets [list itcl::find classes $class]]] == 0} {
+ set objs [namespace eval iwidgets [list itcl::find objects -class $class]]
+ if {[llength $objs]} {
+ update idletasks
+ set bases [[lindex $objs 0] info heritage]
+ iw_draw_level [lrange $bases 1 end] $canv [lindex $bases 0]
+ set bbox [$canv bbox all]
+
+ $canv move all [expr [lindex $bbox 0] * -1] [expr [lindex $bbox 1] * -1]
+
+ $canv xview moveto 0
+ $canv yview moveto 0
+
+ set bbox [$canv bbox all]
+ set x [expr ([winfo width $widgets(info)] / 2) - ([lindex $bbox 2] / 2)]
+ set y 10
+ $canv move all $x $y
+ }
+ }
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_draw_level <bases> <canv> <class>
+#
+# Draws one level of the hierarchy for <class>.
+# ----------------------------------------------------------------------
+proc iw_draw_level {bases canv class} {
+ set org [iw_draw_box $canv $class]
+ set top $org
+
+ set offset 0
+
+ if {[llength $bases]} {
+ $canv lower [$canv create line $offset $org \
+ $offset [expr $top-10] \
+ -40 [expr $top-10] \
+ -24 [expr $top-10] \
+ -20 [expr $top-16] \
+ -16 [expr $top-10] \
+ -20 [expr $top-16] \
+ -20 [expr $top-26]]
+ $canv move all 20 [expr -($top-26+$org)]
+
+ set del [iw_draw_level [lrange $bases 1 end] $canv [lindex $bases 0]]
+ $canv move all -20 [expr $top-26+$org]
+ set top [expr $top+$del-30+$org]
+ incr offset 4
+ }
+
+ return $top
+}
+
+# ----------------------------------------------------------------------
+# USAGE: iw_draw_box <canv> <class>
+#
+# Draws one box for a class hierarchy onto a canvas window.
+# ----------------------------------------------------------------------
+proc iw_draw_box {canv class} {
+ set bg [option get $canv boxColor BoxColor]
+ set textbg [option get $canv boxTextColor BoxTextColor]
+
+ set cname [string trimleft $class :]
+ $canv create text 0 0 -anchor center -text $cname \
+ -fill $textbg -tags $class
+
+ set bbox [$canv bbox $class]
+ set x0 [expr [lindex $bbox 0]-4]
+ set y0 [expr [lindex $bbox 1]-4]
+ set x1 [expr [lindex $bbox 2]+4]
+ set y1 [expr [lindex $bbox 3]+4]
+
+ $canv create rectangle $x0 $y0 $x1 $y1 \
+ -outline black -fill $bg
+
+ $canv raise $class
+
+ return $y0
+}
+
+# ----------------------------------------------------------------------
+wm title . {[incr Widgets] Demo}
+wm geometry . 750x440
+
+frame .mbar -borderwidth 2 -relief raised
+pack .mbar -fill x
+set widgets(mainMenu) [menubutton .mbar.main -text "Main" -menu .mbar.main.m]
+pack .mbar.main -side left
+
+menu .mbar.main.m
+.mbar.main.m add command -label "About..." -command {.about activate}
+.mbar.main.m add separator
+.mbar.main.m add command -label "Quit" -command tcl_exit
+
+iwidgets::panedwindow .pw -orient vertical
+pack .pw -expand yes -fill both
+
+.pw add "widgets"
+set pane [.pw childsite "widgets"]
+set widgets(list) $pane.wlist
+
+iwidgets::scrolledlistbox $widgets(list) -labeltext "Select a widget:" \
+ -selectioncommand {iw_load_demo [$widgets(list) getcurselection]} \
+ -labelpos nw -vscrollmode dynamic -hscrollmode none \
+ -exportselection no
+pack $widgets(list) -expand yes -fill both -padx 8
+
+.pw add "info"
+set pane [.pw childsite "info"]
+set widgets(info) $pane.info
+
+.pw fraction 25 75
+
+set widgets(status) [label $pane.status]
+pack $pane.status -anchor w
+
+iwidgets::tabnotebook $widgets(info) -tabpos s
+pack $widgets(info) -expand yes -fill both
+
+set widgets(info-example) [$widgets(info) add -label "Example"]
+$widgets(info-example) configure -background white
+
+set win [$widgets(info) add -label "Example Code"]
+set widgets(info-code) [iwidgets::scrolledtext $win.code \
+ -wrap none -vscrollmode dynamic -hscrollmode none]
+pack $widgets(info-code) -expand yes -fill both -padx 4 -pady 4
+
+set win [$widgets(info) add -label "Inheritance"]
+set widgets(info-hier) [iwidgets::scrolledcanvas $win.canv -textbackground white \
+ -vscrollmode dynamic -hscrollmode dynamic]
+pack $widgets(info-hier) -expand yes -fill both -padx 4 -pady 4
+
+set win [$widgets(info) add -label "Man Page"]
+set widgets(info-manpage) [iwidgets::scrolledhtml $win.html \
+ -wrap word -vscrollmode dynamic -hscrollmode none \
+ -feedback "iw_manpage_progress" \
+ -linkcommand "$win.html import -link"]
+pack $widgets(info-manpage) -expand yes -fill both -padx 4 -pady 4
+
+set widgets(info-manpage-feedback) [iwidgets::feedback $win.html.fb \
+ -borderwidth 2]
+
+bind $widgets(info-manpage) <Map> {iw_load_manpage}
+
+$widgets(info) select "Example"
+
+# ----------------------------------------------------------------------
+# "About" window
+# ----------------------------------------------------------------------
+iwidgets::dialog .about -title {About: [incr Widgets] Demo} -modality none
+.about hide "Apply"
+.about hide "Help"
+.about hide "Cancel"
+.about buttonconfigure "OK" -command ".about deactivate"
+.about default "OK"
+
+set win [.about childsite]
+label $win.title -text {[incr Widgets]}
+pack $win.title
+catch {$win.title configure -font -*-helvetica-bold-o-normal-*-*-180-*}
+
+set file [file join ${iwidgets::library} demos iwidgets.gif]
+label $win.icon -image [image create photo -file $file]
+pack $win.icon -side left
+
+label $win.by -text "Contributed By"
+pack $win.by
+catch {$win.by configure -font -*-helvetica-medium-r-normal-*-*-100-*}
+
+label $win.authors -text "Mark L. Ulferts
+Sue Yockey
+John Sigler
+Bill Scott
+Alfredo Jahn
+Tako Schotanus
+Kris Raney
+John Tucker,
+Mitch Gorman
+John Reekie
+Ken Copeland
+Tony Parent
+and
+Michael McLennan
+"
+pack $win.authors
+catch {$win.authors configure -font -*-helvetica-medium-o-normal-*-*-120-*}
+
+# ----------------------------------------------------------------------
+# Load up a list of demos...
+# ----------------------------------------------------------------------
+foreach file [lsort [glob [file join ${iwidgets::library} demos *]]] {
+ set name [file tail $file]
+ if {![file isdirectory $file] && ![string match *.* $name]
+ && ![string match catalog $name]
+ && ![string match scopedobject $name]} {
+ if {$name == "mainwindow"} {
+ # This demo is doesn't work well with the catalog
+ # so we skip it.
+
+ continue
+ }
+ $widgets(list) insert end $name
+ }
+}
+$widgets(list) selection set 0
+uplevel #0 [$widgets(list) cget -selectioncommand]
+
+
diff --git a/itcl/iwidgets3.0.0/demos/feedback b/itcl/iwidgets3.0.0/demos/feedback
index 3241b2f7c40..25bad8ca4b9 100644
--- a/itcl/iwidgets3.0.0/demos/feedback
+++ b/itcl/iwidgets3.0.0/demos/feedback
@@ -8,19 +8,16 @@ package require Iwidgets 3.0
# itkwish interprets the rest...
# ----------------------------------------------------------------------
+. configure -background white
-frame .f -width 200 -height 100
-pack propagate .f no
-
-iwidgets::feedback .f.fb -labeltext "Status" -steps 22
-pack .f.fb -padx 4 -pady 4 -fill both -expand yes
+iwidgets::feedback .fb -labeltext "Status" -steps 22
+pack .fb -padx 4 -pady 4
button .go -text "Go" -command {
- .f.fb reset
+ .fb reset
for {set i 0} {$i < 22} {incr i} {
- .f.fb step
+ .fb step
after 100
}
}
-pack .f
pack .go -padx 4 -pady 4
diff --git a/itcl/iwidgets3.0.0/demos/html/buttonbox.n.html b/itcl/iwidgets3.0.0/demos/html/buttonbox.n.html
index 33211248355..a397b84818a 100644
--- a/itcl/iwidgets3.0.0/demos/html/buttonbox.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/buttonbox.n.html
@@ -1,245 +1,217 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - buttonbox</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - buttonbox</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- buttonbox - Create and manipulate a manager widget for but-
- tons
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>buttonbox</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- buttonbox
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>orient</STRONG>
- Class: <STRONG>Orient</STRONG>
- Command-Line Switch: <STRONG>-orient</STRONG>
-
- Orientation of the button box: <STRONG>horizontal</STRONG> or <STRONG>vertical</STRONG>.
- The default is horizontal.
-
- Name: <STRONG>padX</STRONG>
- Class: <STRONG>PadX</STRONG>
- Command-Line Switch: <STRONG>-padx</STRONG>
-
- Specifies a non-negative padding distance to leave
- between the button group and the outer edge of the but-
- ton box in the x direction. The value may be given in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 5 pixels.
-
- Name: <STRONG>padY</STRONG>
- Class: <STRONG>PadY</STRONG>
- Command-Line Switch: <STRONG>-pady</STRONG>
-
- Specifies a non-negative padding distance to leave
- between the button group and the outer edge of the but-
- ton box in the y direction. The value may be given in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 5 pixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>buttonbox</STRONG> command creates a manager widget for control-
- ling buttons. The button box also supports the display and
- invocation of a default button. The button box can be con-
- figured either horizontally or vertically.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>buttonbox</STRONG> command creates a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- Many of the widget commands for the buttonbox take as one
- argument an indicator of which button of the button box to
- operate on. These indicators are called <EM>indexes</EM> and allow
- reference and manipulation of buttons regardless of their
- current map state. buttonbox indexes may be specified in
- any of the following forms:
-
- <EM>number</EM> Specifies the button numerically, where 0
- corresponds to the left/top-most button of the
- button box.
-
- <STRONG>end</STRONG> Indicates the right/bottom-most button of the
- button box.
-
- <STRONG>default</STRONG> Indicates the current default button of the but-
- ton box. This is the button with the default
- ring displayed.
-
- <EM>pattern</EM> If the index doesn't satisfy one of the above
- forms then this form is used. <EM>Pattern</EM> is
- pattern-matched against the tag of each button
- in the button box, in order from left/top to
- right/left, until a matching entry is found.
- The rules of <STRONG>Tcl_StringMatch</STRONG> are used.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>add</STRONG> <EM>tag</EM> <EM>args</EM>
- Add a button distinguished by <EM>tag</EM> to the end of the
- button box. If additional arguments are present they
- specify options to be applied to the button. See <STRONG>Push-</STRONG>
- <STRONG>Button</STRONG> for information on the options available.
-
- <EM>pathName</EM> <STRONG>buttonconfigure</STRONG> <EM>index</EM> ?<EM>options</EM>?
- This command is similar to the <STRONG>configure</STRONG> command,
- except that it applies to the options for an individual
- button, whereas <STRONG>configure</STRONG> applies to the options for
- the button box as a whole. <EM>Options</EM> may have any of the
- values accepted by the <STRONG>PushButton</STRONG> command. If <EM>options</EM>
- are specified, options are modified as indicated in the
- command and the command returns an empty string. If no
- <EM>options</EM> are specified, returns a list describing the
- current options for entry <EM>index</EM> (see <STRONG>Tk_ConfigureInfo</STRONG>
- for information on the format of this list).
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>buttonbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>buttonbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>default</STRONG> <EM>index</EM>
- Sets the default button to the button given by <EM>index</EM>.
- This causes the default ring to appear arround the
- specified button.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>index</EM>
- Deletes the button given by <EM>index</EM> from the button box.
-
- <EM>pathName</EM> <STRONG>hide</STRONG> <EM>index</EM>
- Hides the button denoted by <EM>index</EM>. This doesn't remove
- the button permanently, just inhibits its display.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the numerical index corresponding to <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>index</EM> <EM>tag</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Same as the <STRONG>add</STRONG> command except that it inserts the new
- button just before the one given by <EM>index</EM>, instead of
- appending to the end of the button box. The <EM>option</EM>,
- and <EM>value</EM> arguments have the same interpretation as for
- the <STRONG>add</STRONG> widget command.
-
- <EM>pathName</EM> <STRONG>invoke</STRONG> ?<EM>index</EM>?
- Invoke the command associated with a button. If no
- arguments are given then the current default button is
- invoked, otherwise the argument is expected to be a
- button <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>show</STRONG> <EM>index</EM>
- Display a previously hidden button denoted by <EM>index</EM>.
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- buttonbox .bb
-
- .bb add Yes -text Yes -command "puts Yes"
- .bb add No -text No -command "puts No"
- .bb add Maybe -text Maybe -command "puts Maybe"
- .bb default Yes
-
- pack .bb -expand yes -fill both
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Bret A. Schuhmacher
-
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- buttonbox, pushbutton, button, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>buttonbox - Create and manipulate a manager widget for buttons</TITLE>
+<H1>buttonbox - Create and manipulate a manager widget for buttons</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>buttonbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- buttonbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>orient</B>
+Class: <B>Orient</B>
+Command-Line Switch: <B>-orient</B>
+</pre>
+<UL>
+Orientation of the button box: <B>horizontal</B> or <B>vertical</B>. The default
+is horizontal.
+</UL>
+<P>
+<pre>
+Name: <B>padX</B>
+Class: <B>PadX</B>
+Command-Line Switch: <B>-padx</B>
+</pre>
+<UL>
+Specifies a non-negative padding distance to leave between the button group and
+the outer edge of the button box in the x direction. The value may be
+given in any of the forms acceptable to <B>Tk_GetPixels</B>. The default
+is 5 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>padY</B>
+Class: <B>PadY</B>
+Command-Line Switch: <B>-pady</B>
+</pre>
+<UL>
+Specifies a non-negative padding distance to leave between the button group and
+the outer edge of the button box in the y direction. The value may be given
+in any of the forms acceptable to <B>Tk_GetPixels</B>. The default is 5 pixels.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>buttonbox</B> command creates a manager widget for controlling
+buttons. The button box also supports the display and invocation
+of a default button. The button box can be configured either horizontally
+or vertically.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>buttonbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for the buttonbox take as one argument an
+indicator of which button of the button box to operate on. These
+indicators are called <I>indexes</I> and allow reference and manipulation
+of buttons regardless of their current map state. buttonbox indexes
+may be specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the button numerically, where 0 corresponds to the
+left/top-most button of the button box.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Indicates the right/bottom-most button of the button box.
+</DL>
+<DL>
+<DT> <B>default</B>
+</I></B>
+<DD> Indicates the current default button of the button box. This is the
+button with the default ring displayed.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy one of the above forms then this
+form is used. <I>Pattern</I> is pattern-matched against the tag of
+each button in the button box, in order from left/top to right/left,
+until a matching entry is found. The rules of <B>Tcl_StringMatch</B>
+are used.
+
+</DL>
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>add</B> <I>tag</I> <I>args</I>
+</I></B>
+<DD> Add a button distinguished by <I>tag</I> to the end of the button box.
+If additional arguments are present they specify options to be applied
+to the button. See <B>PushButton</B> for information on the options
+available.
+</DL>
+<DL>
+<DT> <I>pathName <B>buttonconfigure</B> <I>index</I> ?<I>options</I>?
+</I></B>
+<DD> This command is similar to the <B>configure</B> command, except that
+it applies to the options for an individual button,
+whereas <B>configure</B> applies to the options for the button box as a whole.
+<I>Options</I> may have any of the values accepted by the <B>PushButton</B>
+command. If <I>options</I> are specified, options are modified
+as indicated in the command and the command returns an empty string.
+If no <I>options</I> are specified, returns a list describing
+the current options for entry <I>index</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list).
+</DL>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>buttonbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>buttonbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>default</B> <I>index</I>
+</I></B>
+<DD> Sets the default button to the button given by <I>index</I>. This causes
+the default ring to appear arround the specified button.
+</DL>
+<DL>
+<DT> <I>pathName <B>delete</B> <I>index</I>
+</I></B>
+<DD> Deletes the button given by <I>index</I> from the button box.
+</DL>
+<DL>
+<DT> <I>pathName <B>hide</B> <I>index</I>
+</I></B>
+<DD> Hides the button denoted by <I>index</I>. This doesn't remove the button
+permanently, just inhibits its display.
+</DL>
+<DL>
+<DT> <I>pathName <B>index <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>insert <I>index</I> <I>tag</I> ?<I>option value option value ...</I>?
+</I></B>
+<DD> Same as the <B>add</B> command except that it inserts the new
+button just before the one given by <I>index</I>, instead of appending
+to the end of the button box. The <I>option</I>, and <I>value</I>
+arguments have the same interpretation as for the <B>add</B> widget
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>invoke</B> <I>?index?</I>
+</I></B>
+<DD> Invoke the command associated with a button. If no arguments
+are given then the current default button is invoked, otherwise the argument
+is expected to be a button <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>show</B> <I>index</I>
+</I></B>
+<DD> Display a previously hidden button denoted by <I>index</I>.
+</DL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ buttonbox .bb
+
+ .bb add Yes -text Yes -command "puts Yes"
+ .bb add No -text No -command "puts No"
+ .bb add Maybe -text Maybe -command "puts Maybe"
+ .bb default Yes
+
+ pack .bb -expand yes -fill both
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:bas@wn.com">Bret A. Schuhmacher</A>
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+buttonbox, pushbutton, button, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/calendar.n.html b/itcl/iwidgets3.0.0/demos/html/calendar.n.html
new file mode 100644
index 00000000000..39f17ed44cb
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/calendar.n.html
@@ -0,0 +1,352 @@
+<TITLE>calendar - Create and manipulate a monthly calendar</TITLE>
+<H1>calendar - Create and manipulate a monthly calendar</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>calendar<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- calendar
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>backwardImage</B>
+Class: <B>Image</B>
+Command-Line Switch: <B>-backwardimage</B>
+</pre>
+<UL>
+Specifies a image to be displayed on the backwards calendar
+button. This image must have been created previously with
+the <B>image create</B> command. If none is specified, a default
+is provided.
+</UL>
+<P>
+<pre>
+Name: <B>buttonForeground</B>
+Class: <B>Foreground</B>
+Command-Line Switch: <B>-buttonforeground</B>
+</pre>
+<UL>
+Specifies the foreground color of the forward and backward buttons
+in any of the forms acceptable to <B>Tk_GetColor</B>. The default
+color is blue.
+</UL>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+</pre>
+<UL>
+Specifies a Tcl script to executed upon selection of a date in the
+calendar. If the command script contains any <B>%</B> characters,
+then the script will not be executed directly. Instead, a new
+script will be generated by replacing each <B>%</B>, and the
+character following it, with information from the calendar. The
+replacement depends on the character following the <B>%</B>, as
+defined in the list below.
+</UL>
+<DL>
+<DT> <B>%d</B>
+</I></B>
+<DD> Replaced with the date selected in the format mm/dd/yyyy.
+</DL>
+<P>
+<pre>
+Name: <B>currentDateFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-currentdatefont</B>
+</pre>
+<UL>
+Specifies the font used for the current date text in any of the forms
+acceptable to <B>Tk_GetFont</B>.
+</UL>
+<P>
+<pre>
+Name: <B>dateFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-datefont</B>
+</pre>
+<UL>
+Specifies the font used for the days of the month text in any of the forms
+acceptable to <B>Tk_GetFont</B>.
+</UL>
+<P>
+<pre>
+Name: <B>dayFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-dayfont</B>
+</pre>
+<UL>
+Specifies the font used for the days of the week text in any of the forms
+acceptable to <B>Tk_GetFont</B>.
+</UL>
+<P>
+<pre>
+Name: <B>days</B>
+Class: <B>days</B>
+Command-Line Switch: <B>-days</B>
+</pre>
+<UL>
+Specifies a list of values to be used for the days of the week
+text to displayed above the days of the month. The default value
+is {Su Mo Tu We Th Fr Sa}.
+</UL>
+<P>
+<pre>
+Name: <B>forewardImage</B>
+Class: <B>Image</B>
+Command-Line Switch: <B>-forewardimage</B>
+</pre>
+<UL>
+Specifies a image to be displayed on the forewards calendar
+button. This image must have been created previously with
+the <B>image create</B> command. If none is specified, a default
+is provided.
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies a desired window height that the calendar widget should
+request from its geometry manager. The value may be specified in any
+of the forms acceptable to <B>Tk_GetPixels</B>. The default height
+is 165 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>outline</B>
+Class: <B>Outline</B>
+Command-Line Switch: <B>-outline</B>
+</pre>
+<UL>
+Specifies the outline color used to surround the days of the month text in
+any of the forms acceptable to <B>Tk_GetColor</B>. The default is the
+same color as the background.
+</UL>
+<P>
+<pre>
+Name: <B>selectColor</B>
+Class: <B>Foreground</B>
+Command-Line Switch: <B>-selectcolor</B>
+</pre>
+<UL>
+Specifies the color of the ring displayed that distinguishes the
+currently selected date in any of the forms acceptable to
+<B>Tk_GetColor</B>. The default is red.
+</UL>
+<P>
+<pre>
+Name: <B>selectThickness</B>
+Class: <B>SelectThickness</B>
+Command-Line Switch: <B>-selectthickness</B>
+</pre>
+<UL>
+Specifies the thickness of the ring displayed that distinguishes
+the currently selected date. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>startday</B>
+Class: <B>Day</B>
+Command-Line Switch: <B>-startday</B>
+</pre>
+<UL>
+Specifies the starting day for the week: <B>sunday</B>, <B>monday</B>,
+<B>tuesday</B>, <B>wednesday</B>, <B>thursday</B>, <B>friday</B>, or
+<B>saturday</B>. The default is sunday.
+</UL>
+<P>
+<pre>
+Name: <B>titleFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-titlefont</B>
+</pre>
+<UL>
+Specifies the font used for the title text which consists of the
+month and year. The font may be given in any of the forms
+acceptable to <B>Tk_GetFont</B>.
+</UL>
+<P>
+<pre>
+Name: <B>weekdayBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-weekdaybackground</B>
+</pre>
+<UL>
+Specifies the background color for the weekdays which allows it to
+be visually distinguished from the weekend. The color may be given
+in any of the forms acceptable to <B>Tk_GetColor</B>. The default is
+the same as the background.
+</UL>
+<P>
+<pre>
+Name: <B>weekendBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-weekendbackground</B>
+</pre>
+<UL>
+Specifies the background color for the weekends which allows it to
+be visually distinguished from the weekdays. The color may be given
+in any of the forms acceptable to <B>Tk_GetColor</B>. The default is
+the same as the background.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies a desired window width that the calendar widget should
+request from its geometry manager. The value may be specified in any
+of the forms acceptable to <B>Tk_GetPixels</B>. The default width
+is 200 pixels.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>calendar</B> command creates a calendar widget for the selection
+of a date, displaying a single month at a time. Buttons exist on the
+top to change the month in effect turning the pages of a calendar. As
+a page is turned, the dates for the month are modified. Selection of
+a date visually marks that date. The selected value can be monitored
+via the -command option or just retrieved using the get command.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>calendar</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for calendar widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>calendar</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>calendar</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B> ?<B>format</B>?
+</I></B>
+<DD> Returns the currently selected date in a format of
+string or as an integer clock value using the <B>-string</B> and <B>-clicks</B>
+format options respectively. The default is by string. Reference the
+clock command for more information on obtaining dates and their
+formats.
+</DL>
+<DL>
+<DT> <I>pathName <B>select</B> <I>date</I>
+</I></B>
+<DD> Changes the currently selected date to the value specified which
+must be in the form of a date string, an integer clock value or as
+the keyword "now". Reference the clock
+command for more information on obtaining dates and their formats.
+Note that selecting a date does not change the
+month being shown to that of the date given. This chore is left
+to the <B>show\R command.
+</DL>
+<DL>
+<DT> <I>pathName <B>show</B> <I>date</I>
+</I></B>
+<DD> Changes the currently displayed date to be that of the date
+argument which must be in the form of a date string, an
+integer clock value or as
+the keyword "now". Reference the clock
+command for more information on obtaining dates and their formats.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>forward</B>
+Class: <B>Button</B>
+</pre>
+<UL>
+The forward component provides the button on the upper right of the
+calendar that changes the month to be the next. See the "button"
+widget manual entry for details on the forward component item.
+</UL>
+<P>
+<pre>
+Name: <B>page</B>
+Class: <B>Canvas</B>
+</pre>
+<UL>
+The page component provides the canvas on which the title, days of the
+week, and days of the month appear. See the "canvas" widget manual
+entry for details on the page component item.
+</UL>
+<P>
+<pre>
+Name: <B>backward</B>
+Class: <B>Button</B>
+</pre>
+<UL>
+The backward component provides the button on the upper right of the
+calendar that changes the month to be the next. See the "button"
+widget manual entry for details on the backward component item.
+
+</UL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ proc selectCmd {date} {
+ puts $date
+ }
+
+ calendar .c -command {selectCmd %d} -weekendbackground mistyrose \\
+ -weekdaybackground ghostwhite -outline black \\
+ -startday wednesday -days {We Th Fr Sa Su Mo Tu}
+ pack .c
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre>
+Michael J. McLennan
+</pre><H2>KEYWORDS</H2>
+calendar, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/canvasprintbox.n.html b/itcl/iwidgets3.0.0/demos/html/canvasprintbox.n.html
index a103402def1..8f11d07912e 100644
--- a/itcl/iwidgets3.0.0/demos/html/canvasprintbox.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/canvasprintbox.n.html
@@ -1,302 +1,305 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - canvasprintbox</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - canvasprintbox</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- canvasprintbox - Create and manipulate a canvas print box
- widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>canvasprintbox</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Canvasprintbox
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightBackground</STRONG> <STRONG>highlightColorhighlightThickness</STRONG>
- <STRONG>insertBackground</STRONG> <STRONG>insertBorderWidthinsertOffTimeinsertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
- <STRONG>selectBackground</STRONG> <STRONG>selectBorderWidthselectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>filename</STRONG>
- Class: <STRONG>FileName</STRONG>
- Command-Line Switch: <STRONG>-filename</STRONG>
-
- The file to write the postscript output to (Only when
- output is set to "file"). If posterizing is turned on
- and <STRONG>hpagecnt</STRONG> and/or <STRONG>vpagecnt</STRONG> is more than 1, x.y is
- appended to the filename where x is the horizontal page
- number and y the vertical page number.
-
- Name: <STRONG>hpagecnt</STRONG>
- Class: <STRONG>PageCnt</STRONG>
- Command-Line Switch: <STRONG>-hpagecnt</STRONG>
-
- Is used in combination with <STRONG>posterize</STRONG> to determine over
- how many pages the output should be distributed. This
- attribute specifies how many pages should be used hor-
- izontaly. Any change to this attribute will automati-
- cally update the "stamp". Defaults to 1.
-
- Name: <STRONG>orient</STRONG>
- Class: <STRONG>Orient</STRONG>
- Command-Line Switch: <STRONG>-orient</STRONG>
-
- Determines the orientation of the output to the printer
- (or file). It can take the value "portrait" or
- "landscape" (default). Changes to this attribute will
- be reflected immediately in the "stamp". Defaults to
- "landscape" but will be changed automaticaly to the
- value deemed appropiate for the current canvas. Setting
- this attribute when the canvasprintbox is first con-
- structed (instead of using the "configure" method) will
- turn off the auto adjustment of this attribute.
-
- Name: <STRONG>output</STRONG>
- Class: <STRONG>Output</STRONG>
- Command-Line Switch: <STRONG>-output</STRONG>
-
- Specifies where the postscript output should go: to the
- printer or to a file. Can take on the values "printer"
- or "file". The corresponding entry-widget will reflect
- the contents of either the <STRONG>printcmd</STRONG> attribute or the
- <STRONG>filename</STRONG> attribute. Defaults to "printer".
-
- Name: <STRONG>pageSize</STRONG>
- Class: <STRONG>PageSize</STRONG>
- Command-Line Switch: <STRONG>-pagesize</STRONG>
-
- The pagesize the printer supports. Changes to this
- attribute will be reflected immediately in the "stamp".
- Defaults to "a4".
-
- Name: <STRONG>posterize</STRONG>
- Class: <STRONG>Posterize</STRONG>
- Command-Line Switch: <STRONG>-posterize</STRONG>
-
- Indicates if posterizing is turned on or not. Posteriz-
- ing the output means that it is possible to distribute
- the output over more than one page. This way it is pos-
- sible to print a canvas/region which is larger than the
- specified pagesize without stretching. If used in com-
- bination with stretching it can be used to "blow up"
- the contents of a canvas to as large as size as you
- want (See attributes: hpagecnt and vpagecnt). Any
- change to this attribute will automatically update the
- "stamp". Defaults to 0.
-
- Name: <STRONG>printCmd</STRONG>
- Class: <STRONG>PrintCmd</STRONG>
- Command-Line Switch: <STRONG>-printcmd</STRONG>
-
- The command to execute when printing the postscript
- output. The command will get the postscript directed
- to its standard input (Only when output is set to
- "printer"). Defaults to "lpr".
-
- Name: <STRONG>printRegion</STRONG>
- Class: <STRONG>PrintRegion</STRONG>
- Command-Line Switch: <STRONG>-printregion</STRONG>
-
- A list of four coordinates specifying which part of the
- canvas to print. An empty list means that the canvas'
- entire <STRONG>scrollregion</STRONG> should be printed. Any change to
- this attribute will automatically update the "stamp".
- Defaults to an empty list.
-
- Name: <STRONG>stretch</STRONG>
- Class: <STRONG>Stretch</STRONG>
- Command-Line Switch: <STRONG>-stretch</STRONG>
-
- Determines if the output should be stretched to fill
- the page (as defined by the attribute pagesize) as
- large as possible. The aspect-ratio of the output will
- be retained and the output will never fall outside of
- the boundaries of the page. Defaults to 0 but will be
- changed automaticaly to the value deemed appropiate for
- the current canvas. Setting this attribute when the
- canvasprintbox is first constructed (instead of using
- the "configure" method) will turn off the auto adjust-
- ment of this attribute.
-
- Name: <STRONG>vPageCnt</STRONG>
- Class: <STRONG>PageCnt</STRONG>
- Command-Line Switch: <STRONG>-vpagecnt</STRONG>
-
- Is used in combination with "posterize" to determine
- over how many pages the output should be distributed.
- This attribute specifies how many pages should be used
- verticaly. Any change to this attribute will automati-
- cally update the "stamp". Defaults to 1.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Implements a print box for printing the contents of a canvas
- widget to a printer or a file. It is possible to specify
- page orientation, the number of pages to print the image on
- and if the output should be stretched to fit the page.
- Options exist to control the appearance and actions of the
- widget.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>canvasprintbox</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for can-
- vasprintbox widgets:
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>canvasprintbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>canvasprintbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>getoutput</STRONG>
- Returns the value of the <STRONG>printercmd</STRONG> or <STRONG>filename</STRONG> option
- depending on the current setting of <STRONG>output</STRONG>.
-
- <EM>pathName</EM> <STRONG>print</STRONG>
- Perfrom the actual printing of the canvas using the
- current settings of all the attributes. Returns a
- boolean indicating wether the printing was successful
- or not.
-
- <EM>pathName</EM> <STRONG>refresh</STRONG>
- Retrieves the current value for all edit fields and
- updates the stamp accordingly. Is useful for Apply-
- buttons.
-
- <EM>pathName</EM> <STRONG>setcanvas</STRONG> <EM>canvas</EM>
- This is used to set the <EM>canvas</EM> that has to be printed.
- A stamp-sized copy will automatically be drawn to show
- how the output would look with the current settings.
-
- <EM>pathName</EM> <STRONG>stop</STRONG>
- Stops the drawing of the "stamp". I'm currently unable
- to detect when a Canvasprintbox gets destroyed or with-
- drawn. It's therefore advised that you perform a stop
- before you do something like that.
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>prtflentry</STRONG>
- Class: <STRONG>Entry</STRONG>
-
- The prtflentry component is the entry field for user
- input of the <STRONG>filename</STRONG> or <STRONG>printer</STRONG> command (depending on
- the value of <STRONG>output</STRONG>).
-
- Name: <STRONG>hpcnt</STRONG>
- Class: <STRONG>Entry</STRONG>
-
- The hpcnt component is the entry field for user input
- of the number of pages to use horizontaly when <STRONG>poster-</STRONG>
- <STRONG>ize</STRONG> is turned on.
- Name: <STRONG>vpcnt</STRONG>
- Class: <STRONG>Entry</STRONG>
-
- The vpcnt component is the entry field for user input
- of the number of pages to use verticaly when <STRONG>posterize</STRONG>
- is turned on.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground GhostWhite
-
- canvasprintbox .fsb -orient landscape -stretch 1
- pack .fsb -padx 10 -pady 10 -fill both -expand yes
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Tako Schotanus
-
- Tako.Schotanus@bouw.tno.nl
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- canvasprintbox, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>canvasprintbox - Create and manipulate a canvas print box widget</TITLE>
+<H1>canvasprintbox - Create and manipulate a canvas print box widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>canvasprintbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Canvasprintbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>foreground</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>highlightBackground</B><br>
+<B>insertBorderWidth</B><br>
+<B>relief</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>repeatDelay</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>repeatInterval</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<UL>
+</UL>
+<P>
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>filename</B>
+Class: <B>FileName</B>
+Command-Line Switch: <B>-filename</B>
+</pre>
+<UL>
+The file to write the postscript output to (Only when output
+is set to "file"). If posterizing is turned on and <B>hpagecnt</B>
+and/or <B>vpagecnt</B> is more than 1, x.y is appended to the filename
+where x is the horizontal page number and y the vertical page number.
+</UL>
+<P>
+<pre>
+Name: <B>hpagecnt</B>
+Class: <B>PageCnt</B>
+Command-Line Switch: <B>-hpagecnt</B>
+</pre>
+<UL>
+Is used in combination with <B>posterize</B> to determine over
+how many pages the output should be distributed. This
+attribute specifies how many pages should be used horizontaly.
+Any change to this attribute will automatically update the "stamp".
+Defaults to 1.
+</UL>
+<P>
+<pre>
+Name: <B>orient</B>
+Class: <B>Orient</B>
+Command-Line Switch: <B>-orient</B>
+</pre>
+<UL>
+Determines the orientation of the output to the printer (or file).
+It can take the value "portrait" or "landscape" (default). Changes
+to this attribute will be reflected immediately in the "stamp".
+Defaults to "landscape" but will be changed automaticaly to the value
+deemed appropiate for the current canvas. Setting this attribute
+when the canvasprintbox is first constructed (instead of using the
+"configure" method) will turn off the auto adjustment of this attribute.
+</UL>
+<P>
+<pre>
+Name: <B>output</B>
+Class: <B>Output</B>
+Command-Line Switch: <B>-output</B>
+</pre>
+<UL>
+Specifies where the postscript output should go: to the printer
+or to a file. Can take on the values "printer" or "file".
+The corresponding entry-widget will reflect the contents of
+either the <B>printcmd</B> attribute or the <B>filename</B> attribute.
+Defaults to "printer".
+</UL>
+<P>
+<pre>
+Name: <B>pageSize</B>
+Class: <B>PageSize</B>
+Command-Line Switch: <B>-pagesize</B>
+</pre>
+<UL>
+The pagesize the printer supports. Changes to this attribute
+will be reflected immediately in the "stamp".
+Defaults to "a4".
+</UL>
+<P>
+<pre>
+Name: <B>posterize</B>
+Class: <B>Posterize</B>
+Command-Line Switch: <B>-posterize</B>
+</pre>
+<UL>
+Indicates if posterizing is turned on or not. Posterizing
+the output means that it is possible to distribute the
+output over more than one page. This way it is possible to
+print a canvas/region which is larger than the specified
+pagesize without stretching. If used in combination with
+stretching it can be used to "blow up" the contents of a
+canvas to as large as size as you want (See attributes:
+hpagecnt and vpagecnt). Any change to this attribute will
+automatically update the "stamp".
+Defaults to 0.
+</UL>
+<P>
+<pre>
+Name: <B>printCmd</B>
+Class: <B>PrintCmd</B>
+Command-Line Switch: <B>-printcmd</B>
+</pre>
+<UL>
+The command to execute when printing the postscript output.
+The command will get the postscript directed to its standard
+input (Only when output is set to "printer").
+Defaults to "lpr".
+</UL>
+<P>
+<pre>
+Name: <B>printRegion</B>
+Class: <B>PrintRegion</B>
+Command-Line Switch: <B>-printregion</B>
+</pre>
+<UL>
+A list of four coordinates specifying which part of the canvas to print.
+An empty list means that the canvas' entire <B>scrollregion</B> should be
+printed. Any change to this attribute will automatically update the "stamp".
+Defaults to an empty list.
+</UL>
+<P>
+<pre>
+Name: <B>stretch</B>
+Class: <B>Stretch</B>
+Command-Line Switch: <B>-stretch</B>
+</pre>
+<UL>
+Determines if the output should be stretched to fill the
+page (as defined by the attribute pagesize) as large as
+possible. The aspect-ratio of the output will be retained
+and the output will never fall outside of the boundaries
+of the page.
+Defaults to 0 but will be changed automaticaly to the value
+deemed appropiate for the current canvas. Setting this attribute
+when the canvasprintbox is first constructed (instead of using the
+"configure" method) will turn off the auto adjustment of this attribute.
+</UL>
+<P>
+<pre>
+Name: <B>vPageCnt</B>
+Class: <B>PageCnt</B>
+Command-Line Switch: <B>-vpagecnt</B>
+</pre>
+<UL>
+Is used in combination with "posterize" to determine over
+how many pages the output should be distributed. This
+attribute specifies how many pages should be used verticaly.
+Any change to this attribute will automatically update the "stamp".
+Defaults to 1.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+Implements a print box for printing the contents of a canvas widget
+to a printer or a file. It is possible to specify page orientation, the
+number of pages to print the image on and if the output should be
+stretched to fit the page. Options exist to control the appearance and
+actions of the widget.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>canvasprintbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for canvasprintbox widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>canvasprintbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>canvasprintbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>getoutput</B>
+</I></B>
+<DD> Returns the value of the <B>printercmd</B> or <B>filename</B> option
+depending on the current setting of <B>output</B>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>print</B>
+</I></B>
+<DD> Perfrom the actual printing of the canvas using the current settings of
+all the attributes. Returns a boolean indicating wether the printing was
+successful or not.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>refresh</B>
+</I></B>
+<DD> Retrieves the current value for all edit fields and updates
+the stamp accordingly. Is useful for Apply-buttons.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>setcanvas</B> <I>canvas</I>
+</I></B>
+<DD> This is used to set the <I>canvas</I> that has to be printed.
+A stamp-sized copy will automatically be drawn to show how the
+output would look with the current settings.
+</DL>
+<DL>
+<DT> <I>pathName <B>stop</B>
+</I></B>
+<DD> Stops the drawing of the "stamp". I'm currently unable to detect
+when a Canvasprintbox gets destroyed or withdrawn. It's therefore
+advised that you perform a stop before you do something like that.
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>prtflentry</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+The prtflentry component is the entry field for user input of the
+<B>filename</B> or <B>printer</B> command (depending on the value of
+<B>output</B>).
+</UL>
+<P>
+<pre>
+Name: <B>hpcnt</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+The hpcnt component is the entry field for user input of the number of
+pages to use horizontaly when <B>posterize</B> is turned on.
+</UL>
+</table>
+<pre>
+Name: <B>vpcnt</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+The vpcnt component is the entry field for user input of the number of
+pages to use verticaly when <B>posterize</B> is turned on.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+canvasprintbox .fsb -orient landscape -stretch 1
+pack .fsb -padx 10 -pady 10 -fill both -expand yes
+</pre>
+</pre><H2>AUTHOR</H2>
+Tako Schotanus
+<P>
+Tako.Schotanus@bouw.tno.nl
+</pre><H2>KEYWORDS</H2>
+canvasprintbox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/canvasprintdialog.n.html b/itcl/iwidgets3.0.0/demos/html/canvasprintdialog.n.html
index 3a5ee09c407..afa1371524f 100644
--- a/itcl/iwidgets3.0.0/demos/html/canvasprintdialog.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/canvasprintdialog.n.html
@@ -1,203 +1,252 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - canvasprintdialog</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - canvasprintdialog</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- canvasprintdialog - Create and manipulate a canvas print
- dialog widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>canvasprintdialog</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- Dialogshell &lt;- Dialog &lt;- Canvasprintdialog
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightBackground</STRONG> <STRONG>highlightColorhighlightThickness</STRONG>
- <STRONG>insertBackground</STRONG> <STRONG>insertBorderWidthinsertOffTimeinsertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
- <STRONG>selectBackground</STRONG> <STRONG>selectBorderWidthselectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>filename</STRONG> <STRONG>hpagecnt</STRONG> <STRONG>orient</STRONG> <STRONG>output</STRONG>
- <STRONG>pagesize</STRONG> <STRONG>posterize</STRONG> <STRONG>printcmd</STRONG> <STRONG>printregion</STRONG>
- <STRONG>vpagecnt</STRONG>
-
- See the "canvasprintbox" widget manual entry for details on
- the above associated options.
-
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>buttonBoxPadX</STRONG> <STRONG>buttonBoxPadY</STRONG> <STRONG>buttonBoxPos</STRONG> <STRONG>padX</STRONG>
- <STRONG>padY</STRONG> <STRONG>separator</STRONG> <STRONG>thickness</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited options.
-
- <STRONG>master</STRONG> <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" widget manual entry for details on the above
- inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>canvasprintdialog</STRONG> command creates a print dialog for
- printing the contents of a canvas widget to a printer or a
- file. It is possible to specify page orientation, the number
- of pages to print the image on and if the output should be
- stretched to fit the page.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>canvasprintdialog</STRONG> command creates a new Tcl command
- whose name is <EM>pathName</EM>. This command may be used to invoke
- various operations on the widget. It has the following gen-
- eral form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for can-
- vasprintdialog widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>getoutput</STRONG> <STRONG>setcanvas</STRONG> <STRONG>refresh</STRONG> <STRONG>print</STRONG>
-
- See the "canvasprintbox" class manual entry for details on
- the associated methods.
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>add</STRONG> <STRONG>buttonconfigure</STRONG> <STRONG>defaulthide</STRONG>
- <STRONG>insert</STRONG> <STRONG>invoke</STRONG> <STRONG>show</STRONG>
-
- See the "buttonbox" widget manual entry for details on the
- above inherited methods.
-
- <STRONG>activate</STRONG> <STRONG>deactivate</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>canvasprintdialog</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>canvasprintdialog</STRONG> com-
- mand.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>cpb</STRONG>
- Class: <STRONG>Canvasprintbox</STRONG>
-
- The cpb component is the canvas print box for the can-
- vas print dialog. See the "canvasprintbox" widget
- manual entry for details on the cpb component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- canvasprintdialog .cpb
- .cpb activate
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Tako Schotanus
-
- Tako.Schotanus@bouw.tno.nl
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- canvasprintdialog, canvasprintbox, dialog, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>canvasprintdialog - Create and manipulate a canvas print dialog widget</TITLE>
+<H1>canvasprintdialog - Create and manipulate a canvas print dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>canvasprintdialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Dialogshell &lt;- Dialog &lt;- Canvasprintdialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>foreground</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>highlightBackground</B><br>
+<B>insertBorderWidth</B><br>
+<B>relief</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>repeatDelay</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>repeatInterval</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>filename</B><br>
+<B>pagesize</B><br>
+<B>vpagecnt</B><br>
+</td>
+<td valign=top>
+<B>hpagecnt</B><br>
+<B>posterize</B><br>
+</td>
+<td valign=top>
+<B>orient</B><br>
+<B>printcmd</B><br>
+</td>
+<td valign=top>
+<B>output</B><br>
+<B>printregion</B><br>
+</td>
+</table>
+<P>
+See the "canvasprintbox" widget manual entry for details on the above
+associated options.
+
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited options.
+<P>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" widget manual entry for details on the above
+inherited options.
+<P>
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>canvasprintdialog</B> command creates a print dialog for printing
+the contents of a canvas widget to a printer or a file. It is possible
+to specify page orientation, the number of pages to print the image on
+and if the output should be stretched to fit the page.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>canvasprintdialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for canvasprintdialog widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>getoutput</B><br>
+</td>
+<td valign=top>
+<B>setcanvas</B><br>
+</td>
+<td valign=top>
+<B>refresh</B><br>
+</td>
+<td valign=top>
+<B>print</B><br>
+</td>
+</table>
+<P>
+See the "canvasprintbox" class manual entry for details on the
+associated methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by
+the <B>canvasprintdialog</B> command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by
+the <B>canvasprintdialog</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>cpb</B>
+Class: <B>Canvasprintbox</B>
+</pre>
+<UL>
+The cpb component is the canvas print box for the canvas print dialog.
+See the "canvasprintbox" widget manual entry for details on the cpb
+component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ canvasprintdialog .cpb
+ .cpb activate
+</pre>
+</pre><H2>AUTHOR</H2>
+Tako Schotanus
+<P>
+Tako.Schotanus@bouw.tno.nl
+</pre><H2>KEYWORDS</H2>
+canvasprintdialog, canvasprintbox, dialog, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/checkbox.n.html b/itcl/iwidgets3.0.0/demos/html/checkbox.n.html
new file mode 100644
index 00000000000..d0959b2a221
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/checkbox.n.html
@@ -0,0 +1,209 @@
+<TITLE>checkbox - Create and manipulate a checkbox widget</TITLE>
+<H1>checkbox - Create and manipulate a checkbox widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>checkbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- labeledframe &lt;- checkbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>selectColor</B><br>
+</td>
+<td valign=top>
+<B>disabledForeground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+</table>
+<P>
+See the "labeledframe" class manual entry for details on the
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+</pre>
+<UL>
+Specifies a Tcl command procedure to be evaluated following a change in
+the current check box selection.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>checkbox</B> command creates a check button box widget
+capable of adding, inserting, deleting, selecting, and configuring
+checkbuttons as well as obtaining the currently selected button.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>checkbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for the <B>checkbox</B> take as one argument an
+indicator of which checkbutton of the checkbox to operate on. These indicators
+are called <I>indexes</I> and allow reference and manipulation of checkbuttons.
+Checkbox indexes may be specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the checkbutton numerically, where 0 corresponds to the top
+checkbutton of the checkbox.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Indicates the last checkbutton of the checkbox.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy one of the above forms then this
+form is used. <I>Pattern</I> is pattern-matched against the tag of
+each checkbutton in the checkbox, in order from top to bottom,
+until a matching entry is found. The rules of <B>Tcl_StringMatch</B>
+are used.
+
+</DL>
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>add</B> <I>tag</I> ?<I>option value option value</I>?
+</I></B>
+<DD> Adds a new checkbutton to the checkbuttond window on the bottom. The command
+takes additional options which are passed on to the checkbutton as construction
+arguments. These include the standard Tk checkbutton options. The tag is
+returned.
+</DL>
+<DL>
+<DT> <I>pathName <B>buttonconfigure</B> <I>index</I> ?<I>options</I>?
+</I></B>
+<DD> This command is similar to the <B>configure</B> command, except that
+it applies to the options for an individual checkbutton,
+whereas <B>configure</B>applies to the options for the checkbox as a whole.
+<I>Options</I> may have any of the values accepted by the <B>add</B>
+widget command. If <I>options</I> are specified, options are modified
+as indicated in the command and the command returns an empty string.
+If no <I>options</I> are specified, returns a list describing
+the current options for entry <I>index</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list).
+</DL>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>checkbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>checkbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>delete</B> <I>index</I>
+</I></B>
+<DD> Deletes a specified checkbutton given an <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>deselect</B> <I>index</I>
+</I></B>
+<DD> Deselects a specified checkbutton given an <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>flash</B> <I>index</I>
+</I></B>
+<DD> Flashes a specified checkbutton given an <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B> ?<I>index</I>?
+</I></B>
+<DD> Returns the tags of the currently selected checkbuttons or the
+selection status of specific checkbutton when given an index.
+</DL>
+<DL>
+<DT> <I>pathName <B>index</B> <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to index.
+</DL>
+<DL>
+<DT> <I>pathName <B>insert <I>index</I> <I>tag</I> ?<I>option value option value ...</I>?
+</I></B>
+<DD> Same as the <B>add</B> command except that it inserts the new
+checkbutton just before the one given by <I>index</I>, instead of appending
+to the end of the checkbox. The <I>option</I>, and <I>value</I>
+arguments have the same interpretation as for the <B>add</B> widget
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>select</B> <I>index</I>
+</I></B>
+<DD> Selects a specified checkbutton given an <I>index</I>.
+
+</DL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ checkbox .cb -labeltext Styles
+ .cb add bold -text Bold
+ .cb add italic -text Italic
+ .cb add underline -text Underline
+ .cb select underline
+
+ pack .cb -padx 10 -pady 10 -fill both -expand yes
+</pre>
+
+</pre><H2>AUTHOR</H2>
+John A. Tucker
+</pre><H2>KEYWORDS</H2>
+checkbox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/combobox.n.html b/itcl/iwidgets3.0.0/demos/html/combobox.n.html
index db2f54e32c9..2e5bdcf2acf 100644
--- a/itcl/iwidgets3.0.0/demos/html/combobox.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/combobox.n.html
@@ -1,411 +1,484 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - combobox</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - combobox</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- combobox - Create and manipulate combination box widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>combobox</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- LabeledWidget &lt;- Entryfield &lt;- Combobox
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>exportSelection</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessinsertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTimeinsertWidth</STRONG>
- <STRONG>justify</STRONG> <STRONG>relief</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG> <STRONG>textVariable</STRONG> <STRONG>width</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>hscrollmode</STRONG> <STRONG>items</STRONG> <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG>
- <STRONG>vscrollmode</STRONG>
-
- See the "scrolledlistbox" manual entry for details on the
- above inherited options.
-
- <STRONG>show</STRONG> <STRONG>state</STRONG>
-
- See the "entry" manual entry for details on the above inher-
- ited options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>childSitePos</STRONG> <STRONG>command</STRONG> <STRONG>fixed</STRONG> <STRONG>focusCommand</STRONG>
- <STRONG>invalid</STRONG> <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG> <STRONG>validate</STRONG>
-
- See the "entryfield" class manual entry for details on the
- inherited options.
-
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>autoClear</STRONG>
- Class: <STRONG>AutoClear</STRONG>
- Command-Line Switch: <STRONG>-autoclear</STRONG>
-
- Boolean value that specifies wheather or not to clear
- the entry field as items are added to the list given in
- any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>arrowRelief</STRONG>
- Class: <STRONG>Relief</STRONG>
- Command-Line Switch: <STRONG>-arrowrelief</STRONG>
-
- Specifies the relief style to use for a dropdown
- Combobox's arrow button in a normal (not depressed)
- state. Acceptable values are <STRONG>raised</STRONG>, <STRONG>sunken</STRONG>, <STRONG>flat</STRONG>,
- <STRONG>ridge</STRONG>, and <STRONG>groove</STRONG>. Sunken is discouraged as this is the
- relief used to indicate a depressed state. This option
- has no effect on simple Comboboxes. The default is
- raised.
-
- Name: <STRONG>dropdown</STRONG>
- Class: <STRONG>Dropdown</STRONG>
- Command-Line Switch: <STRONG>-dropdown</STRONG>
-
- Boolean describing the Combobox layout style given in
- any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. If true,
- the Combobox will be a dropdown style widget which
- displays an entry field and an arrow button which when
- activated will pop up a scrollable list of items. If
- false, a simple Combobox style will be used which has
- an entry field and a scrollable list beneath it which
- is always visible. Both styles allow an optional label
- for the entry field area. The default is true.
-
- Name: <STRONG>editable</STRONG>
- Class: <STRONG>Editable</STRONG>
- Command-Line Switch: <STRONG>-editable</STRONG>
-
- Boolean describing whether or not the text entry area
- is editable by the user. If true the user can add items
- to the combobox by entering text into the entry area
- and then pressing Return. If false, the list of items
- is non-editable and can only be changed by calling the
- insert or delete methods. Given in any of the forms
- acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The default is true.
-
- Name: <STRONG>flipArrow</STRONG>
- Class: <STRONG>FlipArrow</STRONG>
- Command-Line Switch: <STRONG>-fliparrow</STRONG>
-
- Boolean describing whether or not the arrow button of
- dropdowns should be reversed (point up) when the list
- is popped up. Given in any of the forms acceptable to
- <STRONG>Tcl_GetBoolean</STRONG>. The default is false.
-
-
- Name: <STRONG>listHeight</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-listheight</STRONG>
-
- Height of the listbox specified in any of the forms
- acceptable to <STRONG>Tk_GetPixels</STRONG>. The default is 100 pixels.
-
- Name: <STRONG>margin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-margin</STRONG>
-
- Specifies the width in pixels between the entry com-
- ponent and the arrow button for a dropdown Combobox
- given in any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
- This option has no effect on a simple Combobox. The
- default is 0.
-
- Name: <STRONG>popupCursor</STRONG>
- Class: <STRONG>Cursor</STRONG>
- Command-Line Switch: <STRONG>-popupcursor</STRONG>
-
- Specifies the cursor to be used for dropdown style
- listboxes. The value may have any of the forms accept-
- able to <STRONG>Tk_GetCursor</STRONG>. The default is arrow.
-
- Name: <STRONG>selectionCommand</STRONG>
- Class: <STRONG>SelectionCommand</STRONG>
- Command-Line Switch: <STRONG>-selectioncommand</STRONG>
-
- Specifies a Tcl command procedure which is called when
- an item in the listbox area is selected. The item will
- be selected in the list, the listbox will be removed if
- it is a dropdown Combobox, and the selected item's text
- will be inserted into the entry field before the
- -selectioncommand proc is called. The default is {}.
-
- Name: <STRONG>unique</STRONG>
- Class: <STRONG>Unique</STRONG>
- Command-Line Switch: <STRONG>-unique</STRONG>
-
- Boolean describing whether or not duplicate items are
- allowed in the combobox list. If true, then duplicates
- are not allowed to be inserted. If false, a duplicate
- entry causes selection of the item. Given in any of the
- forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The default is
- true.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>combobox</STRONG> command creates an enhanced entry field widget
- with an optional associated label and a scrollable list.
- When an item is selected in the list area of a Combobox it's
- value is then displayed in the entry field text area. Func-
- tionally similar to an Optionmenu, the Combobox adds
- (optional) list scrolling and (optional) item editing and
- inserting capabilities.
-
- There are two basic styles of Comboboxes (determined by the
- -dropdown option): dropdown and simple. The dropdown style
- adds an arrow button to the right of the entry field which
- when activated will pop up (and down) the scrolled listbox
- beneath the entry field. The simple (non-dropdown) Combobox
- permanently displays the listbox beneath the entry field and
- has no arrow button. Either style allows an optional entry
- field label.
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>combobox</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for Combobox widg-
- ets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>icursor</STRONG> <STRONG>scan</STRONG>
-
- See the "entry" manual entries for details on the above
- associated methods.
-
- <STRONG>curselection</STRONG> <STRONG>index</STRONG> <STRONG>see</STRONG> <STRONG>size</STRONG>
- <STRONG>xview</STRONG> <STRONG>yview</STRONG>
-
- See the "listbox" manual entries for details on the above
- associated methods.
-
- <STRONG>getcurselection</STRONG> <STRONG>justify</STRONG> <STRONG>sort</STRONG>
-
- See the "scrolledlistbox" manual entries for details on the
- above associated methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>combobox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>clear</STRONG> ?<STRONG>component</STRONG>?
- Clears the contents from one or both components. Valid
- component values are <STRONG>list</STRONG>, or <STRONG>entry</STRONG>. With no component
- specified, both are cleared.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>combobox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>component</EM> <EM>first</EM> ?<EM>last</EM>?
- Delete one or more elements from a given component,
- <STRONG>list</STRONG> or <STRONG>entry</STRONG>. If a list item to be removed is
- currently selected (displayed in the entry field area),
- the entry field will be cleared.
-
- <EM>pathName</EM> <STRONG>get</STRONG> <STRONG>?</STRONG><EM>index</EM>?
- With no arguments, returns the contents currently in
- the entry field area. With a single argument, returns
- the contents of the listbox item at the indicated
- index.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>component</EM> <EM>index</EM> <EM>element</EM> ?<EM>element</EM> <EM>element</EM> ...?
- Insert one or more new elements into the given com-
- ponent, <STRONG>list</STRONG> or <STRONG>entry</STRONG>, just before the element given by
- <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>selection</STRONG> <EM>option</EM> <EM>first</EM> ?<EM>last</EM>?
- Adjust the selection within the listbox component and
- updates the contents of the entry field component to
- the value of the selected item. See the "listbox"
- manual entry for more details on parameter options.
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>entry</STRONG>
- Class: <STRONG>Entryfield</STRONG>
-
- Text entry area where the current selection is
- displayed. If the Combobox is editable, the user can
- edit the contents of this item.
-
- Name: <STRONG>list</STRONG>
- Class: <STRONG>Scrolledlistbox</STRONG>
-
- Scrollable list which stores all the items which the
- user can select from. For dropdown Comboboxes, this
- component is hidden until the user pops it up by press-
- ing on the arrow button to the right of the entry com-
- ponent. For simple Comboboxes this component is always
- visible just beneath the entry component.
-
-
-</PRE>
-<H2>DEFAULT BINDINGS</H2><PRE>
- The Combobox generally has the same bindings as it's primary
- component items - the Scrolledlistbox and Entryfield. How-
- ever it also adds these:
-
- [1] Button-1 mouse press on the arrow key of a dropdown Com-
- bobox causes the list to be popped up. If the combobox is
- non-editable, a Button-1 press on the entry field area will
- also pop up the list.
-
- [2] Button-1 mouse press anywhere on the display removes a
- dropdown listbox which has been popped up, unless the
- keypress is upon one of the Combobox scrollbars which
- scrolls the list. If it is pressed upon an item in the list
- area, that item will be selected before the list is removed.
-
- [3] Button-3 mouse press on the arrow key of a dropdown Com-
- bobox causes the next item to be selected. Shift-Button-3
- causes the previous item to be selected.
-
- [4] Escape keypress removes a dropdown list which has been
- popped up.
-
- [5] The &lt;space&gt; and &lt;Return&gt; keystrokes select the current
- item. They also remove the popped up list for dropdown com-
- boboxes.
-
- [6] Up and Down arrow keypresses from the entry field and
- arrow button component cause the previous and next items in
- the listbox to be selected respectively. Ctl-P and Ctl-N are
- similarly mapped for emacs emulation.
-
- [7] Entry field and arrow button component Shift-Up and
- Shift-Down arrow keys pop up and down the listbox of a drop-
- down Combobox. The arrow button component also maps &lt;Return&gt;
- and &lt;space&gt; similarly.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- proc selectCmd {} {
- puts stdout "[.cb2 getcurselection]"
- }
-
- #
- # Non-editable Dropdown Combobox
- #
- combobox .cb1 -labeltext Month: \
- -selectioncommand {puts "selected: [.cb1 getcurselection]"} \
- -editable false -listheight 185 -popupcursor hand1 \
- -items {Jan Feb Mar Apr May June Jul Aug Sept Oct Nov Dec}
-
- #
- # Editable Dropdown Combobox
- #
- combobox .cb2 -labeltext "Operating System:" \
- -items {Linux HP-UX SunOS Solaris Irix} -selectioncommand selectCmd
-
- #
- # Simple Combobox
- #
- combobox .cb3 -labeltext Fonts: -labelpos nw \
- -dropdown false -listheight 220 -items [exec xlsfonts]
-
- pack .cb1 -padx 10 -pady 10 -fill x
- pack .cb2 -padx 10 -pady 10 -fill x
- pack .cb3 -padx 10 -pady 10 -fill x
-
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- John S. Sigler
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- combobox, entryfield, scrolledlistbox, itk::Widget, entry,
- listbox, widget, iwidgets
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>combobox - Create and manipulate combination box widgets</TITLE>
+<H1>combobox - Create and manipulate combination box widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>combobox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- LabeledWidget &lt;- Entryfield &lt;- Combobox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B></B><br>
+cursor<br>
+highlightColor<br>
+insertWidth<br>
+insertWidth<br>
+selectBorderWidth<br>
+</td>
+<td valign=top>
+<B><br>
+justify<br>
+highlightThickness<br>
+insertBackground<br>
+insertBorderWidth<br>
+textVariable<br>
+</td>
+<td valign=top>
+background<br>
+exportSelection<br>
+relief<br>
+insertOffTime<br>
+selectForeground<br>
+</B></I><br>
+</td>
+<td valign=top>
+borderWidth<br>
+foreground<br>
+width<br>
+insertOnTime<br>
+selectBackground<br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>hscrollmode</B><br>
+</td>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>vscrollmode</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> manual entry for details on the above inherited
+options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>show</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the above inherited option.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childSitePos</B><br>
+<B>invalid</B><br>
+</td>
+<td valign=top>
+<B>command</B><br>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>fixed</B><br>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>focusCommand</B><br>
+<B>validate</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> class manual entry for details on the inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>arrowRelief</B>
+Class: <B>Relief</B>
+Command-Line Switch: <B>-arrowrelief</B>
+</pre>
+<UL>
+Specifies the relief style to use for a dropdown Combobox's arrow
+button in a normal (not depressed) state. Acceptable values
+are <B>raised</B>, <B>sunken</B>, <B>flat</B>, <B>ridge</B>, and <B>groove</B>.
+Sunken is discouraged as this is the relief used to indicate a depressed
+state. This option has no effect on simple Comboboxes. The default is raised.
+</UL>
+<P>
+<pre>
+Name: <B>completion</B>
+Class: <B>Completion</B>
+Command-Line Switch: <B>-completion</B>
+</pre>
+<UL>
+Boolean given in any of the forms acceptable to <B>Tcl_GetBoolean</B> which
+determines whether insertions into the entry field, whether from the
+keyboard or programmatically via the <B>insert</B> method, are
+automatically completed with the first matching item from the listbox. The
+default is true.
+</UL>
+<P>
+<pre>
+Name: <B>dropdown</B>
+Class: <B>Dropdown</B>
+Command-Line Switch: <B>-dropdown</B>
+</pre>
+<UL>
+Boolean describing the Combobox layout style given in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. If true, the Combobox
+will be a dropdown style
+widget which displays an entry field and an arrow button which when activated
+will pop up a scrollable list of items. If false, a simple Combobox style
+will be used which has an entry field and a scrollable list beneath it
+which is always visible. Both styles allow an optional label for the entry
+field area. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>editable</B>
+Class: <B>Editable</B>
+Command-Line Switch: <B>-editable</B>
+</pre>
+<UL>
+Boolean describing whether or not the text entry area is editable
+by the user. If true the user can add items to the combobox by entering text
+into the entry area and then pressing Return. If false, the list of items is
+non-editable and can only be changed by calling the insert or delete
+methods. (The value in the entry field can still be modified by selecting
+from the list.) Given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>grab</B>
+Class: <B>Grab</B>
+Command-Line Switch: <B>-grab</B>
+</pre>
+<UL>
+This option sets the grab scope for the appearance of the listbox in
+drop-down comboboxes. It can be either global or local. The default is
+local.
+</UL>
+<P>
+<pre>
+Name: <B>listHeight</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-listheight</B>
+</pre>
+<UL>
+Height of the listbox specified in any of the forms acceptable to
+<B>Tk_GetPixels</B>. The default is 150 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>margin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-margin</B>
+</pre>
+<UL>
+Specifies the width in pixels between the entry component and the arrow button
+for a dropdown Combobox given in any of the forms acceptable to
+<B>Tk_GetPixels</B>. This option has no effect on a simple Combobox. The
+default is 1.
+</UL>
+<P>
+<pre>
+Name: <B>popupCursor</B>
+Class: <B>Cursor</B>
+Command-Line Switch: <B>-popupcursor</B>
+</pre>
+<UL>
+Specifies the cursor to be used for dropdown style listboxes. The value
+may have any of the forms acceptable to <B>Tk_GetCursor</B>. The default is
+arrow.
+</UL>
+<P>
+<pre>
+Name: <B>selectionCommand</B>
+Class: <B>SelectionCommand</B>
+Command-Line Switch: <B>-selectioncommand</B>
+</pre>
+<UL>
+Specifies a Tcl command procedure which is called when an item in the
+listbox area is selected. The item will be selected in the list, the listbox
+will be removed if it is a dropdown Combobox, and the selected item's
+text will be inserted into the entry field before the -selectioncommand proc is
+called. The default is {}.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specifies the overall state of the Combobox megawidget. Can be either
+normal or disabled. If the Combobox is disabled, no text can be entered
+into the entry field, no selection can be made in the listbox, and the
+arrowBtn component is disabled. The default is normal.
+</UL>
+<P>
+<pre>
+Name: <B>unique</B>
+Class: <B>Unique</B>
+Command-Line Switch: <B>-unique</B>
+</pre>
+<UL>
+Boolean describing whether or not duplicate items are allowed in the combobox
+list. If true, then duplicates are not allowed to be inserted. If false, a
+duplicate entry causes selection of the item. Given in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>combobox</B> command creates an enhanced entry field widget with an
+optional associated label and a scrollable list. When an item is selected in
+the list area of a Combobox, its value is then displayed in the entry field
+text area. Functionally similar to an Optionmenu, the Combobox adds (optional)
+list scrolling and (optional) item editing and inserting capabilities.
+<P>
+There are two basic styles of Comboboxes (determined by the -dropdown option):
+dropdown and simple. The dropdown style adds an arrow button to the right of
+the entry field which when activated will pop up (and down) the scrolled
+listbox beneath the entry field. The simple (non-dropdown) Combobox
+permanently displays the listbox beneath the entry field and has no
+arrow button. Either style allows an optional entry field label.
+</pre><H2>METHODS</H2>
+<P>
+The <B>combobox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for Combobox widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>icursor</B><br>
+</td>
+<td valign=top>
+<B>scan</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entries for details on the above associated methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>curselection</B><br>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>index</B><br>
+<B>yview</B><br>
+</td>
+<td valign=top>
+<B>see</B><br>
+</td>
+<td valign=top>
+<B>size</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/listbox.n.html"> "listbox" </A> manual entries for details on the above associated methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>getcurselection</B><br>
+</td>
+<td valign=top>
+<B>justify</B><br>
+</td>
+<td valign=top>
+<B>sort</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> manual entries for details on the above associated
+methods.
+<P>
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>combobox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B> ?<B>component</B>?
+</I></B>
+<DD> Clears the contents from one or both components. Valid component values
+are <B>list</B>, or <B>entry</B>. With no component specified, both are cleared.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>combobox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>delete <I>component</I> <I>first</I> ?<I>last</I>?
+</I></B>
+<DD> Delete one or more elements from a given component, <B>list</B> or <B>entry</B>.
+If a list item to be removed is currently selected (displayed in the entry
+field area), the entry field will be cleared.
+</DL>
+<DL>
+<DT> <I>pathName <B>get ?<I>index</I>? </B></I>
+</I></B>
+<DD> With no arguments, returns the contents currently in the entry
+field area. With a single argument, returns the contents of the
+listbox item at the indicated index.
+</DL>
+<DL>
+<DT> <I>pathName <B>insert</B> <I>component</I> <I>index</I> <I>element</I> ?<I>element element ...</I>?
+</I></B>
+<DD> Insert one or more new elements into the given component, <B>list</B> or
+<B>entry</B>, just before the element given by <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>selection</B> <I>option</I> <I>first</I> ?<I>last</I>?
+</I></B>
+<DD> Adjust the selection within the listbox component and updates the contents
+of the entry field component to the value of the selected item. See the
+"listbox" manual entry for more details on parameter options.
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>entry</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+Text entry area where the current selection is displayed. If the
+Combobox is editable and its state is normal, the user can edit the
+contents of this item.
+</UL>
+<P>
+<pre>
+Name: <B>list</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+Scrollable list which stores all the items which the user can select
+from. For dropdown Comboboxes, this component is hidden until the user pops it
+up by pressing on the arrow button to the right of the entry component. For
+simple Comboboxes this component is always visible just beneath the entry
+component.
+</UL>
+</pre><H2>DEFAULT BINDINGS</H2>
+<P>
+The Combobox generally has the same bindings as its primary component items -
+the Scrolledlistbox and Entryfield. However it also adds these:
+<P>
+[1] Button-1 mouse press on the arrow key of a dropdown Combobox causes the
+list to be popped up. If the combobox is non-editable, a Button-1 press on the
+entry field area will also pop up the list.
+<P>
+[2] Button-1 mouse press anywhere on the display removes a dropdown listbox
+which has been popped up, unless the keypress is upon one of the Combobox
+scrollbars which scrolls the list. If it is pressed upon an item in the list
+area, that item will be selected before the list is removed.
+<P>
+[3] Button-3 mouse press on the arrow key of a dropdown Combobox causes the
+next item to be selected. Shift-Button-3 causes the previous item to be
+selected.
+<P>
+[4] Escape keypress removes a dropdown list which has been popped up.
+<P>
+[5] The &lt;space&gt; and &lt;Return&gt; keystrokes select the current item. They also
+remove the popped up list for dropdown comboboxes.
+<P>
+[6] Up and Down arrow keypresses from the entry field and arrow button
+component cause the previous and next items in the listbox to be selected
+respectively. Ctl-P and Ctl-N are similarly mapped for emacs emulation.
+<P>
+[7] Entry field and arrow button component Shift-Up and Shift-Down arrow keys
+pop up and down the listbox of a dropdown Combobox. The arrow button component
+also maps &lt;Return&gt; and &lt;space&gt; similarly.
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ proc selectCmd {} {
+ puts stdout "[.cb2 getcurselection]"
+ }
+
+ #
+ # Non-editable Dropdown Combobox
+ #
+ combobox .cb1 -labeltext Month: \\
+ -selectioncommand {puts "selected: [.cb1 getcurselection]"} \\
+ -editable false -listheight 185 -popupcursor hand1
+ .cb1 insert list end Jan Feb Mar Apr May June Jul Aug Sept Oct Nov Dec
+
+ #
+ # Editable Dropdown Combobox
+ #
+ combobox .cb2 -labeltext "Operating System:" -selectioncommand selectCmd
+ .cb2 insert list end Linux HP-UX SunOS Solaris Irix
+ .cb2 insert entry end L
+
+ pack .cb1 -padx 10 -pady 10 -fill x
+ pack .cb2 -padx 10 -pady 10 -fill x
+
+</pre>
+</pre><H2>ORIGINAL AUTHOR</H2>
+<A HREF="mailto:jsigler@spd.dsccc.com">John S. Sigler</A>
+</pre><H2>CURRENT MAINTAINER</H2>
+Mitch Gorman (logain@erols.com)
+</pre><H2>KEYWORDS</H2>
+combobox, entryfield, scrolledlistbox, itk::Widget, entry, listbox, widget,
+iwidgets
diff --git a/itcl/iwidgets3.0.0/demos/html/dateentry.n.html b/itcl/iwidgets3.0.0/demos/html/dateentry.n.html
new file mode 100644
index 00000000000..37aaa2deb5b
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/dateentry.n.html
@@ -0,0 +1,237 @@
+<TITLE>dateentry - Create and manipulate a dateentry widget</TITLE>
+<H1>dateentry - Create and manipulate a dateentry widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>dateentry<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- LabeledWidget &lt;- Datefield &lt;- Dateentry
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>justify</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on these
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>command</B><br>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>iq</B><br>
+</td>
+<td valign=top>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+</table>
+<P>
+See the "datefield" class manual entry for details on these
+inherited options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>backwardImage</B><br>
+<B>dateFont</B><br>
+<B>outline</B><br>
+<B>titleFont</B><br>
+</td>
+<td valign=top>
+<B>buttonForeground</B><br>
+<B>dayFont</B><br>
+<B>selectColor</B><br>
+<B>weekdayBackground</B><br>
+</td>
+<td valign=top>
+<B>command</B><br>
+<B>days</B><br>
+<B>selectThickness</B><br>
+<B>weekendBackground</B><br>
+</td>
+<td valign=top>
+<B>currentDateFont</B><br>
+<B>forwardImage</B><br>
+<B>startDay</B><br>
+</td>
+</table>
+<P>
+See the "calendar" manual entry for details on the associated options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>grab</B>
+Class: <B>Grab</B>
+Command-Line Switch: <B>-grab</B>
+</pre>
+<UL>
+Specifies the grab level, <B>local</B> or <B>global</B>, to be obtained before
+bringing up the popup calendar. The default is global. For more information
+concerning grab levels, consult the documentation for Tk's <B>grab</B> command.
+</UL>
+<P>
+<pre>
+Name: <B>icon</B>
+Class: <B>Icon</B>
+Command-Line Switch: <B>-icon</B>
+</pre>
+<UL>
+Specifies the calendar icon image to be used in the dateentry.
+This image must have been created previously with
+the <B>image create</B> command. Should one not be provided,
+then one will be generated, pixmap if possible, bitmap otherwise.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>dateentry</B> command creates a quicken style date entry field
+with a popup calendar by combining the datefield and calendar
+widgets together. This allows a user to enter the date via the
+keyboard or by using the mouse and selecting the calendar icon
+which brings up a popup calendar.
+</pre>
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>dateentry</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for dateentry widgets:
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>get</B><br>
+</td>
+<td valign=top>
+<B>isvalid</B><br>
+</td>
+<td valign=top>
+<B>show</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "datefield" manual entry for details on the associated methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>dateentry</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>dateentry</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>label</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The label component provides a label component to used to identify the date.
+See the "label" widget manual entry for details on the label component item.
+</UL>
+<P>
+<pre>
+Name: <B>iconbutton</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The iconbutton component provides a labelbutton component to act as a
+lightweight button
+displaying the calendar icon. Upon pressing the labelbutton, the calendar
+appears. See the "label" widget manual entry for details on the
+labelbutton component item.
+</UL>
+<P>
+<pre>
+Name: <B>date</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+The date component provides the entry field for date input and display.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the date component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ dateentry .de
+ pack .de
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+<P>
+</pre><H2>KEYWORDS</H2>
+dateentry, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/datefield.n.html b/itcl/iwidgets3.0.0/demos/html/datefield.n.html
new file mode 100644
index 00000000000..bfbbeae0cbe
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/datefield.n.html
@@ -0,0 +1,225 @@
+<TITLE>datefield - Create and manipulate a date field widget</TITLE>
+<H1>datefield - Create and manipulate a date field widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>datefield<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- LabeledWidget &lt;- datefield
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>justify</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>childSitePos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-childsitepos</B>
+</pre>
+<UL>
+Specifies the position of the child site in the date field: <B>n</B>,
+<B>s</B>, <B>e</B>, or <B>w</B>. The default is e.
+</UL>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon detection of a Return key
+press event.
+</UL>
+<P>
+<pre>
+Name: <B>iq</B>
+Class: <B>Iq</B>
+Command-Line Switch: <B>-iq</B>
+</pre>
+<UL>
+Specifies the level of intelligence to be shown in the actions
+taken by the datefield during the processing of keypress events.
+Valid settings include <B>high</B>, <B>average</B>, and <B>low</B>.
+With a high iq,the date prevents the user from typing in an
+invalid date. For example, if the current date is 05/31/1997 and
+the user changes the month to 04, then the day will be instantly
+modified for them to be 30. In addition, leap years are fully
+taken into account. With average iq, the month is limited to the
+values of 01-12, but it is possible to type in an invalid day.
+A setting of low iq instructs the widget to do no validity
+checking at all during date entry. With both average and low
+iq levels, it is assumed that the validity will be determined
+at a later time using the date's <B>isvalid</B> command.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specifies one of two states for the datefield: <B>normal</B> or <B>disabled</B>.
+If the datefield is disabled then input is not accepted. The default is
+normal.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-textbackground</B>
+</pre>
+<UL>
+Background color for inside textual portion of the entry field. The value
+may be given in any of the forms acceptable to <B>Tk_GetColor</B>.
+</UL>
+<P>
+<pre>
+Name: <B>textFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-textfont</B>
+</pre>
+<UL>
+Name of font to use for display of text in datefield. The value
+may be given in any of the forms acceptable to <B>Tk_GetFont</B>.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>datefield</B> command creates an enhanced text entry widget for
+the purpose of date entry with various degrees of built-in intelligence.
+</pre>
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>datefield</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for datefield widgets:
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>datefield</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>datefield</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B> ?<B>format</B>?
+</I></B>
+<DD> Returns the current contents of the datefield in a format of
+string or as an integer clock value using the <B>-string</B> and <B>-clicks</B>
+format options respectively. The default is by string. Reference the
+clock command for more information on obtaining dates and their
+formats.
+</DL>
+<DL>
+<DT> <I>pathName <B>isvalid</B>
+</I></B>
+<DD> Returns a boolean indication of the validity of the currently
+displayed date value. For example, 03/03/1960 is valid whereas
+02/29/1997 is invalid.
+</DL>
+<DL>
+<DT> <I>pathName <B>show</B> <I>date</I>
+</I></B>
+<DD> Changes the currently displayed date to be that of the date
+argument. The date may be specified either as a string, an
+integer clock value or the keyword "now". Reference the clock
+command for more information on obtaining dates and their formats.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>date</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+The date component provides the entry field for date input and display.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the date component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ proc returnCmd {} {
+ puts [.df get]
+ }
+
+ datefield .df -command returnCmd
+ pack .df -fill x -expand yes -padx 10 -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+<P>
+</pre><H2>KEYWORDS</H2>
+datefield, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/dialog.n.html b/itcl/iwidgets3.0.0/demos/html/dialog.n.html
index 928666a96db..509e8ebb200 100644
--- a/itcl/iwidgets3.0.0/demos/html/dialog.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/dialog.n.html
@@ -1,195 +1,199 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - dialog</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - dialog</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- dialog - Create and manipulate a dialog widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>dialog</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>buttonBoxPadX</STRONG> <STRONG>buttonBoxPadY</STRONG> <STRONG>buttonBoxPos</STRONG> <STRONG>padX</STRONG>
- <STRONG>padY</STRONG> <STRONG>separator</STRONG> <STRONG>thickness</STRONG>
-
- See the "dialogshell" manual entry for details on the above
- inherited options.
-
- <STRONG>master</STRONG> <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" manual entry for details on the above inher-
- ited options.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>dialog</STRONG> command creates a dialog box providing standard
- buttons and a child site for use in derived classes. The
- buttons include ok, apply, cancel, and help. Methods and
- Options exist to configure the buttons and their containing
- box.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>dialog</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for dialog widg-
- ets:
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
-
- <STRONG>add</STRONG> <STRONG>buttonconfigure</STRONG> <STRONG>defaulthide</STRONG>
- <STRONG>index</STRONG> <STRONG>insert</STRONG> <STRONG>invoke</STRONG> <STRONG>show</STRONG>
-
- See the "buttonbox" manual entry for details on the above
- inherited methods.
-
- <STRONG>childsite</STRONG>
-
- See the "dialogshell" manual entry for details on the above
- inherited methods.
-
- <STRONG>activate</STRONG> <STRONG>center</STRONG> <STRONG>deactivate</STRONG>
-
- See the "shell" manual entry for details on the above inher-
- ited methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>dialog</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>dialog</STRONG> command.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- dialog .d -modality global
- .d buttonconfigure OK -command {puts OK; .d deactivate 1}
- .d buttonconfigure Apply -command {puts Apply}
- .d buttonconfigure Cancel -command {puts Cancel; .d deactivate 0}
- .d buttonconfigure Help -command {puts Help}
-
- listbox [.d childsite].lb -relief sunken
- pack [.d childsite].lb -expand yes -fill both
-
- if {[.d activate]} {
- puts "Exit via OK button"
- } else {
- puts "Exit via Cancel button"
- }
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
- Bret A. Schuhmacher
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- dialog, dialogshell, shell, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>dialog - Create and manipulate a dialog widget</TITLE>
+<H1>dialog - Create and manipulate a dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>dialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> manual entry for details on the above inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" manual entry for details on the above inherited options.
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>dialog</B> command creates a dialog box providing standard
+buttons and a child site for use in derived classes. The buttons
+include ok, apply, cancel, and help. Methods and Options exist to
+configure the buttons and their containing box.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>dialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for dialog widgets:
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>index</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+<B>show</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> manual entry for details on the above inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> manual entry for details on the above inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>dialog</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>dialog</B>
+command.
+
+</DL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ dialog .d -modality global
+ .d buttonconfigure OK -command {puts OK; .d deactivate 1}
+ .d buttonconfigure Apply -command {puts Apply}
+ .d buttonconfigure Cancel -command {puts Cancel; .d deactivate 0}
+ .d buttonconfigure Help -command {puts Help}
+
+ listbox [.d childsite].lb -relief sunken
+ pack [.d childsite].lb -expand yes -fill both
+
+ if {[.d activate]} {
+ puts "Exit via OK button"
+ } else {
+ puts "Exit via Cancel button"
+ }
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre>
+<A HREF="mailto:bas@wn.com">Bret A. Schuhmacher</A>
+</pre><H2>KEYWORDS</H2>
+dialog, dialogshell, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/dialogshell.n.html b/itcl/iwidgets3.0.0/demos/html/dialogshell.n.html
index 00742a1e231..7c9619e464f 100644
--- a/itcl/iwidgets3.0.0/demos/html/dialogshell.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/dialogshell.n.html
@@ -1,254 +1,269 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - dialogshell</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - dialogshell</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- dialogshell - Create and manipulate a dialog shell widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>dialogshell</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- Shell &lt;- Dialogshell
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>master</STRONG> <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" manual entry for details on the above inher-
- ited options.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>buttonBoxPadX</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-buttonboxpadx</STRONG>
-
- Specifies a non-negative padding distance to leave
- between the button group and the outer edge of the but-
- ton box in the x direction. The value may be given in
- any of the forms accpetable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 5 pixels.
-
- Name: <STRONG>buttonBoxPadY</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-buttonboxpady</STRONG>
-
- Specifies a non-negative padding distance to leave
- between the button group and the outer edge of the but-
- ton box in the y direction. The value may be given in
- any of the forms accpetable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 5 pixels.
-
- Name: <STRONG>buttonBoxPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-buttonboxpos</STRONG>
-
- Attaches buttons to the given side of the dialog: <STRONG>n</STRONG>, <STRONG>s</STRONG>,
- <STRONG>e</STRONG> or <STRONG>w</STRONG>. The default is s.
-
- Name: <STRONG>padX</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-padx</STRONG>
-
- Specifies a padding distance for the childsite in the
- X-direction in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. The default is 10.
-
- Name: <STRONG>padY</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-pady</STRONG>
-
- Specifies a padding distance for the childsite in the
- Y-direction in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. The default is 10.
-
- Name: <STRONG>separator</STRONG>
- Class: <STRONG>Separator</STRONG>
- Command-Line Switch: <STRONG>-separator</STRONG>
-
- Specifies whether a line is drawn to separate the but-
- tons from the dialog box contents in any of the forms
- acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The default is true.
-
- Name: <STRONG>thickness</STRONG>
- Class: <STRONG>Thickness</STRONG>
- Command-Line Switch: <STRONG>-thickness</STRONG>
-
- Specifies the thickness of the separator in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default is 3
- pixels.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>dialogshell</STRONG> command creates a dialog shell which is a
- top level widget composed of a button box, separator, and
- child site area. The class also has methods to control but-
- ton construction.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>dialogshell</STRONG> command create a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for dialogshell
- widgets:
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>activate</STRONG> <STRONG>center</STRONG> <STRONG>deactivate</STRONG>
-
- See the "shell" manual entry for details on the above inher-
- ited methods.
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>add</STRONG> <STRONG>buttonconfigure</STRONG> <STRONG>defaultdelete</STRONG>
- <STRONG>hide</STRONG> <STRONG>index</STRONG> <STRONG>insert</STRONG> <STRONG>invoke</STRONG>
- <STRONG>show</STRONG>
-
- See the "buttonbox" manual entry for details on the associ-
- ated methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>dialogshell</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Returns the pathname of the child site widget.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>dialogshell</STRONG> command.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>dschildsite</STRONG>
- Class: <STRONG>frame</STRONG>
-
- The dschildsite component is the user child site for
- the dialog shell. See the "frame" widget manual entry
- for details on the dschildsite component item.
-
- Name: <STRONG>separator</STRONG>
- Class: <STRONG>frame</STRONG>
-
- The separator component devides the area between the
- user child site and the button box. See the "frame"
- widget manual entry for details on the separator com-
- ponent item.
-
- Name: <STRONG>bbox</STRONG>
- Class: <STRONG>ButtonBox</STRONG>
-
- The bbox component is the button box containing the
- buttons for the dialog shell. See the "ButtonBox"
- widget manual entry for details on the bbox component
- item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- dialogshell .ds -modality none
-
- .ds add OK -text "OK"
- .ds add Cancel -text "Cancel"
- .ds default OK
-
- .ds activate
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- dialogshell, dialog, shell, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>dialogshell - Create and manipulate a dialog shell widget</TITLE>
+<H1>dialogshell - Create and manipulate a dialog shell widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>dialogshell<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Shell &lt;- Dialogshell
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" manual entry for details on the above inherited options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>buttonBoxPadX</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-buttonboxpadx</B>
+</pre>
+<UL>
+Specifies a non-negative padding distance to leave between the button group and
+the outer edge of the button box in the x direction. The value may be
+given in any of the forms accpetable to <B>Tk_GetPixels</B>. The default
+is 5 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>buttonBoxPadY</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-buttonboxpady</B>
+</pre>
+<UL>
+Specifies a non-negative padding distance to leave between the button group and
+the outer edge of the button box in the y direction. The value may be
+given in any of the forms accpetable to <B>Tk_GetPixels</B>. The default
+is 5 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>buttonBoxPos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-buttonboxpos</B>
+</pre>
+<UL>
+Attaches buttons to the given side of the dialog: <B>n</B>, <B>s</B>,
+<B>e</B> or <B>w</B>. The default is s.
+</UL>
+<P>
+<pre>
+Name: <B>padX</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-padx</B>
+</pre>
+<UL>
+Specifies a padding distance for the childsite in the X-direction in
+any of the forms acceptable to <B>Tk_GetPixels</B>. The default is 10.
+</UL>
+<P>
+<pre>
+Name: <B>padY</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-pady</B>
+</pre>
+<UL>
+Specifies a padding distance for the childsite in the Y-direction in
+any of the forms acceptable to <B>Tk_GetPixels</B>. The default is 10.
+</UL>
+<P>
+<pre>
+Name: <B>separator</B>
+Class: <B>Separator</B>
+Command-Line Switch: <B>-separator</B>
+</pre>
+<UL>
+Specifies whether a line is drawn to separate the
+buttons from the dialog box contents in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>thickness</B>
+Class: <B>Thickness</B>
+Command-Line Switch: <B>-thickness</B>
+</pre>
+<UL>
+Specifies the thickness of the separator in any of the forms acceptable
+to <B>Tk_GetPixels</B>. The default is 3 pixels.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>dialogshell</B> command creates a dialog shell which is a top
+level widget composed of a button box, separator, and child site area.
+The class also has methods to control button construction.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>dialogshell</B> command create a new Tcl command whose
+name is <I>pathName</I>. This command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for dialogshell widgets:
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited methods.
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>hide</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>index</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>delete</B><br>
+<B>invoke</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> manual entry for details on the associated methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>dialogshell</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the pathname of the child site widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>dialogshell</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>dschildsite</B>
+Class: <B>frame</B>
+</pre>
+<UL>
+The dschildsite component is the user child site for the dialog shell. See
+the "frame" widget manual entry for details on the dschildsite component item.
+</UL>
+<P>
+<pre>
+Name: <B>separator</B>
+Class: <B>frame</B>
+</pre>
+<UL>
+The separator component devides the area between the user child site and
+the button box. See the "frame" widget manual entry for details on the
+separator component item.
+</UL>
+<P>
+<pre>
+Name: <B>bbox</B>
+Class: <B>ButtonBox</B>
+</pre>
+<UL>
+The bbox component is the button box containing the buttons for the dialog
+shell. See the "ButtonBox" widget manual entry for details on the
+bbox component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ dialogshell .ds -modality none
+
+ .ds add OK -text "OK"
+ .ds add Cancel -text "Cancel"
+ .ds default OK
+
+ .ds activate
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+dialogshell, dialog, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/disjointlistbox.n.html b/itcl/iwidgets3.0.0/demos/html/disjointlistbox.n.html
new file mode 100644
index 00000000000..f36e5947751
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/disjointlistbox.n.html
@@ -0,0 +1,333 @@
+<TITLE>disjointlistbox - Create and manipulate a disjointlistbox widget</TITLE>
+<H1>disjointlistbox - Create and manipulate a disjointlistbox widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>disjointlistbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Disjointlistbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>activeRelief</B><br>
+<B>clientData</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>selectBorderWidth</B><br>
+<B>background</B><br>
+<B>cursor</B><br>
+<B>disabledForeground</B><br>
+</td>
+<td valign=top>
+<B>selectForeground</B><br>
+<B>borderWidth</B><br>
+<B>foreground</B><br>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>activeForeground</B><br>
+<B>buttonPlacement</B><br>
+<B>highlightColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>lhsButtonLabel</B><br>
+</td>
+<td valign=top>
+<B>rhsButtonLabel</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+<B>lhsLabelText</B><br>
+</td>
+<td valign=top>
+<B>rhsLabelText</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "label" widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>lhsItems</B><br>
+</td>
+<td valign=top>
+<B>rhsItems</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>buttonPlacement</B>
+Class: <B>ButtonPlacement</B>
+Command-Line Switch: <B>-buttonplacement</B>
+</pre>
+<UL>
+Specifies the placement of the insertion and removal buttons relative to the
+scrolledlistbox widgets<B>n</B>,
+<B>bottom</B>, or <B>center</B>. The default is bottom.
+</UL>
+<P>
+<pre>
+Name: <B>lhsLabelText</B>
+Class: <B>LabelText</B>
+Command-Line Switch: <B>-lhslabeltext</B>
+</pre>
+<UL>
+Specifies the text for the label of the lhs scrolledlistbox.
+The default is "Available".
+</UL>
+<P>
+<pre>
+Name: <B>rhsLabelText</B>
+Class: <B>LabelText</B>
+Command-Line Switch: <B>-rhslabeltext</B>
+</pre>
+<UL>
+Specifies the text for the label of the rhs scrolledlistbox.
+The default is "Available".
+</UL>
+<P>
+<pre>
+Name: <B>lhsButtonLabel</B>
+Class: <B>LabelText</B>
+Command-Line Switch: <B>-lhsbuttonlabel</B>
+</pre>
+<UL>
+Specifies the text for the button of the lhs scrolledlistbox.
+The default is "Insert &gt;&gt;".
+</UL>
+<P>
+<pre>
+Name: <B>rhsButtonLabel</B>
+Class: <B>LabelText</B>
+Command-Line Switch: <B>-rhsbuttonlabel</B>
+</pre>
+<UL>
+Specifies the text for the button of the rhs scrolledlistbox.
+The default is "&lt;&lt; Remove".
+</UL>
+<P>
+</pre><HR>
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>disjointlistbox</B> command creates a disjoint pair of listboxs
+similar to the OSF/Motif "Book" printing dialog of the "FrameMaker"
+program. It is implementation constists of a two Scrolledlistboxs,
+2 buttons, and 2 labels.
+
+The disjoint behavior of this widget exists between the interaction of
+the two Scrolledlistboxes with one another. That is, a given instance
+of a Disjointlistbox will never exist, without the aid of a hack magician,
+which has Scrolledlistbox widgets with items in common. That means the
+relationship between the two is maintained similar to that of disjoint sets.
+
+Users may transfer items between the two Listbox widgets using the
+the two buttons.
+
+Options exists which include the ability to configure the "items" displayed by
+the 2 Scrolledlistboxes and to control the placement of the insertion and
+removal buttons.
+</pre><H2>METHODS</H2>
+<P>
+The <B>disjointlistbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for disjointlistbox widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>disjointlistbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>disjointlistbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>setlhs</B>
+</I></B>
+<DD> Set the current contents of the left-most Scrolledlistbox with the input list
+of items. Removes all (if any) items from the right-most Scrolledlistbox
+which exist in the input list option to maintain the disjoint property
+between the two
+</DL>
+<DL>
+<DT> <I>pathName <B>setrhs</B>
+</I></B>
+<DD> Set the current contents of the right-most Scrolledlistbox with the input list
+of items. Removes all (if any) items from the left-most Scrolledlistbox
+which exist in the input list option to maintain the disjoint property
+between the two
+</DL>
+<DL>
+<DT> <I>pathName <B>getlhs</B>
+</I></B>
+<DD> Returns the current contents of the left-most Scrolledlistbox
+</DL>
+<DL>
+<DT> <I>pathName <B>getrhs</B>
+</I></B>
+<DD> Returns the current contents of the right-most Scrolledlistbox
+</DL>
+<DL>
+<DT> <I>pathName <B>insertlhs</B>
+</I></B>
+<DD> Add the input list of items to the current contents of the left-most
+Scrolledlistbox. Removes all (if any) items from the right-most Scrolledlistbox
+which exist in the input list option to maintain the disjoint property
+between the two
+</DL>
+<DL>
+<DT> <I>pathName <B>insertrhs</B>
+</I></B>
+<DD> Add the input list of items to the current contents of the right-most
+Scrolledlistbox. Removes all (if any) items from the left-most Scrolledlistbox
+which exist in the input list option to maintain the disjoint property
+between the two.
+</DL>
+<DL>
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>lhs</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+The lhs component is the scrolledlistbox for the rhs button.
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the lhs
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>rhs</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+The rhs component is the scrolledlistbox for the rhs button.
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the rhs
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>lhsbutton</B>
+Class: <B>utton</B>
+</pre>
+<UL>
+The lhsbutton component is the button for users to remove selected items
+from the lhs Scrolledlistbox.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> widget manual entry for details on the lhs button component.
+</UL>
+<P>
+<pre>
+Name: <B>rhsbutton</B>
+Class: <B>Button</B>
+</pre>
+<UL>
+The rhsbutton component is the button for users to remove selected items
+from the rhs Scrolledlistbox.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> widget manual entry for details on the rhs button component.
+</UL>
+<P>
+<pre>
+Name: <B>lhsCount</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The lhsCount component is the label for displaying a count of the current items in
+the Scrolledlistbox.
+See the "Label" widget manual entry for details on the lhsCount label component.
+</UL>
+<P>
+<pre>
+Name: <B>rhsCount</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The rhsCount component is the label for displaying a count of the current items in
+the Scrolledlistbox.
+See the "Label" widget manual entry for details on the rhsCount label component.
+</UL>
+</table>
+<UL>
+</UL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+disjointlistbox .dlb
+pack .dlb -padx 10 -pady 10 -fill both -expand yes
+</pre>
+</pre><H2>AUTHOR(S)</H2>
+John A. Tucker
+</pre>
+Anthony Parent
+</pre><H2>KEYWORDS</H2>
+disjointlistbox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/entryfield.n.html b/itcl/iwidgets3.0.0/demos/html/entryfield.n.html
index 9ac0accb2ff..8a7f2d58cab 100644
--- a/itcl/iwidgets3.0.0/demos/html/entryfield.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/entryfield.n.html
@@ -1,305 +1,340 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - entryfield</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - entryfield</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- entryfield - Create and manipulate a entry field widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>entryfield</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- LabeledWidget &lt;- entryfield
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>exportSelection</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessinsertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTimeinsertWidth</STRONG>
- <STRONG>justify</STRONG> <STRONG>relief</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG> <STRONG>textVariable</STRONG> <STRONG>width</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>show</STRONG> <STRONG>state</STRONG>
-
- See the "entry" manual entry for details on the associated
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>childSitePos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-childsitepos</STRONG>
-
- Specifies the position of the child site in the entry
- field: <STRONG>n</STRONG>, <STRONG>s</STRONG>, <STRONG>e</STRONG>, or <STRONG>w</STRONG>. The default is e.
-
- Name: <STRONG>command</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-command</STRONG>
-
- Specifies a Tcl command to be executed upon detection
- of a Return key press event.
-
- Name: <STRONG>fixed</STRONG>
- Class: <STRONG>Fixed</STRONG>
- Command-Line Switch: <STRONG>-fixed</STRONG>
- Restrict entry to the specified number of chars. A
- value of 0, which is the default, denotes no limit.
- The value is the maximum number of chars the user may
- type into the field, regardles of field width. For
- example, if the field width is set to 20 and the fixed
- value is 10, the user will only be able to type 10
- characters into the field which is 20 characters long.
-
- Name: <STRONG>focusCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-focuscommand</STRONG>
-
- Specifies a Tcl command to be executed upon reception
- of focus.
-
- Name: <STRONG>invalid</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-invalid</STRONG>
-
- Specifies a Tcl command to be executed upon determina-
- tion of invalid input. The default is bell.
-
- Name: <STRONG>textBackground</STRONG>
- Class: <STRONG>Background</STRONG>
- Command-Line Switch: <STRONG>-textbackground</STRONG>
-
- Background color for inside textual portion of the
- entry field. The value may be given in any of the
- forms acceptable to <STRONG>Tk_GetColor</STRONG>.
-
- Name: <STRONG>textFont</STRONG>
- Class: <STRONG>Font</STRONG>
- Command-Line Switch: <STRONG>-textfont</STRONG>
-
- Name of font to use for display of text in entryfield.
- The value may be given in any of the forms acceptable
- to <STRONG>Tk_GetFont</STRONG>.
-
- Name: <STRONG>validate</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-validate</STRONG>
-
- The validate option allows specification of a valida-
- tion mechanism. Standard character validation such as
- <STRONG>numeric</STRONG>, <STRONG>alphabetic</STRONG>, <STRONG>integer</STRONG>, <STRONG>hexidecimal</STRONG>, <STRONG>real</STRONG>, and
- <STRONG>alphanumeric</STRONG> can be handled through the use of key-
- words. Should more extensive validation be necessary,
- the value may contain the name of a command script.
- The script should return a boolean value. True for
- valid, false for invalid. If false is returned, then
- the procedure associated with the invalid option will
- be invoked. If the validation script contains any <STRONG>%</STRONG>
- characters, then the script will not be executed
- directly. Instead, a new script will be generated by
- replacing each <STRONG>%</STRONG>, and the character following it, with
- information from the entryfield. The replacement
- depends on the character following the <STRONG>%</STRONG>, as defined in
- the list below.
-
- <STRONG>%c</STRONG> Replaced with the current input character.
-
- <STRONG>%P</STRONG> Replaced with the contents of the entryfield modified
- to include the latest keystoke. This is equivalent to
- peeking at the future contents, enabling rejection
- prior to the update.
-
- <STRONG>%S</STRONG> Replaced with the current contents of the entryfield
- prior to the latest keystroke being added.
-
- <STRONG>%W</STRONG> Replaced with the entryfield widget pathname.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>entryfield</STRONG> command creates an enhanced text entry widget
- with an optional associated label. Addtional options sup-
- port validation and establishing a upper limit on the number
- of characters which may be entered in the field.
-
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>entryfield</STRONG> command creates a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for entryfield
- widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>delete</STRONG> <STRONG>get</STRONG> <STRONG>icursor</STRONG> <STRONG>index</STRONG>
- <STRONG>insert</STRONG> <STRONG>scan</STRONG> <STRONG>selection</STRONG> <STRONG>xview</STRONG>
-
- See the "entry" manual entry for details on the associated
- methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>entryfield</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Returns the path name of the child site.
-
- <EM>pathName</EM> <STRONG>clear</STRONG>
- Clear entry widget
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>entryfield</STRONG> command.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>efchildsite</STRONG>
- Class: <STRONG>frame</STRONG>
-
- The efchildsite component is the user child site for
- the entry field. See the "frame" widget manual entry
- for details on the efchildsite component item.
-
- Name: <STRONG>entry</STRONG>
- Class: <STRONG>entry</STRONG>
-
- The entry component provides the entry field for user
- text input and display. See the "entry" widget manual
- entry for details on the entry component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- proc returnCmd {} {
- puts stdout "Return Pressed"
- }
-
- proc invalidCmd {} {
- puts stdout "Alphabetic contents invalid"
- }
-
- entryfield .ef -command returnCmd
-
- entryfield .fef -labeltext "Fixed:" -fixed 10 -width 12
-
- entryfield .nef -labeltext "Numeric:" -validate numeric -width 12
-
- entryfield .aef -labeltext "Alphabetic:" \
- -validate alphabetic -width 12 -invalid invalidCmd
-
- entryfield .pef -labeltext "Password:" \
- -show 267 -width 12 -command returnCmd
-
- LabeledWidget::alignLabels .ef .fef .nef .aef .pef
-
- pack .ef -fill x -expand yes -padx 10 -pady 5
- pack .fef -fill x -expand yes -padx 10 -pady 5
- pack .nef -fill x -expand yes -padx 10 -pady 5
- pack .aef -fill x -expand yes -padx 10 -pady 5
- pack .pef -fill x -expand yes -padx 10 -pady 5
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Sue Yockey
-
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- entryfield, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>entryfield - Create and manipulate a entry field widget</TITLE>
+<H1>entryfield - Create and manipulate a entry field widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>entryfield<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- LabeledWidget &lt;- entryfield
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>justify</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>relief</B><br>
+<B>textVariable</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectBackground</B><br>
+<B>width</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>state</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>childSitePos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-childsitepos</B>
+</pre>
+<UL>
+Specifies the position of the child site in the entry field: <B>n</B>,
+<B>s</B>, <B>e</B>, or <B>w</B>. The default is e.
+</UL>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon detection of a Return key
+press event.
+</UL>
+<P>
+<pre>
+Name: <B>fixed</B>
+Class: <B>Fixed</B>
+Command-Line Switch: <B>-fixed</B>
+</pre>
+<UL>
+Restrict entry to the specified number of chars. A value of 0, which is the
+default, denotes no limit. The value is the maximum number of chars the
+user may type into the field, regardles of field width. For example,
+if the field width is set to 20 and the fixed value is 10, the user will
+only be able to type 10 characters into the field which is 20 characters long.
+</UL>
+<P>
+<pre>
+Name: <B>focusCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-focuscommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon reception of focus.
+</UL>
+<P>
+<pre>
+Name: <B>invalid</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-invalid</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon determination of invalid input.
+The default is bell.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-textbackground</B>
+</pre>
+<UL>
+Background color for inside textual portion of the entry field. The value
+may be given in any of the forms acceptable to <B>Tk_GetColor</B>.
+</UL>
+<P>
+<pre>
+Name: <B>textFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-textfont</B>
+</pre>
+<UL>
+Name of font to use for display of text in entryfield. The value
+may be given in any of the forms acceptable to <B>Tk_GetFont</B>.
+</UL>
+<P>
+<pre>
+Name: <B>validate</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-validate</B>
+</pre>
+<UL>
+The validate option allows specification of a validation mechanism. Standard
+character validation such as <B>numeric</B>, <B>alphabetic</B>, <B>integer</B>,
+<B>hexidecimal</B>, <B>real</B>, and <B>alphanumeric</B> can be handled through
+the use of keywords. Should more
+extensive validation be necessary, the value may contain the name of
+a command script. The script should return a boolean value. True for
+valid, false for invalid. If false is returned, then the procedure
+associated with the invalid option will be invoked.
+If the validation script contains
+any <B>%</B> characters, then the script will not be
+executed directly. Instead, a new script will be
+generated by replacing each <B>%</B>, and the character following
+it, with information from the entryfield. The replacement
+depends on the character following the <B>%</B>, as defined in the
+list below.
+</UL>
+<DL>
+<DT> <B>%c</B>
+</I></B>
+<DD> Replaced with the current input character.
+</DL>
+<DL>
+<DT> <B>%P</B>
+</I></B>
+<DD> Replaced with the contents of the entryfield modified to include the latest
+keystoke. This is equivalent to peeking at the future contents, enabling
+rejection prior to the update.
+</DL>
+<DL>
+<DT> <B>%S</B>
+</I></B>
+<DD> Replaced with the current contents of the entryfield prior to the latest
+keystroke being added.
+</DL>
+<DL>
+<DT> <B>%W</B>
+</I></B>
+<DD> Replaced with the entryfield widget pathname.
+</DL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>entryfield</B> command creates an enhanced text entry widget with an
+optional associated label. Addtional options support validation and
+establishing a upper limit on the number of characters which may be
+entered in the field.
+</pre>
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>entryfield</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for entryfield widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>delete</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>get</B><br>
+<B>scan</B><br>
+</td>
+<td valign=top>
+<B>icursor</B><br>
+<B>selection</B><br>
+</td>
+<td valign=top>
+<B>index</B><br>
+<B>xview</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>entryfield</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the path name of the child site.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B>
+</I></B>
+<DD> Clear entry widget
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>entryfield</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>efchildsite</B>
+Class: <B>frame</B>
+</pre>
+<UL>
+The efchildsite component is the user child site for the entry field. See
+the "frame" widget manual entry for details on the efchildsite component item.
+</UL>
+<P>
+<pre>
+Name: <B>entry</B>
+Class: <B>entry</B>
+</pre>
+<UL>
+The entry component provides the entry field for user text input and display.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the entry component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ option add *textBackground white
+
+ proc returnCmd {} {
+ puts stdout "Return Pressed"
+ }
+
+ proc invalidCmd {} {
+ puts stdout "Alphabetic contents invalid"
+ }
+
+ entryfield .ef -command returnCmd
+
+ entryfield .fef -labeltext "Fixed:" -fixed 10 -width 12
+
+ entryfield .nef -labeltext "Numeric:" -validate numeric -width 12
+
+ entryfield .aef -labeltext "Alphabetic:" \\
+ -validate alphabetic -width 12 -invalid invalidCmd
+
+ entryfield .pef -labeltext "Password:" \\
+ -show \267 -width 12 -command returnCmd
+
+ Labeledwidget::alignlabels .ef .fef .nef .aef .pef
+
+ pack .ef -fill x -expand yes -padx 10 -pady 5
+ pack .fef -fill x -expand yes -padx 10 -pady 5
+ pack .nef -fill x -expand yes -padx 10 -pady 5
+ pack .aef -fill x -expand yes -padx 10 -pady 5
+ pack .pef -fill x -expand yes -padx 10 -pady 5
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:syockey@spd.dsccc.com">Sue Yockey</A>
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+<P>
+</pre><H2>KEYWORDS</H2>
+entryfield, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/extfileselectionbox.n.html b/itcl/iwidgets3.0.0/demos/html/extfileselectionbox.n.html
new file mode 100644
index 00000000000..b07b4695e13
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/extfileselectionbox.n.html
@@ -0,0 +1,467 @@
+<TITLE>extfileselectionbox - Create and manipulate a file selection box widget</TITLE>
+<H1>extfileselectionbox - Create and manipulate a file selection box widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>extfileselectionbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Extfileselectionbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>popupCursor</B><br>
+</td>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="combobox.n.html"> "combobox" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>sashCursor</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="panedwindow.n.html"> "panedwindow" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>childSitePos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-childsitepos</B>
+</pre>
+<UL>
+Specifies the position of the child site in the extended fileselection
+box: <B>n</B>, <B>s</B>, <B>e</B>, <B>w</B>, <B>top</B>, or <B>bottom</B>.
+The default is s.
+</UL>
+<P>
+<pre>
+Name: <B>directory</B>
+Class: <B>Directory</B>
+Command-Line Switch: <B>-directory</B>
+</pre>
+<UL>
+Specifies the initial default directory. The default is the present
+working directory.
+</UL>
+<P>
+<pre>
+Name: <B>dirSearchCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-dirsearchcommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed to perform a directory search.
+The command will receive the current working directory and filter
+mask as arguments. The command should return a list of files which
+will be placed into the directory list.
+</UL>
+<P>
+<pre>
+Name: <B>dirsLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-dirslabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the directory list. The default is
+"Directories".
+</UL>
+<P>
+<pre>
+Name: <B>dirsOn</B>
+Class: <B>DirsOn</B>
+Command-Line Switch: <B>-dirson</B>
+</pre>
+<UL>
+Specifies whether or not to display the directory list. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>fileSearchCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-filesearchcommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed to perform a file search.
+The command will receive the current working directory and filter
+mask as arguments. The command should return a list of files which
+will be placed into the file list.
+</UL>
+<P>
+<pre>
+Name: <B>filesLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-fileslabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the files list. The default is "Files".
+</UL>
+<P>
+<pre>
+Name: <B>filesOn</B>
+Class: <B>FilesOn</B>
+Command-Line Switch: <B>-fileson</B>
+</pre>
+<UL>
+Specifies whether or not to display the files list. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>fileType</B>
+Class: <B>FileType</B>
+Command-Line Switch: <B>-filetype</B>
+</pre>
+<UL>
+Specify the type of files which may appear in the file list: <B>regular</B>,
+<B>directory</B>, or <B>any</B>. The default is regular.
+</UL>
+<P>
+<pre>
+Name: <B>filterCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-filtercommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon hitting the Return key
+in the filter combobox widget.
+</UL>
+<P>
+<pre>
+Name: <B>filterLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-filterlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the filter combobox. The default is
+"Filter".
+</UL>
+<P>
+<pre>
+Name: <B>filterOn</B>
+Class: <B>FilterOn</B>
+Command-Line Switch: <B>-filteron</B>
+</pre>
+<UL>
+Specifies whether or not to display the filter combobox. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the selection box. The value may be specified in
+any of the forms acceptable to Tk_GetPixels. The default is 300 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>invalid</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-invalid</B>
+</pre>
+<UL>
+Command to be executed should the filter contents be proven
+invalid. The default is {bell}.
+</UL>
+<P>
+<pre>
+Name: <B>mask</B>
+Class: <B>Mask</B>
+Command-Line Switch: <B>-mask</B>
+</pre>
+<UL>
+Specifies the initial file mask string. The default is "*".
+</UL>
+<P>
+<pre>
+Name: <B>noMatchString</B>
+Class: <B>NoMatchString</B>
+Command-Line Switch: <B>-nomatchstring</B>
+</pre>
+<UL>
+Specifies the string to be displayed in the files list should no files
+match the mask. The default is "".
+</UL>
+<P>
+<pre>
+Name: <B>selectDirCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectdirommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed following selection of a
+directory in the directory list.
+</UL>
+<P>
+<pre>
+Name: <B>selectFileCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectfileommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed following selection of a
+file in the files list.
+</UL>
+<P>
+<pre>
+Name: <B>selectionCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectioncommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon hitting the Return key
+in the selection combobox widget.
+</UL>
+<P>
+<pre>
+Name: <B>selectionLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-selectionlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the selection combobox. The default
+is "Selection".
+</UL>
+<P>
+<pre>
+Name: <B>selectionOn</B>
+Class: <B>SelectionOn</B>
+Command-Line Switch: <B>-selectionon</B>
+</pre>
+<UL>
+Specifies whether or not to display the selection combobox. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the selection box. The value may be specified in
+any of the forms acceptable to Tk_GetPixels. The default is 350 pixels.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>extfileselectionbox</B> command creates an extended file
+selection box which is slightly different than the fileselectionbox widget.
+The differences are mostly cosmetic in that the listboxes are
+within a panedwindow and the entryfields for the filter and selection
+have been replaced by comboboxes. Other than that the interface is
+practically the same.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>extfileselectionbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for extfileselectionbox widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>extfileselectionbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the child site widget path name.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>extfileselectionbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>filter</B>
+</I></B>
+<DD> Update the current contents of the extended file selection box based
+on the current filter combobox value.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B>
+</I></B>
+<DD> Returns the current value of the selection combobox widget.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>dirs</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+The dirs component is the directory list box for the extended fileselection
+box. See the "scrolledlistbox" widget manual entry for details on the dirs
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>files</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+The files component is the file list box for the extended fileselection box.
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the files
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>filter</B>
+Class: <B>Combobox</B>
+</pre>
+<UL>
+The filter component is the field for user input of the filter value.
+See the <A HREF="combobox.n.html"> "combobox" </A> widget manual entry for details on the filter
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>selection</B>
+Class: <B>Combobox</B>
+</pre>
+<UL>
+The selection component is the field for user input of the currently
+selected file value. See the "combobox" widget manual entry for details
+on the selection component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+extfileselectionbox .fsb
+pack .fsb -padx 10 -pady 10 -fill both -expand yes
+</pre>
+</pre><H2>AUTHOR(S)</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre>
+Anthony Parent
+</pre><H2>KEYWORDS</H2>
+extfileselectionbox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/extfileselectiondialog.n.html b/itcl/iwidgets3.0.0/demos/html/extfileselectiondialog.n.html
new file mode 100644
index 00000000000..3f50b86a357
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/extfileselectiondialog.n.html
@@ -0,0 +1,375 @@
+<TITLE>extfileselectiondialog - Create and manipulate a file selection dialog widget</TITLE>
+<H1>extfileselectiondialog - Create and manipulate a file selection dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>extfileselectiondialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;- Extfileselectiondialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>popupCursor</B><br>
+</td>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="combobox.n.html"> "combobox" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childSitePos</B><br>
+<B>dirsOn</B><br>
+<B>filesOn</B><br>
+<B>invalid</B><br>
+<B>selectionOn</B><br>
+</td>
+<td valign=top>
+<B>directory</B><br>
+<B>filesLabel</B><br>
+<B>fileType</B><br>
+<B>mask</B><br>
+</td>
+<td valign=top>
+<B>dirsLabel</B><br>
+<B>filesLabelOn</B><br>
+<B>filterLabel</B><br>
+<B>noMatchString</B><br>
+</td>
+<td valign=top>
+<B>dirSearchCommand</B><br>
+<B>fileSearchCommand</B><br>
+<B>filterOn</B><br>
+<B>selectionLabel</B><br>
+</td>
+</table>
+<P>
+See the "extfileselectionbox" widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>sashCursor</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="panedwindow.n.html"> "panedwindow" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the above
+associated options.
+
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" widget manual entry for details on the above
+inherited options.
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>extfileselectiondialog</B> command creates an extended file
+selection dialog which is slightly different than the
+fileselectiondialog widget.
+The differences are mostly cosmetic in that the listboxes are
+within a panedwindow and the entryfields for the filter and selection
+have been replaced by comboboxes. Other than that the interface is
+practically the same.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>extfileselectiondialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for extfileselectiondialog widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>get</B><br>
+</td>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+<B>filter</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="fileselectionbox.n.html"> "fileselectionbox" </A> class manual entry for details on the
+associated methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by
+the <B>extfileselectiondialog</B> command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by
+the <B>extfileselectiondialog</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>fsb</B>
+Class: <B>Fileselectionbox</B>
+</pre>
+<UL>
+The fsb component is the extfileselectionbox for the extfileselectiondialog.
+See the "extfileselectionbox" widget manual entry for details on the fsb
+component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ #
+ # Non-modal example
+ #
+ proc okCallback {} {
+ puts "You selected [.nmfsd get]"
+ .nmfsd deactivate
+ }
+
+ extfileselectiondialog .nmfsd -title Non-Modal
+ .nmfsd buttonconfigure OK -command okCallback
+
+ .nmfsd activate
+
+ #
+ # Modal example
+ #
+ extfileselectiondialog .mfsd -modality application
+ .mfsd center
+
+ if {[.mfsd activate]} {
+ puts "You selected [.mfsd get]"
+ } else {
+ puts "You cancelled the dialog"
+ }
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre>
+Anthony L. Parent
+</pre><H2>KEYWORDS</H2>
+extfileselectiondialog, extfileselectionbox, dialog, dialogshell, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/feedback.n.html b/itcl/iwidgets3.0.0/demos/html/feedback.n.html
index b67ebaba087..b2d3bca96b2 100644
--- a/itcl/iwidgets3.0.0/demos/html/feedback.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/feedback.n.html
@@ -1,195 +1,168 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - feedback</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - feedback</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- feedback - Create and manipulate a feedback widget to
- display feedback on the current status of an ongoing opera-
- tion to the user.
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>feedback</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- Feedback
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG>
- <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG> <STRONG>relief</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>barColor</STRONG>
- Class: <STRONG>BarColor</STRONG>
- Command-Line Switch: <STRONG>-barcolor</STRONG>
-
- Specifies the color of the status bar, in any of the
- forms acceptable to <STRONG>Tk_GetColor</STRONG>.
-
- Name: <STRONG>barHeight</STRONG>
- Class: <STRONG>BarHeight</STRONG>
- Command-Line Switch: <STRONG>-barheight</STRONG>
-
- Specifies the height of the status bar, in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>barWidth</STRONG>
- Class: <STRONG>BarWidth</STRONG>
- Command-Line Switch: <STRONG>-barwidth</STRONG>
-
- Specifies the total width of the status bar (when
- full,) in any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>elementBorderWidth</STRONG>
- Class: <STRONG>BorderWidth</STRONG>
- Command-Line Switch: <STRONG>-elementborderwidth</STRONG>
- Sets the width of the border around the status bar, in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. If it is
- set to zero, the status bar has no border.
-
- Name: <STRONG>steps</STRONG>
- Class: <STRONG>Steps</STRONG>
- Command-Line Switch: <STRONG>-steps</STRONG>
-
- Specifies the total number of steps for the status bar.
- The default is 10.
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>feedback</STRONG> command creates a feedback widget to display
- feedback on the current status of an ongoing operation to
- the user. Display is given as a percentage and as a thermom-
- eter type bar. Options exist for adding a label and control-
- ling its position.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>feedback</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for scrolledtext
- widgets:
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>scrolledhtml</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>feedback</STRONG> command.
-
- <EM>pathName</EM> <STRONG>reset</STRONG>
- Reset status to 0%
-
- <EM>pathName</EM> <STRONG>step</STRONG> ?<EM>inc</EM>?
- Increase the current number of steps completed by <EM>inc</EM>.
- <EM>Inc</EM> defaults to 1.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- feedback .fb -labeltext "Status" -steps 20
- pack .fb -padx 10 -pady 10 -fill both -expand yes
-
- for {set i 0} {$i &lt; 20} {incr i} {
- .fb step
- after 500
- }
-
-
-
-</PRE>
-<H2>ACKNOWLEDGEMENTS</H2><PRE>
- Sam Shen
-
- This code is based largely on his feedback.tcl code
- from tk inspect. The original feedback code is copy-
- right 1995 Lawrence Berkeley Laboratory.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Kris Raney
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- feedback, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>feedback - Create and manipulate a feedback widget to display feedback on</TITLE>
+<H1>feedback - Create and manipulate a feedback widget to display feedback on</H1>
+
+the current status of an ongoing operation to the user.
+</pre><H2>SYNOPSIS</H2>
+<B>feedback<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Feedback
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>highlightColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>barcolor</B>
+Class: <B>BarColor</B>
+Command-Line Switch: <B>-barcolor</B>
+</pre>
+<UL>
+Specifies the color of the status bar, in any of the forms
+acceptable to <B>Tk_GetColor</B>. The default is DodgerBlue.
+</UL>
+<P>
+<pre>
+Name: <B>barheight</B>
+Class: <B>BarHeight</B>
+Command-Line Switch: <B>-barheight</B>
+</pre>
+<UL>
+Specifies the height of the status bar, in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default is 20.
+</UL>
+<P>
+<pre>
+Name: <B>troughColor</B>
+Class: <B>TroughColor</B>
+Command-Line Switch: <B>-troughcolor</B>
+</pre>
+<UL>
+Specifies the color of the frame in which the status bar sits,
+in any of the forms acceptable to <B>Tk_GetColor</B>. The default is white.
+</UL>
+<P>
+<pre>
+Name: <B>steps</B>
+Class: <B>Steps</B>
+Command-Line Switch: <B>-steps</B>
+</pre>
+<UL>
+Specifies the total number of steps for the status bar. The default is 10.
+</UL>
+<P>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>feedback</B> command creates a widget to display feedback on
+the current status of an ongoing operation to the user. Display is given as
+a percentage and as a thermometer type bar. Options exist for adding a label
+and controlling its position.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>feedback</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for scrolledtext widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>scrolledhtml</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>feedback</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>reset</B>
+</I></B>
+<DD> Reset the current number of steps completed to 0, and configures the
+percentage complete label text to 0%
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>step</B> ?<I>inc</I>?
+</I></B>
+<DD> Increase the current number of steps completed by the amount specified
+by <I>inc</I>. <I>Inc</I> defaults to 1.
+
+</DL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ feedback .fb -labeltext "Status" -steps 20
+ pack .fb -padx 10 -pady 10 -fill both -expand yes
+
+ for {set i 0} {$i &lt; 20} {incr i} {
+ .fb step
+ after 500
+ }
+</pre>
+</pre><H2>ACKNOWLEDGEMENTS</H2>
+Sam Shen
+<UL>
+This code is based largely on his feedback.tcl code from tk inspect. The
+original feedback code is copyright 1995 Lawrence Berkeley Laboratory.
+</UL>
+<P>
+</pre><H2>AUTHOR</H2>
+Kris Raney
+</pre><H2>KEYWORDS</H2>
+feedback, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/fileselectionbox.n.html b/itcl/iwidgets3.0.0/demos/html/fileselectionbox.n.html
index 4d61d442e78..8fce0cb94bb 100644
--- a/itcl/iwidgets3.0.0/demos/html/fileselectionbox.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/fileselectionbox.n.html
@@ -1,510 +1,456 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - fileselectionbox</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - fileselectionbox</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- fileselectionbox - Create and manipulate a file selection
- box widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>fileselectionbox</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Fileselectionbox
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessinsertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTimeinsertWidth</STRONG>
- <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG> <STRONG>selectBackground</STRONG>
- <STRONG>selectBorderWidth</STRONG> <STRONG>selectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG>
-
- See the "entryfield" widget manual entry for details on the
- above associated options.
-
- <STRONG>labelFont</STRONG> <STRONG>labelMargin</STRONG>
-
- See the "labeledwidget" widget manual entry for details on
- the above associated options.
-
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget class manual entry for details on
- the above associated options.
-
- <STRONG>hscrollMode</STRONG> <STRONG>sbWidth</STRONG> <STRONG>scrollMargin</STRONG> <STRONG>textBackground</STRONG>
- <STRONG>textFont</STRONG> <STRONG>vscrollMode</STRONG>
-
- See the "scrolledlistbox" widget manual entry for details on
- the above associated options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>childSitePos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-childsitepos</STRONG>
-
- Specifies the position of the child site in the selec-
- tion box: <STRONG>n</STRONG>, <STRONG>s</STRONG>, <STRONG>e</STRONG>, or <STRONG>w</STRONG>. The default is s.
-
- Name: <STRONG>dblDirsCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-dbldirscommand</STRONG>
-
- Specifies a Tcl command procedure which is called when
- an directory list item is double clicked. Typically
- this occurs when mouse button 1 is double clicked over
- a directory name.
-
- Name: <STRONG>dblFilesCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-dblfilescommand</STRONG>
-
- Specifies a Tcl command procedure which is called when
- an file list item is double clicked. Typically this
- occurs when mouse button 1 is double clicked over a
- file name.
-
- Name: <STRONG>directory</STRONG>
- Class: <STRONG>Directory</STRONG>
- Command-Line Switch: <STRONG>-directory</STRONG>
-
- Specifies the initial default directory. The default
- is the present working directory.
-
- Name: <STRONG>dirsfraction</STRONG>
- Class: <STRONG>DirsFraction</STRONG>
- Command-Line Switch: <STRONG>-dirsfraction</STRONG>
-
- Specifies the fraction as a percentage of the overall
- width that the directory list takes up.
-
- Name: <STRONG>dirSearchCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-dirsearchcommand</STRONG>
-
- Specifies a Tcl command to be executed to perform a
- directory search. The command will receive the current
- working directory and filter mask as arguments. The
- command should return a list of files which will be
- placed into the directory list.
-
- Name: <STRONG>dirsLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-dirslabel</STRONG>
-
- Specifies the text of the label for the directory list.
- The default is "Directories".
-
- Name: <STRONG>dirsLabelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-dirslabelpos</STRONG>
- Specifies the position of the label along the side of
- the directory list: <STRONG>n</STRONG>, <STRONG>ne</STRONG>, <STRONG>e</STRONG>, <STRONG>se</STRONG>, <STRONG>s</STRONG>, <STRONG>sw</STRONG>, <STRONG>w</STRONG>, or <STRONG>nw</STRONG>. The
- default is nw.
-
- Name: <STRONG>dirsOn</STRONG>
- Class: <STRONG>DirsOn</STRONG>
- Command-Line Switch: <STRONG>-dirson</STRONG>
-
- Specifies whether or not to display the directory list.
- The value may be given in any of the forms acceptable
- to <STRONG>Tcl_GetBoolean</STRONG>. The default is true.
-
- Name: <STRONG>fileSearchCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-filesearchcommand</STRONG>
-
- Specifies a Tcl command to be executed to perform a
- file search. The command will receive the current
- working directory and filter mask as arguments. The
- command should return a list of files which will be
- placed into the file list.
-
- Name: <STRONG>filesLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-fileslabel</STRONG>
-
- Specifies the text of the label for the files list.
- The default is "Files".
-
- Name: <STRONG>filesLabelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-fileslabelpos</STRONG>
-
- Specifies the position of the label along the side of
- the files list: : <STRONG>n</STRONG>, <STRONG>ne</STRONG>, <STRONG>e</STRONG>, <STRONG>se</STRONG>, <STRONG>s</STRONG>, <STRONG>sw</STRONG>, <STRONG>w</STRONG>, or <STRONG>nw</STRONG>. The
- default is nw.
-
- Name: <STRONG>filesOn</STRONG>
- Class: <STRONG>FilesOn</STRONG>
- Command-Line Switch: <STRONG>-fileson</STRONG>
-
- Specifies whether or not to display the files list.
- The value may be given in any of the forms acceptable
- to <STRONG>Tcl_GetBoolean</STRONG>. The default is true.
-
- Name: <STRONG>fileType</STRONG>
- Class: <STRONG>FileType</STRONG>
- Command-Line Switch: <STRONG>-filetype</STRONG>
-
- Specify the type of files which may appear in the file
- list: <STRONG>regular</STRONG>, <STRONG>directory</STRONG>, or <STRONG>any</STRONG>. The default is regu-
- lar.
-
- Name: <STRONG>filterCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-filtercommand</STRONG>
-
- Specifies a Tcl command to be executed upon hitting the
- Return key in the filter entry widget.
-
- Name: <STRONG>filterFocusCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-filterfocuscommand</STRONG>
-
- Specifies a Tcl command to be executed upon reception
- of focus by the filter.
-
- Name: <STRONG>filterLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-filterlabel</STRONG>
-
- Specifies the text of the label for the filter entry
- field. The default is "Filter".
-
- Name: <STRONG>filterLabelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-filterlabelpos</STRONG>
-
- Specifies the position of the label along the side of
- the filter: <STRONG>n</STRONG>, <STRONG>ne</STRONG>, <STRONG>e</STRONG>, <STRONG>se</STRONG>, <STRONG>s</STRONG>, <STRONG>sw</STRONG>, <STRONG>w</STRONG>, or <STRONG>nw</STRONG>. The default
- is nw.
-
- Name: <STRONG>filterOn</STRONG>
- Class: <STRONG>FilterOn</STRONG>
- Command-Line Switch: <STRONG>-filteron</STRONG>
-
- Specifies whether or not to display the filter entry.
- The value may be given in any of the forms acceptable
- to <STRONG>Tcl_GetBoolean</STRONG>. The default is true.
-
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the selection box. The value
- may be specified in any of the forms acceptable to
- Tk_GetPixels. The default is 360 pixels.
-
- Name: <STRONG>horizmargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-horizmargin</STRONG>
-
- Specifies distance between the lists and
- filter/selection entries. The value may be given in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 7.
-
- Name: <STRONG>invalid</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-invalid</STRONG>
-
- Command to be executed should the filter contents be
- proven invalid. The default is {bell}.
-
- Name: <STRONG>mask</STRONG>
- Class: <STRONG>Mask</STRONG>
- Command-Line Switch: <STRONG>-mask</STRONG>
-
- Specifies the initial file mask string. The default is
- "*".
-
- Name: <STRONG>noMatchString</STRONG>
- Class: <STRONG>NoMatchString</STRONG>
- Command-Line Switch: <STRONG>-nomatchstring</STRONG>
-
- Specifies the string to be displayed in the files list
- should no files match the mask. The default is "[
- ]".
-
- Name: <STRONG>selectDirCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-selectdirommand</STRONG>
-
- Specifies a Tcl command to be executed following selec-
- tion of a directory in the directory list.
-
- Name: <STRONG>selectFileCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-selectfileommand</STRONG>
-
- Specifies a Tcl command to be executed following selec-
- tion of a file in the files list.
-
- Name: <STRONG>selectionCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-selectioncommand</STRONG>
-
- Specifies a Tcl command to be executed upon hitting the
- Return key in the selection entry widget.
-
- Name: <STRONG>selectionFocusCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-selectionfocuscommand</STRONG>
-
- Specifies a Tcl command to be executed upon reception
- of focus by the selection entry.
-
- Name: <STRONG>selectionImage</STRONG>
- Class: <STRONG>Image</STRONG>
- Command-Line Switch: <STRONG>-selectionimage</STRONG>
-
- Specifies a image to be used as the selection entry
- label. The image may be any of the values created by
- the <STRONG>image</STRONG> <STRONG>create</STRONG> command.
-
- Name: <STRONG>selectionLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-selectionlabel</STRONG>
-
- Specifies the text of the label for the selection entry
- field. The default is "Selection".
-
- Name: <STRONG>selectionLabelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-selectionlabelpos</STRONG>
-
- Specifies the position of the label along the side of
- the selection: <STRONG>n</STRONG>, <STRONG>ne</STRONG>, <STRONG>e</STRONG>, <STRONG>se</STRONG>, <STRONG>s</STRONG>, <STRONG>sw</STRONG>, <STRONG>w</STRONG>, or <STRONG>nw</STRONG>. The
- default is nw.
-
- Name: <STRONG>selectionOn</STRONG>
- Class: <STRONG>SelectionOn</STRONG>
- Command-Line Switch: <STRONG>-selectionon</STRONG>
-
- Specifies whether or not to display the selection
- entry. The value may be given in any of the forms
- acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The default is true.
-
- Name: <STRONG>style</STRONG>
- Class: <STRONG>Syle</STRONG>
- Command-Line Switch: <STRONG>-style</STRONG>
-
- Specifies display style of the fileselectionbox: <STRONG>motif</STRONG>
- or <STRONG>notif</STRONG>. The default is motif which reflects the lay-
- out of the OSF/Motif standard Xmfileselectionbox widget
- composed of directory and file scrolled lists as well
- as filter and selection entry fields. The notif option
- setting varies the layout by removing directory names
- from the files, separates the lists by a paned window,
- and changes the filter and entry fields into com-
- boboxes.
-
- Name: <STRONG>vertmargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-vertmargin</STRONG>
-
- Specifies distance between the directory and file
- lists. The value may be given in any of the forms
- acceptable to <STRONG>Tk_GetPixels</STRONG>. The default is 7. This
- option is only useful for motif styled fileselection-
- boxes. For notif styled ones, use the dirsfraction
- option to modify spacing between the directory and
- files lists.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the selection box. The value
- may be specified in any of the forms acceptable to
- Tk_GetPixels. The default is 470 pixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>fileselectionbox</STRONG> command creates a file selection box
- similar to the OSF/Motif standard Xmfileselectionbox compo-
- site widget. The fileselectionbox is composed of directory
- and file scrolled lists as well as filter and selection
- entry fields. Bindings are in place such that selection of
- a directory list item loads the filter entry field and
- selection of a file list item loads the selection entry
- field. Options exist to control the appearance and actions
- of the widget.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>fileselectionbox</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for fileselec-
- tionbox widgets:
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>fileselectionbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Returns the child site widget path name.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>fileselectionbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>filter</STRONG>
- Update the current contents of the file selection box
- based on the current filter entry field value.
-
- <EM>pathName</EM> <STRONG>get</STRONG>
- Returns the current value of the selection entry
- widget.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>childsite</STRONG>
- Class: <STRONG>Frame</STRONG>
-
- The childsite component is the user child site for the
- file selection box. See the "frame" widget manual
- entry for details on the childsite component item.
-
- Name: <STRONG>dirs</STRONG>
- Class: <STRONG>Scrolledlistbox</STRONG>
-
- The dirs component is the directory list box for the
- file selection box. See the "scrolledlistbox" widget
- manual entry for details on the dirs component item.
-
- Name: <STRONG>files</STRONG>
- Class: <STRONG>Scrolledlistbox</STRONG>
-
- The files component is the file list box for the file
- selection box. See the "scrolledlistbox" widget manual
- entry for details on the files component item.
-
- Name: <STRONG>filter</STRONG>
- Class: <STRONG>Entryfield</STRONG>
-
- The filter component is the entry field for user input
- of the filter value. See the "entryfield" widget
- manual entry for details on the filter component item.
-
-
- Name: <STRONG>selection</STRONG>
- Class: <STRONG>Entryfield</STRONG>
-
- The selection component is the entry field for user
- input of the currently selected file value. See the
- "entryfield" widget manual entry for details on the
- selection component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground GhostWhite
-
- fileselectionbox .fsb
- pack .fsb -padx 10 -pady 10 -fill both -expand yes
-
-
-
-</PRE>
-<H2>AUTHOR(S)</H2><PRE>
- Mark L. Ulferts
-
- Anthony Parent
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- fileselectionbox, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>fileselectionbox - Create and manipulate a file selection box widget</TITLE>
+<H1>fileselectionbox - Create and manipulate a file selection box widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>fileselectionbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Fileselectionbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>childSitePos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-childsitepos</B>
+</pre>
+<UL>
+Specifies the position of the child site in the selection box: <B>n</B>,
+<B>s</B>, <B>e</B>, <B>w</B>, <B>top</B>, <B>bottom</B>, or <B>center</B>. The
+default is s.
+</UL>
+</table>
+<UL>
+Specifies a Tcl command procedure which is called when an file list item is
+double clicked. Typically this occurs when mouse button 1 is double
+clicked over a file name.
+</UL>
+<P>
+<pre>
+Name: <B>directory</B>
+Class: <B>Directory</B>
+Command-Line Switch: <B>-directory</B>
+</pre>
+<UL>
+Specifies the initial default directory. The default is the present
+working directory.
+</UL>
+<P>
+<pre>
+Name: <B>dirSearchCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-dirsearchcommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed to perform a directory search.
+The command will receive the current working directory and filter
+mask as arguments. The command should return a list of files which
+will be placed into the directory list.
+</UL>
+<P>
+<pre>
+Name: <B>dirsLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-dirslabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the directory list. The default is
+"Directories".
+</UL>
+<P>
+<pre>
+Name: <B>dirsOn</B>
+Class: <B>DirsOn</B>
+Command-Line Switch: <B>-dirson</B>
+</pre>
+<UL>
+Specifies whether or not to display the directory list. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>fileSearchCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-filesearchcommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed to perform a file search.
+The command will receive the current working directory and filter
+mask as arguments. The command should return a list of files which
+will be placed into the file list.
+</UL>
+<P>
+<pre>
+Name: <B>filesLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-fileslabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the files list. The default is "Files".
+</UL>
+<P>
+<pre>
+Name: <B>filesOn</B>
+Class: <B>FilesOn</B>
+Command-Line Switch: <B>-fileson</B>
+</pre>
+<UL>
+Specifies whether or not to display the files list. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>fileType</B>
+Class: <B>FileType</B>
+Command-Line Switch: <B>-filetype</B>
+</pre>
+<UL>
+Specify the type of files which may appear in the file list: <B>regular</B>,
+<B>directory</B>, or <B>any</B>. The default is regular.
+</UL>
+<P>
+<pre>
+Name: <B>filterCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-filtercommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon hitting the Return key
+in the filter entry widget.
+</UL>
+<P>
+<pre>
+Name: <B>filterLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-filterlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the filter entry field. The default is
+"Filter".
+</UL>
+<P>
+<pre>
+Name: <B>filterOn</B>
+Class: <B>FilterOn</B>
+Command-Line Switch: <B>-filteron</B>
+</pre>
+<UL>
+Specifies whether or not to display the filter entry. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the selection box. The value may be specified in
+any of the forms acceptable to Tk_GetPixels. The default is 360 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>invalid</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-invalid</B>
+</pre>
+<UL>
+Command to be executed should the filter contents be proven
+invalid. The default is {bell}.
+</UL>
+<P>
+<pre>
+Name: <B>mask</B>
+Class: <B>Mask</B>
+Command-Line Switch: <B>-mask</B>
+</pre>
+<UL>
+Specifies the initial file mask string. The default is "*".
+</UL>
+<P>
+<pre>
+Name: <B>noMatchString</B>
+Class: <B>NoMatchString</B>
+Command-Line Switch: <B>-nomatchstring</B>
+</pre>
+<UL>
+Specifies the string to be displayed in the files list should no files
+match the mask. The default is "".
+</UL>
+<P>
+<pre>
+Name: <B>selectDirCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectdirommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed following selection of a
+directory in the directory list.
+</UL>
+<P>
+<pre>
+Name: <B>selectFileCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectfileommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed following selection of a
+file in the files list.
+</UL>
+<P>
+<pre>
+Name: <B>selectionCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectioncommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon hitting the Return key
+in the selection entry widget.
+</UL>
+<P>
+<pre>
+Name: <B>selectionLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-selectionlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the selection entry field. The default
+is "Selection".
+</UL>
+<P>
+<pre>
+Name: <B>selectionOn</B>
+Class: <B>SelectionOn</B>
+Command-Line Switch: <B>-selectionon</B>
+</pre>
+<UL>
+Specifies whether or not to display the selection entry. The
+value may be given in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the selection box. The value may be specified in
+any of the forms acceptable to Tk_GetPixels. The default is 470 pixels.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>fileselectionbox</B> command creates a file selection box similar
+to the OSF/Motif standard Xmfileselectionbox composite widget. The
+fileselectionbox is composed of directory and file scrolled lists as
+well as filter and selection entry fields. Bindings are in place such that
+selection of a directory list item loads the filter entry field and
+selection of a file list item loads the selection entry field. Options
+exist to control the appearance and actions of the widget.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>fileselectionbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for fileselectionbox widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>fileselectionbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the child site widget path name.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>fileselectionbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>filter</B>
+</I></B>
+<DD> Update the current contents of the file selection box based on the current
+filter entry field value.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B>
+</I></B>
+<DD> Returns the current value of the selection entry widget.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>dirs</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+The dirs component is the directory list box for the file selection box.
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the dirs
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>files</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+The files component is the file list box for the file selection box.
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the files
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>filter</B>
+Class: <B>Entryfield</B>
+</pre>
+<UL>
+The filter component is the entry field for user input of the filter value.
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the filter
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>selection</B>
+Class: <B>Entryfield</B>
+</pre>
+<UL>
+The selection component is the entry field for user input of the currently
+selected file value. See the "entryfield" widget manual entry for details
+on the selection component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+fileselectionbox .fsb
+pack .fsb -padx 10 -pady 10 -fill both -expand yes
+</pre>
+</pre><H2>AUTHOR(S)</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+fileselectionbox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/fileselectiondialog.n.html b/itcl/iwidgets3.0.0/demos/html/fileselectiondialog.n.html
index aeea455cd31..14fc95b51e5 100644
--- a/itcl/iwidgets3.0.0/demos/html/fileselectiondialog.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/fileselectiondialog.n.html
@@ -1,255 +1,339 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - fileselectiondialog</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - fileselectiondialog</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- fileselectiondialog - Create and manipulate a file selection
- dialog widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>fileselectiondialog</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;-
- Fileselectiondialog
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessinsertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTimeinsertWidth</STRONG>
- <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG> <STRONG>selectBackground</STRONG>
- <STRONG>selectBorderWidth</STRONG> <STRONG>selectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG>
-
- See the "entryfield" widget manual entry for details on the
- above associated options.
-
- <STRONG>childSitePos</STRONG> <STRONG>directory</STRONG> <STRONG>dirsLabel</STRONG> <STRONG>dirSearchCommand</STRONG>
- <STRONG>dirsFraction</STRONG> <STRONG>dirsLabelPos</STRONG> <STRONG>dirsOn</STRONG> <STRONG>filesLabel</STRONG>
- <STRONG>filesLabelOn</STRONG> <STRONG>fileSearchCommand</STRONG> <STRONG>filesLabelPosfilesOn</STRONG>
- <STRONG>fileType</STRONG> <STRONG>filterLabel</STRONG> <STRONG>filterLabelPos</STRONG> <STRONG>filterOn</STRONG>
- <STRONG>invalid</STRONG> <STRONG>mask</STRONG> <STRONG>noMatchString</STRONG> <STRONG>selectionCommand</STRONG>
- <STRONG>selectionLabel</STRONG> <STRONG>selectionLabelPos</STRONG> <STRONG>selectionOnstyle</STRONG>
- <STRONG>vertMargin</STRONG>
-
- See the "fileselectionbox" widget manual entry for details
- on the above associated options.
-
- <STRONG>labelFont</STRONG> <STRONG>labelMargin</STRONG>
-
- See the "labeledwidget" widget manual entry for details on
- the above associated options.
-
- <STRONG>horizMargin</STRONG> <STRONG>hscrollMode</STRONG> <STRONG>sbWidth</STRONG> <STRONG>scrollMargin</STRONG>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG> <STRONG>vScrollMode</STRONG>
-
- See the "scrolledlistbox" widget manual entry for details on
- the above associated options.
-
-
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget class manual entry for details on
- the above associated options.
-
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>buttonBoxPadX</STRONG> <STRONG>buttonBoxPadY</STRONG> <STRONG>buttonBoxPos</STRONG> <STRONG>padX</STRONG>
- <STRONG>padY</STRONG> <STRONG>separator</STRONG> <STRONG>thickness</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited options.
-
- <STRONG>master</STRONG> <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" widget manual entry for details on the above
- inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the file selection dialog. The
- value may be specified in any of the forms acceptable
- to Tk_GetPixels. The default is 435 pixels.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the file selection dialog. The
- value may be specified in any of the forms acceptable
- to Tk_GetPixels. The default is 450 pixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>fileselectiondialog</STRONG> command creates a file selection
- dialog similar to the OSF/Motif standard composite widget.
- The fileselectiondialog is derived from the Dialog class and
- is composed of a FileSelectionBox with attributes set to
- manipulate the dialog buttons.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>fileselectiondialog</STRONG> command creates a new Tcl command
- whose name is <EM>pathName</EM>. This command may be used to invoke
- various operations on the widget. It has the following gen-
- eral form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for fileselec-
- tiondialog widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>get</STRONG> <STRONG>childsite</STRONG> <STRONG>filter</STRONG>
-
- See the "fileselectionbox" class manual entry for details on
- the associated methods.
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>add</STRONG> <STRONG>buttonconfigure</STRONG> <STRONG>defaulthide</STRONG>
- <STRONG>insert</STRONG> <STRONG>invoke</STRONG> <STRONG>show</STRONG>
-
- See the "buttonbox" widget manual entry for details on the
- above inherited methods.
-
- <STRONG>activate</STRONG> <STRONG>center</STRONG> <STRONG>deactivate</STRONG>
-
- See the "shell" widget manual entry for details on the above
- inherited methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>fileselectiondialog</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>fileselectiondialog</STRONG> com-
- mand.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>fsb</STRONG>
- Class: <STRONG>Fileselectionbox</STRONG>
-
- The fsb component is the file selection box for the
- file selection dialog. See the "fileselectionbox"
- widget manual entry for details on the fsb component
- item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- fileselectiondialog .fsd
- .fsd activate
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- fileselectiondialog, fileselectionbox, dialog, dialogshell,
- shell, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>fileselectiondialog - Create and manipulate a file selection dialog widget</TITLE>
+<H1>fileselectiondialog - Create and manipulate a file selection dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>fileselectiondialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;- Fileselectiondialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above associated
+options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childSitePos</B><br>
+<B>dirsOn</B><br>
+<B>filesOn</B><br>
+<B>invalid</B><br>
+<B>selectionOn</B><br>
+</td>
+<td valign=top>
+<B>directory</B><br>
+<B>filesLabel</B><br>
+<B>fileType</B><br>
+<B>mask</B><br>
+</td>
+<td valign=top>
+<B>dirsLabel</B><br>
+<B>filesLabelOn</B><br>
+<B>filterLabel</B><br>
+<B>noMatchString</B><br>
+</td>
+<td valign=top>
+<B>dirSearchCommand</B><br>
+<B>fileSearchCommand</B><br>
+<B>filterOn</B><br>
+<B>selectionLabel</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="fileselectionbox.n.html"> "fileselectionbox" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
+associated options.
+
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" widget manual entry for details on the above
+inherited options.
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>fileselectiondialog</B> command creates a file selection dialog
+similar to the OSF/Motif standard composite widget. The
+fileselectiondialog is derived from the Dialog class and is composed of
+a FileSelectionBox with attributes set to manipulate the dialog buttons.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>fileselectiondialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for fileselectiondialog widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>get</B><br>
+</td>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+<B>filter</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="fileselectionbox.n.html"> "fileselectionbox" </A> class manual entry for details on the
+associated methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by
+the <B>fileselectiondialog</B> command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by
+the <B>fileselectiondialog</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>fsb</B>
+Class: <B>Fileselectionbox</B>
+</pre>
+<UL>
+The fsb component is the file selection box for the file selection dialog.
+See the <A HREF="fileselectionbox.n.html"> "fileselectionbox" </A> widget manual entry for details on the fsb
+component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ #
+ # Non-modal example
+ #
+ proc okCallback {} {
+ puts "You selected [.nmfsd get]"
+ .nmfsd deactivate
+ }
+
+ fileselectiondialog .nmfsd -title Non-Modal
+ .nmfsd buttonconfigure OK -command okCallback
+
+ .nmfsd activate
+
+ #
+ # Modal example
+ #
+ fileselectiondialog .mfsd -modality application
+ .mfsd center
+
+ if {[.mfsd activate]} {
+ puts "You selected [.mfsd get]"
+ } else {
+ puts "You cancelled the dialog"
+ }
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+fileselectiondialog, fileselectionbox, dialog, dialogshell, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/finddialog.n.html b/itcl/iwidgets3.0.0/demos/html/finddialog.n.html
new file mode 100644
index 00000000000..2d1733805b1
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/finddialog.n.html
@@ -0,0 +1,392 @@
+<TITLE>finddialog - Create and manipulate a find dialog widget</TITLE>
+<H1>finddialog - Create and manipulate a find dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>finddialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Finddialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>cursor</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>activeForeground</B><br>
+<B>disabledForeground</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectColor</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>font</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>selectColor</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "checkbutton" widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>selectColor</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" widget manual entry for details on the above
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>clearCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-clearcommand</B>
+</pre>
+<UL>
+Specifies a command to be invoked following a clear operation.
+The option is meant to be used as means of notification that the
+clear has taken place and allow other actions to take place such
+as disabling a find again menu.
+</UL>
+<P>
+<pre>
+Name: <B>matchCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-matchcommand</B>
+</pre>
+<UL>
+Specifies a command to be invoked following a find operation.
+The command is called with a match point as an argument which identifies
+where exactly where in the text or scrolledtext widget that the match
+is located. Should a match not be found the match point is {}. The
+option is meant to be used as a means of notification that the
+find operation has completed and allow other actions to take place
+such as disabling a find again menu option if the match point was {}.
+</UL>
+<P>
+<pre>
+Name: <B>patternBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-patternbackground</B>
+</pre>
+<UL>
+Specifies the background color of the text matching the search
+pattern. It may have any of the forms accepted by Tk_GetColor.
+The default is gray44.
+</UL>
+<P>
+<pre>
+Name: <B>patternForeground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-patternforeground</B>
+</pre>
+<UL>
+Specifies the foreground color of the text matching the search
+pattern. It may have any of the forms accepted by Tk_GetColor.
+The default is white.
+</UL>
+<P>
+<pre>
+Name: <B>searchBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-searchbackground</B>
+</pre>
+<UL>
+Specifies the background color of the line containing the matching
+the search pattern. It may have any of the forms accepted by Tk_GetColor.
+The default is gray77.
+</UL>
+<P>
+<pre>
+Name: <B>searchForeground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-searchforeground</B>
+</pre>
+<UL>
+Specifies the foreground color of the line containing the matching
+the search pattern. It may have any of the forms accepted by Tk_GetColor.
+The default is black.
+</UL>
+<P>
+<pre>
+Name: <B>textWidget</B>
+Class: <B>TextWidget</B>
+Command-Line Switch: <B>-textwidget</B>
+</pre>
+<UL>
+Specifies the text or scrolledtext widget to be searched.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>finddialog</B> command creates a find dialog that works in
+conjunction with a text or scrolledtext widget to provide a means
+of performing search operations. The user is prompted for a text
+pattern to be found in the text or scrolledtext widget. The
+search can be for all occurances, by regular expression, considerate
+of the case, or backwards.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>finddialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for finddialog widgets:
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>finddialog</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B>
+</I></B>
+<DD> Clears the pattern in the entry field and the pattern matchin
+indicators in the text or scrolledtext widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>finddialog</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>find</B>
+</I></B>
+<DD> Search for a specific text string in the text widget given by
+the -textwidget option. This method is the standard callback
+for the Find button. It is made available such that it can be
+bound to a find again action.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>all</B>
+Class: <B>Checkbutton</B>
+</pre>
+<UL>
+The all component specifies that all the matches of the pattern should be
+found when performing the search. See the "checkbutton" widget manual
+entry for details on the all component item.
+</UL>
+<P>
+<pre>
+Name: <B>backwards</B>
+Class: <B>Checkbutton</B>
+</pre>
+<UL>
+The backwards component specifies that the search should continue in
+a backwards direction towards the beginning of the text or scrolledtext
+widget. See the "checkbutton" widget manual entry for details on the
+backwards component item.
+</UL>
+<P>
+<pre>
+Name: <B>case</B>
+Class: <B>Checkbutton</B>
+</pre>
+<UL>
+The case component specifies that the case of the pattern should be
+taken into consideration when performing the search. See the
+"checkbutton" widget manual entry for details on the case component item.
+</UL>
+<P>
+<pre>
+Name: <B>pattern</B>
+Class: <B>Entryfield</B>
+</pre>
+<UL>
+The pattern component provides the pattern entry field. See the
+"entryfield" widget manual entry for details on the pattern component item.
+</UL>
+<P>
+<pre>
+Name: <B>regexp</B>
+Class: <B>Checkbutton</B>
+</pre>
+<UL>
+The regexp component specifies that the pattern is a regular expression.
+See the "checkbutton" widget manual entry for details on the regexp
+component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ scrolledtext .st
+ pack .st
+ .st insert end "Now is the time for all good men\\n"
+ .st insert end "to come to the aid of their country"
+
+ finddialog .fd -textwidget .st
+ .fd center .st
+ .fd activate
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+finddialog, dialogshell, shell, widget
+
diff --git a/itcl/iwidgets3.0.0/demos/html/hierarchy.n.html b/itcl/iwidgets3.0.0/demos/html/hierarchy.n.html
new file mode 100644
index 00000000000..4496fec9f5a
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/hierarchy.n.html
@@ -0,0 +1,673 @@
+<TITLE>hierarchy - Create and manipulate a hierarchy widget</TITLE>
+<H1>hierarchy - Create and manipulate a hierarchy widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>hierarchy<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Scrolledwidget &lt;- Hierarchy
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>activeForeground</B><br>
+<B>disabledForeground</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>selectForeground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>spacing1</B><br>
+</td>
+<td valign=top>
+<B>spacing2</B><br>
+</td>
+<td valign=top>
+<B>spacing3</B><br>
+</td>
+<td valign=top>
+<B>tabs</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>alwaysQuery</B>
+Class: <B>AlwaysQuery</B>
+Command-Line Switch: <B>-alwaysquery</B>
+</pre>
+<UL>
+Boolean flag which tells the hierarchy widget weather or not
+each refresh of the display should be via a new query using
+the command value of the -querycommand option or use the values
+previous found the last time the query was made. The default
+is no.
+</UL>
+<P>
+<pre>
+Name: <B>closedIcon</B>
+Class: <B>Icon</B>
+Command-Line Switch: <B>-closedicon</B>
+</pre>
+<UL>
+Specifies the name of an existing closed icon image to be used in the
+hierarchy before those nodes that are collapsed. Should one not be
+provided, then a folder icon will be generated, pixmap if possible,
+bitmap otherwise.
+</UL>
+<P>
+<pre>
+Name: <B>expanded</B>
+Class: <B>Expanded</B>
+Command-Line Switch: <B>-expanded</B>
+</pre>
+<UL>
+When true, the hierarchy will be completely expanded when it
+is first displayed. A fresh display can be triggered by
+resetting the -querycommand option. The default is false.
+</UL>
+<P>
+<pre>
+Name: <B>filter</B>
+Class: <B>Filter</B>
+Command-Line Switch: <B>-filter</B>
+</pre>
+<UL>
+When true only the branch nodes and selected items are displayed.
+This gives a compact view of important items. The default is false.
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the hierarchy as an entire unit.
+The value may be specified in any of the forms acceptable to
+<B>Tk_GetPixels</B>. Any additional space needed to display the other
+components such as labels, margins, and scrollbars force the hierarchy
+to be compressed. A value of zero along with the same value for
+the width causes the value given for the visibleitems option
+to be applied which administers geometry constraints in a different
+manner. The default height is zero.
+</UL>
+<P>
+<pre>
+Name: <B>iconCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-iconcommand</B>
+</pre>
+<UL>
+Specifies a command to be executed upon user selection via mouse button
+one of any additional icons given in the values returned by the command
+associated with the -querycommand option. If this command contains "%n",
+it is replaced with the name of the node the icon belongs to. Should it
+contain "%i" then the icon name is substituted.
+</UL>
+<P>
+<pre>
+Name: <B>markBackground</B>
+Class: <B>Foreground</B>
+Command-Line Switch: <B>-markbackground</B>
+</pre>
+<UL>
+Specifies the background color to use when displaying marked nodes.
+</UL>
+<P>
+<pre>
+Name: <B>markForeground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-markforeground</B>
+</pre>
+<UL>
+Specifies the foreground color to use when displaying marked nodes.
+</UL>
+<P>
+<pre>
+Name: <B>menuCursor</B>
+Class: <B>Cursor</B>
+Command-Line Switch: <B>-menucursor</B>
+</pre>
+<UL>
+Specifies the mouse cursor to be used for the item and background
+menus. The value may have any of the forms accept able to Tk_GetCursor.
+</UL>
+<P>
+<pre>
+Name: <B>nodeIcon</B>
+Class: <B>Icon</B>
+Command-Line Switch: <B>-nodeicon</B>
+</pre>
+<UL>
+Specifies the name of an existing node icon image to be used in the
+hierarchy before those nodes that are leafs. Should one not be provided,
+then a dog-eared page icon will be generated, pixmap if possible, bitmap
+otherwise.
+</UL>
+<P>
+<pre>
+Name: <B>openIcon</B>
+Class: <B>Icon</B>
+Command-Line Switch: <B>-openicon</B>
+</pre>
+<UL>
+Specifies the name of an existing open icon image to be used in the
+hierarchy before those nodes that are expanded. Should one not be provided,
+then an open folder icon will be generated, pixmap if possible, bitmap
+otherwise.
+</UL>
+<P>
+<pre>
+Name: <B>queryCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-querycommand</B>
+</pre>
+<UL>
+Specifies the command executed to query the contents of each node. If this
+command contains "%n", it is replaced with the name of the desired
+node. In its simpilest form it should return the children of the
+given node as a list which will be depicted in the display.
+Since the names of the children are used as tags in the underlying
+text widget, each child must be unique in the hierarchy. Due to
+the unique requirement, the nodes shall be reffered to as uids
+or uid in the singular sense. The format of returned list is
+</UL>
+<UL>
+ {uid [uid ...]}
+</UL>
+<UL>
+ where uid is a unique id and primary key for the hierarchy entry
+</UL>
+<UL>
+Should the unique requirement pose a problem, the list returned
+can take on another more extended form which enables the
+association of text to be displayed with the uids. The uid must
+still be unique, but the text does not have to obey the unique
+rule. In addition, the format also allows the specification of
+additional tags to be used on the same entry in the hierarchy
+as the uid and additional icons to be displayed just before
+the node. The tags and icons are considered to be the property of
+the user in that the hierarchy widget will not depend on any of
+their values. The extended format is
+</UL>
+<UL>
+ {{uid [text [tags [icons]]]} {uid [text [tags [icons]]]} ...}
+</UL>
+<UL>
+ where uid is a unique id and primary key for the hierarchy entry
+ text is the text to be displayed for this uid
+ tags is a list of user tags to be applied to the entry
+ icons is a list of icons to be displayed in front of the text
+</UL>
+<UL>
+The hierarchy widget does a look ahead from each node to determine
+if the node has a children. This can be cost some performace with
+large hierarchies. User's can avoid this by providing a hint in
+the user tags. A tag of "leaf" or "branch" tells the hierarchy
+widget the information it needs to know thereby avoiding the look
+ahead operation.
+</UL>
+<P>
+<pre>
+Name: <B>hscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-hscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the horizontal
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>sbWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-sbwidth</B>
+</pre>
+<UL>
+Specifies the width of the scrollbar in any of the forms
+acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>scrollMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-scrollmargin</B>
+</pre>
+<UL>
+Specifies the distance between the text portion of the hierarchy and
+the scrollbars in any of the forms acceptable to <B>Tk_GetPixels</B>. The
+default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-textbackground</B>
+</pre>
+<UL>
+Specifies the background color for the text portion of the hierarchy in
+any of the forms acceptable to <B>Tk_GetColor</B>.
+</UL>
+<P>
+<pre>
+Name: <B>textFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-textfont</B>
+</pre>
+<UL>
+Specifies the font to be used in the text portion of the hierarchy.
+</UL>
+<P>
+<pre>
+Name: <B>visibleitems</B>
+Class: <B>VisibleItems</B>
+Command-Line Switch: <B>-visibleitems</B>
+</pre>
+<UL>
+Specifies the widthxheight in characters and lines for the hierarchy.
+This option is only administered if the width and height options
+are both set to zero, otherwise they take precedence. The default value
+is 80x24. With the visibleitems option engaged, geometry constraints
+are maintained only on the text portion of the hierarchy. The size of
+the other components such as
+labels, margins, and scroll bars, are additive and independent,
+effecting the overall size of the hierarchy. In contrast,
+should the width and height options have non zero values, they
+are applied to the hierarchy as a whole. The hierarchy
+is compressed or expanded to maintain the geometry constraints.
+</UL>
+<P>
+<pre>
+Name: <B>vscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-vscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the vertical
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the hierarchy as an entire unit.
+The value may be specified in any of the forms acceptable to
+<B>Tk_GetPixels</B>. Any additional space needed to display the other
+components such as labels, margins, and scrollbars force the text portion
+of the hierarchy
+to be compressed. A value of zero along with the same value for
+the height causes the value given for the visibleitems option
+to be applied which administers geometry constraints in a different
+manner. The default width is zero.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>hierarchy</B> command creates a hierarchical data view widget.
+It allows the graphical management of a a list of nodes that can be
+expanded or collapsed. Individual nodes can be highlighted.
+Clicking with the right mouse button on any item brings up a
+special item menu. Clicking on the background area brings up
+a different popup menu. Options exist to provide user control over
+the loading of the nodes and actions associated with node selection.
+Since the hierarchy is based on the scrolledtext widget, it includes
+options to control the method in which the scrollbars are displayed,
+i.e. statically or dynamically. Options also exist for adding a
+label to the hierarchy and controlling its position.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>hierarchy</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for hierarchy widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>bbox</B><br>
+<B>dlineinfo</B><br>
+<B>insert</B><br>
+<B>tag</B><br>
+</td>
+<td valign=top>
+<B>compare</B><br>
+<B>dump</B><br>
+<B>scan</B><br>
+<B>window</B><br>
+</td>
+<td valign=top>
+<B>debug</B><br>
+<B>get</B><br>
+<B>search</B><br>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>delete</B><br>
+<B>index</B><br>
+<B>see</B><br>
+<B>yview</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> manual entry for details on the standard methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>hierarchy</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B>
+</I></B>
+<DD> Removes all items from the hierarchy display including all tags and icons.
+The display will remain empty until the -filter or -querycommand
+options are set.
+</DL>
+<DL>
+<DT> <I>pathName <B>collapse</B> <I>uid</I>
+</I></B>
+<DD> Collapses the hierarchy beneath the node with the specified unique id by
+one level. Since this can take a moment for large hierarchies, the
+cursor will be changed to a watch during the collapse. Also, if any
+of the nodes beneath the node being collapsed are selected, their
+status is changed to unselected.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>hierarchy</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>current</B>
+</I></B>
+<DD> Returns the tags for the node that was most recently selected by the
+right mouse button when the item menu was posted. Usually used by the code
+in the item menu to figure out what item is being manipulated.
+</DL>
+<DL>
+<DT> <I>pathName <B>draw</B> ?<I>when</I>?
+</I></B>
+<DD> Performs a complete redraw of the entire hierarchy. When may be either -now
+or -eventually where the latter means the draw can be performed after idle.
+</DL>
+<DL>
+<DT> <I>pathName <B>expand</B> <I>uid</I>
+</I></B>
+<DD> Expands the hierarchy beneath the node with the specified unique id by
+one level. Since this can take a moment for large hierarchies, the cursor
+will be changed to a watch during the expansion.
+</DL>
+<DL>
+<DT> <I>pathName <B>mark</B> <I>option ?arg arg ...?</I>
+</I></B>
+<DD> This command is used to manipulate marks which is quite similar to
+selection, adding a secondary means of hilighting an item in the
+hierarchy. The exact behavior of the command depends on the
+<I>option</I> argument that follows the <B>mark</B> argument. The
+following forms of the command are currently supported:
+</DL>
+<UL>
+<DL>
+<DT> <I>pathName <B>mark clear</B>
+</I></B>
+<DD> Clears all the currently marked nodes in the hierarchy.
+</DL>
+<DL>
+<DT> <I>pathName <B>mark add <I>uid </I>?<I>uid uid ...</I>?
+</I></B>
+<DD> Marks the nodes with the specified uids in the hierarchy using the
+<B>-markbackground</B> and <B>-markforeground</B> options and without
+affecting the mark state of any other nodes that were already
+marked.
+</DL>
+<DL>
+<DT> <I>pathName <B>mark remove <I>uid </I>?<I>uid uid ...</I>?
+</I></B>
+<DD> Unmarks the nodes with the specified uids in the hierarchy without
+affecting the mark state of any other nodes that were already
+marked.
+</DL>
+<DL>
+<DT> <I>pathName <B>mark get</B>
+</I></B>
+<DD> Returns a list of the unique ids that are currently marked.
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName <B>refresh</B> <I>uid</I>
+</I></B>
+<DD> Performs a redraw of a specific node that has the given uid. If the node
+is not currently visible or in other words already drawn on the text,
+then no action is taken.
+</DL>
+<DL>
+<DT> <I>pathName <B>prune</B> <I>uid</I>
+</I></B>
+<DD> Removes the node specified by the given uid from the hierarchy. Should
+the node have children, then all of its children will be removed as well.
+</DL>
+<DL>
+<DT> <I>pathName <B>selection</B> <I>option </I>?<I>arg arg ...</I>?
+</I></B>
+<DD> This command is used to manipulate the selection of nodes in the
+hierarchy. The exact behavior of the command depends on the
+<I>option</I> argument that follows the <B>selection</B> argument. The
+following forms of the command are currently supported:
+</DL>
+<UL>
+<DL>
+<DT> <I>pathName <B>selection clear</B>
+</I></B>
+<DD> Clears all the currently selected nodes in the hierarchy.
+</DL>
+<DL>
+<DT> <I>pathName <B>selection add <I>uid </I>?<I>uid uid ...</I>?
+</I></B>
+<DD> Selects the nodes with the specified uids in the hierarchy using the
+<B>-selectionbackground</B> and <B>-selectionforeground</B> options and without
+affecting the selection state of any other nodes that were already
+selected.
+</DL>
+<DL>
+<DT> <I>pathName <B>selection remove <I>uid </I>?<I>uid uid ...</I>?
+</I></B>
+<DD> Deselects the nodes with the specified uids in the hierarchy without
+affecting the selection state of any other nodes that were already
+selected.
+</DL>
+<DL>
+<DT> <I>pathName <B>selection get</B>
+</I></B>
+<DD> Returns a list of the unique ids that are currently selected.
+</DL>
+</UL>
+A nodes selection status is also dependent on it being visible. If a
+node is selected and its parent is then collapsed making the selected
+node not visible, then its selection status is changed to unselected.
+<DL>
+<DT> <I>pathName <B>toggle</B> <I>uid</I>
+</I></B>
+<DD> Toggles the hierarchy beneath the node with the specified unique id. If
+the hierarchy is currently expanded, then it is collapsed, and vice-versa.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>list</B>
+Class: <B>Text</B>
+</pre>
+<UL>
+The list component is the text widget in which the hierarchy is displayed.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> widget manual entry for details on the text component item.
+</UL>
+<P>
+<pre>
+Name: <B>bgMenu</B>
+Class: <B>Menu</B>
+</pre>
+<UL>
+The bgMenu component is the popup menu which is displayed upon pressing
+the right mouse button in the background, i.e. not over a specific node. Menu
+items can be added along with their commands via the component command.
+See the "menu" widget manual entry for details on the bgMenu component item.
+</UL>
+<P>
+<pre>
+Name: <B>horizsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The horizsb component is the horizontal scroll bar. See the "scrollbar"
+widget manual entry for details on the horizsb component item.
+</UL>
+<P>
+<pre>
+Name: <B>itemMenu</B>
+Class: <B>Menu</B>
+</pre>
+<UL>
+The itemMenu component is the popup menu which is displayed upon selection
+of a hierarchy node with the right mouse button. Menu items can be
+added along with their commands via the component command. See the "menu"
+widget manual entry for details on the itemMenu component item.
+</UL>
+<P>
+<pre>
+Name: <B>vertsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The vertsb component is the vertical scroll bar. See the "scrollbar" widget
+manual entry for details on the vertsb component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+proc get_files {file} {
+ global env
+
+ if {$file == ""} {
+ set dir $env(HOME)
+ } else {
+ set dir $file
+ }
+
+ if {[catch {cd $dir}] != 0} {
+ return ""
+ }
+
+ set rlist ""
+
+ foreach file [lsort [glob -nocomplain *]] {
+ lappend rlist [list [file join $dir $file] $file]
+ }
+
+ return $rlist
+}
+
+hierarchy .h -querycommand "get_files %n" -visibleitems 30x15 \
+ -labeltext $env(HOME)
+pack .h -side left -expand yes -fill both
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre>
+Michael J. McLennan
+</pre><H2>KEYWORDS</H2>
+hierarchy, text, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/hyperhelp.n.html b/itcl/iwidgets3.0.0/demos/html/hyperhelp.n.html
index 42e4740c660..8be35c4aa1b 100644
--- a/itcl/iwidgets3.0.0/demos/html/hyperhelp.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/hyperhelp.n.html
@@ -1,200 +1,258 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - hyperhelp</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - hyperhelp</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- hyperhelp - Create and manipulate a hyperhelp widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>hyperhelp</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- shell &lt;- hyperhelp
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidth</STRONG>
- <STRONG>cursor</STRONG> <STRONG>exportSelection</STRONG> <STRONG>foreground</STRONG>
- <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG> <STRONG>insertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>padX</STRONG> <STRONG>padY</STRONG>
- <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
- <STRONG>selectBackground</STRONG> <STRONG>selectBorderWidth</STRONG> <STRONG>selectForeground</STRONG>
- <STRONG>setGrid</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>hscrollmode</STRONG> <STRONG>vscrollmode</STRONG> <STRONG>textbackground</STRONG> <STRONG>fontname</STRONG>
- <STRONG>fontsize</STRONG> <STRONG>fixedfont</STRONG> <STRONG>link</STRONG> <STRONG>linkhighlight</STRONG>
- <STRONG>width</STRONG> <STRONG>height</STRONG> <STRONG>state</STRONG> <STRONG>wrap</STRONG>
- <STRONG>unknownimage</STRONG>
-
- See the "scrolledhtml" widget manual entry for details on
- the above associated options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" manual entry for details on the above inher-
- ited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>topics</STRONG>
- Class: <STRONG>Topics</STRONG>
- Command-Line Switch: <STRONG>-topics</STRONG>
-
- Specifies a list of help topics in the form {?<EM>topic</EM>?
- ... }. <EM>Topic</EM> may either be a topic name, in which case
- the document associated with the topic should be in the
- file <STRONG>helpdir</STRONG>/<EM>topic</EM>.html, or it may be of the form {<EM>name</EM>
- <EM>file</EM>}. In the latter case, <EM>name</EM> is displayed in the
- topic menu, and selecting the name loads <EM>file</EM>. If file
- has a relative path, it is assumed to be relative to
- helpdir.
-
- Name: <STRONG>helpdir</STRONG>
- Class: <STRONG>Directory</STRONG>
- Command-Line Switch: <STRONG>-helpdir</STRONG>
-
- Specifies the directory where help files are located.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>hyperhelp</STRONG> command creates a shell window with a pulldown
- menu showing a list of topics. The topics are displayed by
- importing a HTML formatted file named <STRONG>helpdir</STRONG>/<EM>topic</EM>.html.
- For a list of supported HTML tags, see <STRONG>scrolledhtml(n)</STRONG>.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>hyperhelp</STRONG> command creates a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for dialog widg-
- ets:
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>activate</STRONG> <STRONG>center</STRONG> <STRONG>childsite</STRONG> <STRONG>deactivate</STRONG>
-
- See the "shell" manual entry for details on the above inher-
- ited methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>hyperhelp</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>hyperhelp</STRONG> command.
-
- <EM>pathName</EM> <STRONG>showtopic</STRONG> <EM>topic</EM>
- Display html file <STRONG>helpdir</STRONG>/<EM>topic</EM>.html. <EM>Topic</EM> may option-
- ally be of the form <EM>topicname</EM>#<EM>anchorname</EM>. In this form,
- either <EM>topicname</EM> or <EM>anchorname</EM> or both may be empty. If
- <EM>topicname</EM> is empty, the current topic is assumed. If
- <EM>anchorname</EM> is empty, the top of the document is assumed
-
- <EM>pathName</EM> <STRONG>followlink</STRONG> <EM>href</EM>
- Display html file <EM>href</EM>. <EM>Href</EM> may be optionally be of
- the form <EM>filename</EM>#<EM>anchorname</EM>. In this form, either
- <EM>filename</EM> or <EM>anchorname</EM> or both may be empty. If
- <EM>filename</EM> is empty, the current document is assumed. If
- <EM>anchorname</EM> is empty, the top of the document is
- assumed.
-
- <EM>pathName</EM> <STRONG>forward</STRONG>
- Display html file one forward in history list, if
- applicable.
-
- <EM>pathName</EM> <STRONG>back</STRONG>
- Display html file one back in history list, if applica-
- ble.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- hyperhelp .h -topics { Intro Help } -helpdir ~/help
- .h showtopic Intro
-
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Kris Raney
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- hyperhelp, html, help, shell, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>hyperhelp - Create and manipulate a hyperhelp widget</TITLE>
+<H1>hyperhelp - Create and manipulate a hyperhelp widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>hyperhelp<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- shell &lt;- hyperhelp
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>relief</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>repeatDelay</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth<br>
+<B>padX</B><br>
+<B>repeatInterval</B><br>
+<B>setGrid</B><br>
+</td>
+<td valign=top>
+<B>closecmd</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>padY</B><br>
+<B>selectBackground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>hscrollmode</B><br>
+<B>fontsize</B><br>
+<B>width</B><br>
+<B>unknownimage</B><br>
+</td>
+<td valign=top>
+<B>vscrollmode</B><br>
+<B>fixedfont</B><br>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>textbackground</B><br>
+<B>link</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>fontname</B><br>
+<B>linkhighlight</B><br>
+<B>wrap</B><br>
+</td>
+</table>
+<P>
+See the "scrolledhtml" widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>topics</B>
+Class: <B>Topics</B>
+Command-Line Switch: <B>-topics</B>
+</pre>
+<UL>
+Specifies a list of help topics in the form {?<I>topic</I>? ... }. <I>Topic</I>
+may either be a topic name, in which case the
+document associated with the topic should be in the file
+<B>helpdir</B>/<I>topic</I>.html, or it may be of the form
+{<I>name</I> <I>file</I>}. In the latter case, <I>name</I> is displayed in the
+topic menu, and selecting the name loads <I>file</I>. If file has a relative
+path, it is assumed to be relative to helpdir.
+</UL>
+<P>
+<pre>
+Name: <B>helpdir</B>
+Class: <B>Directory</B>
+Command-Line Switch: <B>-helpdir</B>
+</pre>
+<UL>
+Specifies the directory where help files are located.
+</UL>
+<P>
+<pre>
+Name: <B>closeCmd</B>
+Class: <B>CloseCmd</B>
+Command-Line Switch: <B>-closecmd</B>
+</pre>
+<UL>
+Specifies the tcl command to be executed when the close option is selected
+from the topics menu.
+</UL>
+<P>
+<pre>
+Name: <B>maxHistory</B>
+Class: <B>MaxHistory</B>
+Command-Line Switch: <B>-maxhistory</B>
+</pre>
+<UL>
+Specifies the maximum number of entries stored in the history list
+</UL>
+<P>
+<pre>
+Name: <B>beforelink</B>
+Class: <B>BeforeLink</B>
+Command-Line Switch: <B>-beforelink</B>
+</pre>
+<UL>
+Specifies a command to be eval'ed before a new link is displayed. The path
+of the link to be displayed is appended before evaling the command. A suggested
+use might be to busy the widget while a new page is being displayed.
+</UL>
+<P>
+<pre>
+Name: <B>afterlink</B>
+Class: <B>AfterLink</B>
+Command-Line Switch: <B>-afterlink</B>
+</pre>
+<UL>
+Specifies a command to be eval'ed after a new link is completely displayed.
+The path of the link that was displayed is appended before evaling the command.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>hyperhelp</B> command creates a shell window with a pulldown menu
+showing a list of topics. The topics are displayed by importing a HTML
+formatted file named <B>helpdir</B>/<I>topic</I>.html. For a list of
+supported HTML tags, see <B>scrolledhtml(n)</B>.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>hyperhelp</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for dialog widgets:
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>hyperhelp</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>hyperhelp</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>showtopic</B> <I>topic</I>
+</I></B>
+<DD> Display html file <B>helpdir</B>/<I>topic</I>.html. <I>Topic</I> may
+optionally be of the form <I>topicname</I>#<I>anchorname</I>. In
+this form, either <I>topicname</I> or <I>anchorname</I> or both may be empty. If
+<I>topicname</I> is empty, the current topic is assumed. If <I>anchorname</I>
+is empty, the top of the document is assumed
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>followlink</B> <I>href</I>
+</I></B>
+<DD> Display html file <I>href</I>. <I>Href</I> may
+be optionally be of the form <I>filename</I>#<I>anchorname</I>. In
+this form, either <I>filename</I> or <I>anchorname</I> or both may be empty. If
+<I>filename</I> is empty, the current document is assumed. If <I>anchorname</I>
+is empty, the top of the document is assumed.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>forward</B>
+</I></B>
+<DD> Display html file one forward in history list, if applicable.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>back</B>
+</I></B>
+<DD> Display html file one back in history list, if applicable.
+
+</DL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ hyperhelp .h -topics { Intro Help } -helpdir ~/help
+ .h showtopic Intro
+
+</pre>
+</pre><H2>AUTHOR</H2>
+Kris Raney
+</pre><H2>KEYWORDS</H2>
+hyperhelp, html, help, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/iwidgets3.0.0UserCmds.html b/itcl/iwidgets3.0.0/demos/html/iwidgets3.0.0UserCmds.html
new file mode 100755
index 00000000000..482a2b80c03
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/iwidgets3.0.0UserCmds.html
@@ -0,0 +1,129 @@
+<HTML>
+
+<HEADER>
+
+<TITLE> iwidgets3.0.0 User Commands </TITLE>
+
+</HEADER>
+
+<BODY BGCOLOR = "#FFFFFF">
+
+<CENTER>
+
+<H5>iwidgets3.0.0 User Commands</H5>
+
+</CENTER>
+
+<HR ALIGN=CENTER WIDTH="80%">
+
+<UL>
+
+<LI> <A HREF="buttonbox.n.html" TARGET="ManPage"> buttonbox </A>
+
+<LI> <A HREF="calendar.n.html" TARGET="ManPage"> calendar </A>
+
+<LI> <A HREF="canvasprintbox.n.html" TARGET="ManPage"> canvasprintbox </A>
+
+<LI> <A HREF="canvasprintdialog.n.html" TARGET="ManPage"> canvasprintdialog </A>
+
+<LI> <A HREF="checkbox.n.html" TARGET="ManPage"> checkbox </A>
+
+<LI> <A HREF="combobox.n.html" TARGET="ManPage"> combobox </A>
+
+<LI> <A HREF="dateentry.n.html" TARGET="ManPage"> dateentry </A>
+
+<LI> <A HREF="datefield.n.html" TARGET="ManPage"> datefield </A>
+
+<LI> <A HREF="dialog.n.html" TARGET="ManPage"> dialog </A>
+
+<LI> <A HREF="dialogshell.n.html" TARGET="ManPage"> dialogshell </A>
+
+<LI> <A HREF="disjointlistbox.n.html" TARGET="ManPage"> disjointlistbox </A>
+
+<LI> <A HREF="entryfield.n.html" TARGET="ManPage"> entryfield </A>
+
+<LI> <A HREF="extfileselectionbox.n.html" TARGET="ManPage"> extfileselectionbox </A>
+
+<LI> <A HREF="extfileselectiondialog.n.html" TARGET="ManPage"> extfileselectiondialog </A>
+
+<LI> <A HREF="feedback.n.html" TARGET="ManPage"> feedback </A>
+
+<LI> <A HREF="fileselectionbox.n.html" TARGET="ManPage"> fileselectionbox </A>
+
+<LI> <A HREF="fileselectiondialog.n.html" TARGET="ManPage"> fileselectiondialog </A>
+
+<LI> <A HREF="finddialog.n.html" TARGET="ManPage"> finddialog </A>
+
+<LI> <A HREF="hierarchy.n.html" TARGET="ManPage"> hierarchy </A>
+
+<LI> <A HREF="hyperhelp.n.html" TARGET="ManPage"> hyperhelp </A>
+
+<LI> <A HREF="labeledframe.n.html" TARGET="ManPage"> labeledframe </A>
+
+<LI> <A HREF="labeledwidget.n.html" TARGET="ManPage"> labeledwidget </A>
+
+<LI> <A HREF="mainwindow.n.html" TARGET="ManPage"> mainwindow </A>
+
+<LI> <A HREF="menubar.n.html" TARGET="ManPage"> menubar </A>
+
+<LI> <A HREF="messagebox.n.html" TARGET="ManPage"> messagebox </A>
+
+<LI> <A HREF="messagedialog.n.html" TARGET="ManPage"> messagedialog </A>
+
+<LI> <A HREF="notebook.n.html" TARGET="ManPage"> notebook </A>
+
+<LI> <A HREF="optionmenu.n.html" TARGET="ManPage"> optionmenu </A>
+
+<LI> <A HREF="panedwindow.n.html" TARGET="ManPage"> panedwindow </A>
+
+<LI> <A HREF="promptdialog.n.html" TARGET="ManPage"> promptdialog </A>
+
+<LI> <A HREF="pushbutton.n.html" TARGET="ManPage"> pushbutton </A>
+
+<LI> <A HREF="radiobox.n.html" TARGET="ManPage"> radiobox </A>
+
+<LI> <A HREF="scopedobject.n.html" TARGET="ManPage"> scopedobject </A>
+
+<LI> <A HREF="scrolledcanvas.n.html" TARGET="ManPage"> scrolledcanvas </A>
+
+<LI> <A HREF="scrolledframe.n.html" TARGET="ManPage"> scrolledframe </A>
+
+<LI> <A HREF="scrolledhtml.n.html" TARGET="ManPage"> scrolledhtml </A>
+
+<LI> <A HREF="scrolledlistbox.n.html" TARGET="ManPage"> scrolledlistbox </A>
+
+<LI> <A HREF="scrolledtext.n.html" TARGET="ManPage"> scrolledtext </A>
+
+<LI> <A HREF="selectionbox.n.html" TARGET="ManPage"> selectionbox </A>
+
+<LI> <A HREF="selectiondialog.n.html" TARGET="ManPage"> selectiondialog </A>
+
+<LI> <A HREF="shell.n.html" TARGET="ManPage"> shell </A>
+
+<LI> <A HREF="spindate.n.html" TARGET="ManPage"> spindate </A>
+
+<LI> <A HREF="spinint.n.html" TARGET="ManPage"> spinint </A>
+
+<LI> <A HREF="spinner.n.html" TARGET="ManPage"> spinner </A>
+
+<LI> <A HREF="spintime.n.html" TARGET="ManPage"> spintime </A>
+
+<LI> <A HREF="tabnotebook.n.html" TARGET="ManPage"> tabnotebook </A>
+
+<LI> <A HREF="tabset.n.html" TARGET="ManPage"> tabset </A>
+
+<LI> <A HREF="timeentry.n.html" TARGET="ManPage"> timeentry </A>
+
+<LI> <A HREF="timefield.n.html" TARGET="ManPage"> timefield </A>
+
+<LI> <A HREF="toolbar.n.html" TARGET="ManPage"> toolbar </A>
+
+<LI> <A HREF="watch.n.html" TARGET="ManPage"> watch </A>
+
+</UL>
+
+</BODY>
+
+</HTML>
+
+
diff --git a/itcl/iwidgets3.0.0/demos/html/labeledframe.n.html b/itcl/iwidgets3.0.0/demos/html/labeledframe.n.html
new file mode 100644
index 00000000000..3fa283bc110
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/labeledframe.n.html
@@ -0,0 +1,210 @@
+<TITLE>labeledframe - Create and manipulate a labeled frame widget</TITLE>
+<H1>labeledframe - Create and manipulate a labeled frame widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>labeledframe<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Archetype &lt;- labeledframe
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>borderwidth</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>iPadX</B>
+Class: <B>IPad</B>
+Command-Line Switch: <B>-ipadx</B>
+</pre>
+<UL>
+Specifies horizontal padding space between the border and the childsite.
+The value may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+The default is 0.
+</UL>
+<P>
+<pre>
+Name: <B>iPadY</B>
+Class: <B>IPad</B>
+Command-Line Switch: <B>-ipady</B>
+</pre>
+<UL>
+Specifies vertical padding space between the border and the childsite.
+The value may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+The default is 0.
+</UL>
+<P>
+<pre>
+Name: <B>labelBitmap</B>
+Class: <B>Bitmap</B>
+Command-Line Switch: <B>-labelbitmap</B>
+</pre>
+<UL>
+Specifies a bitmap to display in the label, in any of the forms
+acceptable to <B>Tk_GetBitmap</B>. This option overrides the <I>labeltext</I>
+option.
+</UL>
+<P>
+<pre>
+Name: <B>labelImage</B>
+Class: <B>Image</B>
+Command-Line Switch: <B>-labelimage</B>
+</pre>
+<UL>
+Specifies a image to be used as the label. The image may be any of the
+values created by the <B>image create</B> command. This option overrides
+both the <I>labelbitmap</I> and <I>labeletext</I> options.
+</UL>
+<P>
+<pre>
+Name: <B>labelMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-labelmargin</B>
+</pre>
+<UL>
+Specifies the distance between the inner ede of the hull frames relief,
+and the label in any of the forms acceptable to <B>Tk_GetPixels</B>.
+The default is 10 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>labelText</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-labeltext</B>
+</pre>
+<UL>
+Specifies the text of the label around the childsite.
+</UL>
+<P>
+<pre>
+Name: <B>labelVariable</B>
+Class: <B>Variable</B>
+Command-Line Switch: <B>-labelvariable</B>
+</pre>
+<UL>
+Specifies the text variable of the label around the childsite.
+</UL>
+<P>
+<pre>
+Name: <B>labelFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-labelfont</B>
+</pre>
+<UL>
+Specifies the font of the label around the childsite.
+</UL>
+<P>
+<pre>
+Name: <B>labelPos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-labelpos</B>
+</pre>
+<UL>
+Specifies the position of the label within the grooved relief of the hull widget.
+<B> ne, n, nw, se, s, sw, en, e, es, wn, w, ws</B> Default is <B>n</B>.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>labeledframe</B> command creates a hull frame with a
+grooved relief, a label positioned within the grooved relief of
+the hull frame, and a frame childsite. The frame childsite can filled with any
+widget via a derived class or though the use of the childsite method.
+This class was designed to be a general purpose base class for supporting the
+combination of labeled frame and a childsite. The options include the
+ability to position the label at configurable locations within the
+grooved relief of the hull frame, and control the display of the label.
+</pre><H2>METHODS</H2>
+<P>
+The <B>labeledframe</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for labeledframe widgets:
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Return the path name of the child site.
+</DL>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>labeledframe</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>labeledframe</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>label</B>
+Class: <B>label</B>
+</pre>
+<UL>
+The label component provides the label for the labeled widget. See the
+"label" widget manual entry for details on the label component item.
+</UL>
+</table>
+<P>
+
+</pre><H2>EXAMPLE</H2>
+<UL>
+The labeledframe was primarily meant to be a base class. The
+Radiobox is a good example of a derived classe of the labeledframe class.
+In order to provide equal support for composite classes, the 'childsite' methods
+also exists. The following is an example of 'childsite' method usage.
+</UL>
+<P>
+<pre>
+ labeledframe .lw -labeltext "Entry Frame" -labelpos n
+ pack .lw -fill both -expand yes -padx 10 -pady 10
+ set cs [.lw childsite]
+
+ pack [Entryfield $cs.entry1 -labeltext "Name:"] -side top -fill x
+ pack [Spinint $cs.entry2 -labeltext "Number:"] -side top -fill x
+ pack [Pushbutton $cs.entry3 -text "Details:"] -side top -fill x
+
+</pre>
+</pre><H2>AUTHOR</H2>
+John A. Tucker
+</pre><H2>KEYWORDS</H2>
+labeledframe, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/labeledwidget.n.html b/itcl/iwidgets3.0.0/demos/html/labeledwidget.n.html
index f84526c2bd0..01619336246 100644
--- a/itcl/iwidgets3.0.0/demos/html/labeledwidget.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/labeledwidget.n.html
@@ -1,250 +1,224 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - labeledwidget</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - labeledwidget</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- labeledwidget - Create and manipulate a labeled widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>labeledwidget</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- labeledwidget
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>labelBitmap</STRONG>
- Class: <STRONG>Bitmap</STRONG>
- Command-Line Switch: <STRONG>-labelbitmap</STRONG>
-
- Specifies a bitmap to display in the widget, in any of
- the forms acceptable to <STRONG>Tk_GetBitmap</STRONG>. This option
- overrides the <EM>labeltext</EM> option.
-
- Name: <STRONG>labelFont</STRONG>
- Class: <STRONG>Font</STRONG>
- Command-Line Switch: <STRONG>-labelfont</STRONG>
-
- Specifies the font to be used for the label.
-
- Name: <STRONG>labelImage</STRONG>
- Class: <STRONG>Image</STRONG>
- Command-Line Switch: <STRONG>-labelimage</STRONG>
-
- Specifies a image to be used as the label. The image
- may be any of the values created by the <STRONG>image</STRONG> <STRONG>create</STRONG>
- command. This option overrides both the <EM>labelbitmap</EM>
- and <EM>labeletext</EM> options.
-
- Name: <STRONG>labelMargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-labelmargin</STRONG>
-
- Specifies the distance between the childsite and label
- in any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 1 pixel.
-
- Name: <STRONG>labelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-labelpos</STRONG>
- Specifies the position of the label along the side of
- the childsite: <STRONG>n</STRONG>, <STRONG>ne</STRONG>, <STRONG>e</STRONG>, <STRONG>se</STRONG>, <STRONG>s</STRONG>, <STRONG>sw</STRONG>, <STRONG>w</STRONG>, or <STRONG>nw</STRONG>. The
- default is w.
-
- Name: <STRONG>labelText</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-labeltext</STRONG>
-
- Specifies the text of the label around the childsite.
-
- Name: <STRONG>labelVariable</STRONG>
- Class: <STRONG>Variable</STRONG>
- Command-Line Switch: <STRONG>-labelvariable</STRONG>
-
- Specifies the text variable of the label around the
- childsite.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>labeledwidget</STRONG> command creates a labeled widget which
- contains a label and child site. The child site is a frame
- which can filled with any widget via a derived class or
- though the use of the childsite method. This class was
- designed to be a general purpose base class for supporting
- the combination of label widget and a childsite. The
- options include the ability to position the label around the
- childsite widget, modify the font and margin, and control
- the display of the labels.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>labeledwidget</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for labeledwidget
- widgets:
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Return the path name of the child site.
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>labeledwidget</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>labeledwidget</STRONG> command.
-
-
-
-</PRE>
-<H2>STATIC METHODS</H2><PRE>
- <STRONG>Labeledwidget::alignlabels</STRONG> <EM>widget</EM> ?<EM>widget</EM> ...?
- The alignlabels procedure takes a list of widgets
- derived from the Labeledwidget class and uses the label
- margin to make each widget have the same total space
- for the combination of label and margin. The net
- effect is to left align the labels. Generally, this
- method is only useful with a label position of w, which
- is the default.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>label</STRONG>
- Class: <STRONG>label</STRONG>
-
- The label component provides the label for the labeled
- widget. See the "label" widget manual entry for
- details on the label component item.
-
- Name: <STRONG>lwchildsite</STRONG>
- Class: <STRONG>frame</STRONG>
-
- The lwchildsite component is the user child site for
- the labeled widget. See the "frame" widget manual
- entry for details on the lwchildsite component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- The labeledwidget was primarily meant to be a base
- class. The ScrolledListBox and EntryField are good
- examples of derived classes of the labeledwidget class.
- In order to provide equal support for composite
- classes, the 'childsite' methods also exists. The fol-
- lowing is an example of 'childsite' method usage.
-
-
- labeledwidget .lw -labeltext "Canvas Widget" -labelpos s
- pack .lw -fill both -expand yes -padx 10 -pady 10
-
- set cw [canvas [.lw childsite].c -relief raised -width 200 -height 200]
- pack $cw -padx 10 -pady 10
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- labeledwidget, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>labeledwidget - Create and manipulate a labeled widget</TITLE>
+<H1>labeledwidget - Create and manipulate a labeled widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>labeledwidget<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- labeledwidget
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>disabledForeground</B>
+Class: <B>DisabledForeground</B>
+Command-Line Switch: <B>-disabledforeground</B>
+</pre>
+<UL>
+Specifies the foreground to be used when the state is disabled.
+</UL>
+<P>
+<pre>
+Name: <B>labelBitmap</B>
+Class: <B>Bitmap</B>
+Command-Line Switch: <B>-labelbitmap</B>
+</pre>
+<UL>
+Specifies a bitmap to display in the widget, in any of the forms
+acceptable to <B>Tk_GetBitmap</B>. This option overrides the <I>labeltext</I>
+option.
+</UL>
+<P>
+<pre>
+Name: <B>labelFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-labelfont</B>
+</pre>
+<UL>
+Specifies the font to be used for the label.
+</UL>
+<P>
+<pre>
+Name: <B>labelImage</B>
+Class: <B>Image</B>
+Command-Line Switch: <B>-labelimage</B>
+</pre>
+<UL>
+Specifies a image to be used as the label. The image may be any of the
+values created by the <B>image create</B> command. This option overrides
+both the <I>labelbitmap</I> and <I>labeletext</I> options.
+</UL>
+<P>
+<pre>
+Name: <B>labelMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-labelmargin</B>
+</pre>
+<UL>
+Specifies the distance between the childsite and label in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default is 2 pixel.
+</UL>
+<P>
+<pre>
+Name: <B>labelPos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-labelpos</B>
+</pre>
+<UL>
+Specifies the position of the label along the side of the childsite:
+<B>nw</B>, <B>n</B>, <B>ne</B>, <B>sw</B>, <B>s</B>, <B>se</B>, <B>en</B>, <B>e</B>,
+<B>es</B>, <B>wn</B>, <B>w</B>, or <B>ws</B>. The default is w.
+</UL>
+<P>
+<pre>
+Name: <B>labelText</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-labeltext</B>
+</pre>
+<UL>
+Specifies the text of the label around the childsite.
+</UL>
+<P>
+<pre>
+Name: <B>labelVariable</B>
+Class: <B>Variable</B>
+Command-Line Switch: <B>-labelvariable</B>
+</pre>
+<UL>
+Specifies the text variable of the label around the childsite.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specifies one of two states for the label: <B>normal</B> or <B>disabled</B>.
+If the label is disabled then it is displayed in a disabled foreground
+color. The default is normal.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>labeledwidget</B> command creates a labeled widget which contains
+a label and child site. The child site is a frame
+which can filled with any widget via a derived class or though the use
+of the childsite method. This class
+was designed to be a general purpose base class for supporting the
+combination of label widget and a childsite. The options include the
+ability to position the label around the childsite widget, modify the
+font and margin, and control the display of the labels.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>labeledwidget</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for labeledwidget widgets:
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Return the path name of the child site.
+</DL>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>labeledwidget</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>labeledwidget</B>
+command.
+
+</DL>
+</pre><H2>STATIC METHODS</H2>
+<DL>
+<DT> <B>Labeledwidget::alignlabels</B> <I>widget</I> ?<I>widget ...</I>?
+</I></B>
+<DD> The alignlabels procedure takes a list of widgets derived from
+the Labeledwidget class and uses the label margin to make each widget
+have the same total space for the combination of label and margin. The
+net effect is to left align the labels. Generally, this method is only
+useful with a label position of w, which is the default.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>label</B>
+Class: <B>label</B>
+</pre>
+<UL>
+The label component provides the label for the labeled widget. See the
+"label" widget manual entry for details on the label component item.
+</UL>
+<P>
+<pre>
+Name: <B>lwchildsite</B>
+Class: <B>frame</B>
+</pre>
+<UL>
+The lwchildsite component is the user child site for the labeled widget. See
+the "frame" widget manual entry for details on the lwchildsite component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<UL>
+The labeledwidget was primarily meant to be a base class. The
+ScrolledListBox and EntryField are good examples of derived
+classes of the labeledwidget class. In order to provide equal
+support for composite classes, the 'childsite' methods also exists.
+The following is an example of 'childsite' method usage.
+</UL>
+<P>
+<pre>
+ labeledwidget .lw -labeltext "Canvas Widget" -labelpos s
+ pack .lw -fill both -expand yes -padx 10 -pady 10
+
+ set cw [canvas [.lw childsite].c -relief raised -width 200 -height 200]
+ pack $cw -padx 10 -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+labeledwidget, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/mainwindow.n.html b/itcl/iwidgets3.0.0/demos/html/mainwindow.n.html
new file mode 100644
index 00000000000..114e2525ccd
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/mainwindow.n.html
@@ -0,0 +1,373 @@
+<TITLE>mainwindow - Create and manipulate a mainwindow widget</TITLE>
+<H1>mainwindow - Create and manipulate a mainwindow widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>mainwindow<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- shell &lt;- mainwindow
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightBackground</B><br>
+</td>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>highlightColor</B><br>
+</td>
+<td valign=top>
+<B>font</B><br>
+<B>highlightThickness</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>balloonBackground</B><br>
+<B>balloonForeground</B><br>
+</td>
+<td valign=top>
+<B>balloonDelay1</B><br>
+</td>
+<td valign=top>
+<B>balloonDelay2</B><br>
+</td>
+<td valign=top>
+<B>ballonFont</B><br>
+</td>
+</table>
+<P>
+See the "toolbar" manual entry for details on the above associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" manual entry for details on the above inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+<B>width</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>helpLine</B>
+Class: <B>HelpLine</B>
+Command-Line Switch: <B>-helpline</B>
+</pre>
+<UL>
+Specifies whether or not to display the help line. The value
+may be given in any of the forms acceptable to Tk_GetBoolean.
+The default is yes.
+</UL>
+<P>
+<pre>
+Name: <B>menuBarBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-menubarbackground</B>
+</pre>
+<UL>
+Specifies the normal background color for the menubar.
+</UL>
+<P>
+<pre>
+Name: <B>menuBarFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-menubarfont</B>
+</pre>
+<UL>
+Specifies the font to use when drawing text inside the menubar.
+</UL>
+<P>
+<pre>
+Name: <B>menuBarForeround</B>
+Class: <B>Foreground</B>
+Command-Line Switch: <B>-menubarforeground</B>
+</pre>
+<UL>
+Specifies the normal foreground color for the menubar.
+</UL>
+<P>
+<pre>
+Name: <B>statusLine</B>
+Class: <B>StatusLine</B>
+Command-Line Switch: <B>-statusline</B>
+</pre>
+<UL>
+Specifies whether or not to display the status line. The value
+may be given in any of the forms acceptable to Tk_GetBoolean.
+The default is yes.
+</UL>
+<P>
+<pre>
+Name: <B>toolBarBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-toolbarbackground</B>
+</pre>
+<UL>
+Specifies the normal background color for the toolbar.
+</UL>
+<P>
+<pre>
+Name: <B>toolBarFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-toolbarfont</B>
+</pre>
+<UL>
+Specifies the font to use when drawing text inside the toolbar.
+</UL>
+<P>
+<pre>
+Name: <B>toolBarForeround</B>
+Class: <B>Foreground</B>
+Command-Line Switch: <B>-toolbarforeground</B>
+</pre>
+<UL>
+Specifies the normal foreground color for the toolbar.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>mainwindow</B> command creates a mainwindow shell which contains
+a menubar, toolbar, mousebar, childsite, status line, and help line.
+Each item may be filled and configured to suit individual needs.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>mainwindow</B> command create a new Tcl command whose
+name is <I>pathName</I>. This command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for mainwindow widgets:
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" manual entry for details on the above inherited methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>mainwindow</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the pathname of the child site widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>mainwindow</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>menubar</B> ?<I>args</I>?
+</I></B>
+<DD> The <B>menubar</B> method provides access to the menubar. Invoked with
+no arguments it returns the pathname of the menubar. With arguments,
+they are evaluated against the menubar which in effect provides
+access to the entire API of the menubar. See the "menubar" manual
+entry for details on the commands available in the menubar.
+</DL>
+<DL>
+<DT> <I>pathName <B>mousebar</B> ?<I>args</I>?
+</I></B>
+<DD> The <B>mousebar</B> method provides access to the mousebar which is a
+vertical toolbar. Invoked with no arguments it returns the pathname
+of the mousebar. With arguments, they are evaluated against the mousebar
+which in effect provides access to the entire API of the underlying
+toolbar. See the "toolbar" manual entry for details on the commands
+available in the mousebar.
+</DL>
+<DL>
+<DT> <I>pathName <B>msgd</B> ?<I>args</I>?
+</I></B>
+<DD> The <B>msgd</B> method provides access to the messagedialog contained
+in the mainwindow. Invoked with no arguments it returns the pathname
+of the messagedialog. With arguments, they are evaluated against the
+messagedialog which in effect provides access to the entire API of the
+messagedialog. See the "messagedialog" manual
+entry for details on the commands available in the messagedialog.
+</DL>
+<DL>
+<DT> <I>pathName <B>toolbar</B> ?<I>args</I>?
+</I></B>
+<DD> The <B>toolbar</B> method provides access to the toolbar. Invoked with
+no arguments it returns the pathname of the toolbar. With arguments,
+they are evaluated against the toolbar which in effect provides
+access to the entire API of the toolbar. See the "toolbar" manual
+entry for details on the commands available in the toolbar.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>help</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The help component provides a location for displaying any help
+strings provided in the menubar, toolbar, or mousebar. See the "label"
+widget manual entry for details on the help component item.
+</UL>
+<P>
+<pre>
+Name: <B>menubar</B>
+Class: <B>Menubar</B>
+</pre>
+<UL>
+The menubar component is the menubar located at the top of the window.
+See the "menubar" widget manual entry for details on the menubar
+component item.
+</UL>
+<P>
+<pre>
+Name: <B>mousebar</B>
+Class: <B>Toolbar</B>
+</pre>
+<UL>
+The mousebar component is the vertical toolbar located on the right side
+of the window. See the "toolbar" widget manual entry for details on
+the mousebar component item.
+</UL>
+<P>
+<pre>
+Name: <B>msgd</B>
+Class: <B>Messagedialog</B>
+</pre>
+<UL>
+The msgd component is a messagedialog which may be reconfigured as needed
+and used repeatedly throughout the application. See the "messagedialog"
+widget manual entry for details on the messagedialog component item.
+</UL>
+<P>
+<pre>
+Name: <B>status</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The status component provides a location for displaying application
+status information. See the "label" widget manual entry for details
+on the status component item.
+</UL>
+<P>
+<pre>
+Name: <B>toolbar</B>
+Class: <B>Toolbar</B>
+</pre>
+<UL>
+The toolbar component is the horizontal toolbar located on the top
+of the window. See the "toolbar" widget manual entry for details on
+the toolbar component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ mainwindow .mw
+
+ #
+ # Add a File menubutton
+ #
+ .mw menubar add menubutton file -text "File" -underline 0 -padx 8 -pady 2 \\
+ -menu {options -tearoff no
+ command new -label "New" -underline 0 \\
+ -helpstr "Create a new file"
+ command open -label "Open ..." -underline 0 \\
+ -helpstr "Open an existing file"
+ command save -label "Save" -underline 0 \\
+ -helpstr "Save the current file"
+ command saveas -label "Save As ..." -underline 5 \\
+ -helpstr "Save the file as a differnet name"
+ command print -label "Print" -underline 0 \\
+ -helpstr "Print the file"
+ separator sep1
+ command close -label "Close" -underline 0 \\
+ -helpstr "Close the file"
+ separator sep2
+ command exit -label "Exit" -underline 1 \\
+ -helpstr "Exit this application"
+ }
+
+ #
+ # Install a scrolledtext widget in the childsite.
+ #
+ scrolledtext [.mw childsite].st
+ pack [.mw childsite].st -fill both -expand yes
+
+ #
+ # Activate the main window.
+ #
+ .mw activate
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre>
+John A. Tucker
+<P>
+</pre><H2>KEYWORDS</H2>
+mainwindow, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/menubar.n.html b/itcl/iwidgets3.0.0/demos/html/menubar.n.html
index ad2a33da95d..b045f03b441 100644
--- a/itcl/iwidgets3.0.0/demos/html/menubar.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/menubar.n.html
@@ -1,563 +1,686 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - menubar</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - menubar</H1>
-<HR>
-<PRE>
+<TITLE>menubar - Create and manipulate menubar menu widgets</TITLE>
+<H1>menubar - Create and manipulate menubar menu widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>menubar</B> <I>pathName</I> ?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- menubar
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>activeBorderWidth</B><br>
+<B>activeForeground</B><br>
+<B>anchor</B><br>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>cursor</B><br>
+<B>disabledForeground</B><br>
+<B>font</B><br>
+<B>padX</B><br>
+</td>
+<td valign=top>
+<B>highlightBackground</B><br>
+<B>highligthThickness</B><br>
+<B>highlightColor</B><br>
+<B>justify</B><br>
+</td>
+<td valign=top>
+<B>padY</B><br>
+<B>relief</B><br>
+<B>wrapLength</B><br>
+<B>background</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>helpVariable</B>
+Class: <B>HelpVariable</B>
+Command-Line Switch: <B>-helpvariable</B>
+</pre>
+<UL>
+Specifies the global variable to update whenever the mouse is in motion over a menu entry. This global variable is updated with the current value of the active menu entry's <B>helpStr</B>. Other widgets can "watch" this variable with the trace command, or as is the case with entry or label widgets, they can set their <B>textVariable</B> to the same global variable. This allows for a simple implementation of a help status bar. Whenever the mouse leaves a menu entry, the helpVariable is set to the empty string {}. The mainwindow(1) associates its helpstatus and its menubar in this fashion.
+</UL>
+<P>
+<pre>
+Name: <B>menuButtons</B>
+Class: <B>MenuButtons</B>
+Command-Line Switch: <B>-menubuttons</B>
+</pre>
+<UL>
+The menuButton option is a string which specifies the arrangement of menubuttons on the menubar frame. Each menubutton entry is delimited by the newline character.
+</UL>
+<table cellpadding=5>
+<td valign=top>
+<UL><br>
+-menubuttons<br>
+-text<br>
+-text<br>
+-text<br>
+</td>
+<td valign=top>
+</UL><br>
+{<br>
+File<br>
+Edit<br>
+Options<br>
+</td>
+<td valign=top>
+menubar<br>
+menubutton<br>
+menubutton<br>
+menubutton<br>
+}<br>
+</td>
+<td valign=top>
+.mb<br>
+file<br>
+edit<br>
+options<br>
+</td>
+</table>
+<UL>
+specifies that three menubuttons will be added to the menubar (file, edit, options). Each entry is translated into an add command call.
+</UL>
+<UL>
+The <B>menuButtons</B> option can accept embedded variables, commands, and
+backslash quoting. Embedded variables and commands must be enclosed in
+curly braces ({}) to ensure proper parsing of the substituted values.
+</UL>
+</pre><HR>
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>menubar</B> command creates a new window (given by the <I>pathName</I> argument) and makes it into a <B>menubar</B> menu widget. Additional options, described above may be specified on the command line or in the option database to configure aspects of the menubar such as its colors and font. The <B>menubar</B> command returns its <I>pathName</I> argument. At the time this command is invoked, there must not exist a window named pathName, but pathName's parent must exist.
+<P>
+A <B>menubar</B> is a widget that simplifies the task of creating menu hierarchies. It encapsulates a <B>frame</B> widget, as well as <B>menubuttons</B>, <B>menus</B>, and menu <B>entries</B>. The menubar allows menus to be specified and referenced in a more consistent manner than using Tk to build menus directly.
+
+<B>Menubar</B> allows a menu tree to be expressed in a hierachical "language". The <B>menubar</B> accepts a <B>menuButtons</B> option that allows a list of menubuttons to be added to the menubar. In turn, each menubutton accepts a <B>menu</B> option that specifies a list of menu entries to be added to the menubutton's menu. Cascade entries also accept the <B>menu</B> option for specifying a list of menu entries to be added to the cascade's menu.
+
+Additionally, the menubar allows each component of the menubar system to be referenced by a simple <I>menuPathName</I> syntax. The menubar also extends the set of options for menu entries to include a <B>helpStr</B> option.
+</pre><H2>MENU PATH NAMES</H2>
+<P>
+A <I>menuPathName</I> is a series of component names separated by the `.' character. Each menubar component can be referenced via these <I>menuPathNames</I>. <I>menuPathNames</I> are similar to widget pathNames in Tk. Some correspond directly to a widget pathName (components of type <B>menu</B> or <B>menubutton</B>), others correspond to a menu entry type. Every widget and entry in a menubar can be referenced with the <I>menuPathName</I> naming convention. A menubar can have four types of components:
+<UL>
+<B>frame</B>. A menubar holds exactly one frame which manages menubuttons. The frame is always signified by the `.' character as the path name.
+</UL>
+<UL>
+<B>menubutton</B>. A menubutton corresponds directly to a Tk menubutton. See menubutton(n).
+</UL>
+<UL>
+<B>menu</B>. A menu is attached to a menubutton and corresponds directly to Tk's menu widget. A menu is always signified by the <I>menuPathName</I> ending with the keyword <B>menu</B>. See menu(n).
+</UL>
+<UL>
+<B>entry</B>. An entry corresponds directly to Tk's menu widget entries. Menus consist of a column of one line entries. Entries may be of type: <B>command</B>, <B>checkbutton</B>, <B>radiobutton</B>, <B>separator</B>, or <B>cascade</B>. For a complete description of these types see the discussion on <B>ENTRIES</B> in menu(n).
+</UL>
+<P>
+The suffix of a <I>menuPathName</I> may have the form of:
+<DL>
+<DT> <I>tkWidgetName</I>
+</I></B>
+<DD> Specifies the name of the component, either a <B>frame</B>, <B>menubutton</B>, <B>menu</B>, or an <B>entry</B>. This is the normal naming of widgets. For example, .file references a <B>menubutton</B> named <I>file</I>.
+</DL>
+<P>
+The <I>menuPathName</I> is a series of segment names, each separated by the '.' character. Segment names may be one of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the index of the the component. For menubuttons, 0 corresponds to the left-most menubutton of the menu bar frame. As an example, <I>.1</I> would correspond to the second menubutton on the menu bar frame.
+<UL>
+For entries, 0 corresponds to the top-most entry of the menu. For example, .file.0 would correspond to the first entry on the menu attached to the menubutton named <I>file</I>.
+</UL>
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Specifes the last component. For menubuttons, it specifies the right-most entry of the menu bar frame. For menu entries, it specifies the bottom-most entry of the menu.
+</DL>
+<DL>
+<DT> <B>last</B>
+</I></B>
+<DD> Same as end.
+</DL>
+<P>
+Finally, menu components always end with the <B>menu</B> keyword. These components are automatically created via the -menu option on menubuttons and cascades or via the <B>add</B> or <B>insert</B> commands.
+<DL>
+<DT> <B>menu</B>
+</I></B>
+<DD> Specifes the menu pane that is associated with the given menubutton prefix. For example, <I>.file.menu</I> specifies the menu pane attached to the <I>.file</I> menubutton.
+</DL>
+<P>
+For example, the path <I>.file.new</I> specifies the entry named new on the menu associated with the file menubutton located on the menu bar. The path <I>.file.menu</I> specifies the menu pane associated with the menubutton <I>.file</I>. The path <I>.last</I> specifies the last menu on the menu bar. The path <I>.0.last</I> would specify the first menu (file) and the last entry on that menu (quit), yielding <I>.file.quit</I>.
+
+As a restriction, the last name segment of <I>menuPathName</I> cannot be one of the keywords last, menu, end, nor may it be a numeric value (integer).
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<P>
+The <B>menubar</B> command creates a new Tcl command whose name is <I>pathName</I>.
+This command may be used to invoke various operations on the widget. It has
+the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+In addition, many of the widget commands for menubar take as one argument a path name to a menu component. These path names are called <I>menuPathName</I>s. See the discussion on <B>MENUBAR PATH NAMES</B> above.
+<P>
+The following commands are possible for menubar widgets:
+<DL>
+<DT> <I>pathName</I> <B>add</B> <I>type</I> <I>menuPathName</I> ?<I>option value option value</I>?
+</I></B>
+<DD> Adds either a menu to the menu bar or a menu entry to a menu pane.
+<UL>
+If additional arguments are present, they specify <I>option</I>s available to component type <B>entry</B>. See the man pages for <B>menu</B>(1) in the section on <B>ENTRIES</B>.
+
+If <I>type</I> is one of <B>cascade</B>, <B>checkbutton</B>, <B>command</B>, <B>radiobutton</B>, or <B>separator</B> it adds a new entry to the bottom of the menu denoted by the prefix of <I>menuPathName</I>. If additonal arguments are present, they specify options available to menu <B>entry</B> widgets. In addition, the <B>helpStr</B> option is added by the menubar widget to all components of type entry.
+</UL>
+</DL>
+<UL>
+<DL>
+<DT> <B>-helpstr</B> <I>value</I>
+</I></B>
+<DD> Specifes the string to associate with the entry. When the mouse moves over the associated entry, the variable denoted by <B>helpVariable</B> is set. Another widget can bind to the helpVariable and thus display status help.
+</DL>
+</UL>
+<UL>
+If the type of the component added is <B>menubutton</B> or <B>cascade</B>, a menubutton or cascade is added to the menubar. If additional arguments are present, they specify options available to menubutton or cascade widgets. In addition, the <B>menu</B> option is added by the menubar widget to all menubutton and cascade widgets.
+</UL>
+<UL>
+<DL>
+<DT> <B>-menu</B> <I>menuSpec</I>
+</I></B>
+<DD> This is only valid for <I>menuPathName</I>s of type <B>menubutton</B> or <B>cascade</B>. Specifes an option set and/or a set of entries to place on a menu and associate with the menubutton or cascade. The <B>option</B> keyword allows the menu widget to be configured. Each item in the <I>menuSpec</I> is treated as add commands (each with the possibility of having other -menu options). In this way a menu can be recursively built.
+<UL>
+The last segment of <I>menuPathName</I> cannot be one of the keywords <B>last</B>, <B>menu</B>, <B>end</B>. Additionally, it may not be a <I>number</I>. However the <I>menuPathName</I> may be referenced in this manner (see discussion of <B>COMPONENT PATH NAMES</B>).
+</UL>
+<UL>
+Note that the same curly brace quoting rules apply to <B>-menu</B> option strings as did to <B>-menubuttons</B> option strings. See the earlier discussion on <B>umenubuttons</B> in the "<B>WIDGET-SPECIFIC OPTIONS</B>" section.
+</UL>
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName</I> <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given by <I>option</I>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>options</I> <I>value</I> <I>option</I> <I>value</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget. If no <I>option</I> is specified, returns a list describing all of the available options for <B>pathName</B> (see <B>Tk_ConfigureInfo</B> for information on the format of this list). If <I>option</I> is specified with no value, then the command returns a list describing the one named option (this list will be identical to the corresponding sublist of the value returned if no option is specified). If one or more option-value pairs are specified, then the command modifies the given widget option(s) to have the given value(s); in this case the command returns an empty string.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>delete</B> <I>menuPathName</I> ?<I>menuPathName2</I>?
+</I></B>
+<DD> If <I>menuPathName</I> is of component type <B>Menubutton</B> or <B>Menu</B>, delete operates on menus. If <I>menuPathName</I> is of component type <B>Entry</B>, delete operates on menu entries.
+
+This command deletes all components between <I>menuPathName</I> and <I>menuPathName2</I> inclusive. If <I>menuPathName2</I> is omitted then it defaults to <I>menuPathName</I>. Returns an empty string.
+
+If <I>menuPathName</I> is of type menubar, then all menus and the menu bar frame will be destroyed. In this case <I>menuPathName2</I> is ignored.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>index</B> <I>menuPathName</I>
+</I></B>
+<DD> If <I>menuPathName</I> is of type menubutton or menu, it returns the position of the menu/menubutton on the menubar frame.
+
+If <I>menuPathName</I> is of type <B>command</B>, <B>separator</B>, <B>radiobutton</B>, <B>checkbutton</B>, or <B>cascade</B>, it returns the menu widget's numerical index for the entry corresponding to <I>menuPathName</I>. If path is not found or the path is equal to ".", a value of -1 is returned.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>insert</B> <I>menuPathName</I> <I>type</I> <I>name</I> ?<I>option</I> <I>value</I>?
+</I></B>
+<DD> Insert a new component named name before the component specified by <I>menuPathName</I>.
+<UL>
+If <I>menuPathName</I> is of type <B>Menubutton</B> or <B>Menu</B>, the new component inserted is of type <B>Menu</B> and given the name name. In this case valid <I>option</I> <I>value</I> pairs are those accepted by menubuttons.
+</UL>
+<UL>
+If <I>menuPathName</I> is of type <B>Entry</B>, the new component inserted is of type <B>entry</B> and given the name <I>name</I>. In this case, valid <I>option</I> <I>value</I> pairs are those accepted by menu entries.
+<I>Name</I> cannot be one of the keywords <B>last</B>, <B>menu</B>, <B>end</B>. Additionally, it may not be a number. However the <I>menuPathName</I> may be referenced in this manner (see discussion of <B>COMPONENT PATH NAMES</B>).
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>invoke</B> <I>menuPathName</I>
+</I></B>
+<DD> Invoke the action of the menu entry denoted by <I>menuPathName</I>. See the sections on the individual entries in the menu(1) man pages. If the menu entry is disabled then nothing happens. If the entry has a command associated with it then the result of that command is returned as the result of the <B>invoke</B> widget command. Otherwise the result is an empty string.
+
+If <I>menuPathName</I> is not a menu entry, an error is issued.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>menucget</B> <I>menuPathName</I> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given by <I>option</I>. The component type of <I>menuPathName</I> determines the valid available options.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>menuconfigure</B> <I>menuPathName</I> ?<I>option</I> <I>value</I>?
+</I></B>
+<DD> Query or modify the configuration options of the componet of the menubar specified by <I>menuPathName</I>. If no <I>option</I> is specified, returns a list describing all of the available options for <I>menuPathName</I> (see <B>Tk_ConfigureInfo</B> for information on the format of this list). If <I>option</I> is specified with no value, then the command returns a list describing the one named option (this list will be identical to the corresponding sublist of the value returned if no option is specified). If one or more option-value pairs are specified, then the command modifies the given widget option(s) to have the given value(s); in this case the command returns an empty string. The component type of <I>menuPathName</I> determines the valid available options.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>path</B> ?<I>mode</I>? <I>pattern</I>
+</I></B>
+<DD> Returns a fully formed <I>menuPathName</I> that matches <I>pattern</I>. If no match is found it returns -1. The <I>mode</I> argument indicates how the search is to be matched against <I>pattern</I> and it must have one of the following values:
+</DL>
+<UL>
+<DL>
+<DT> <B>-glob</B>
+</I></B>
+<DD> Pattern is a glob-style pattern which is matched against each component path using the same rules as the string match command.
+</DL>
+<DL>
+<DT> <B>-regexp</B>
+</I></B>
+<DD> Pattern is treated as a regular expression and matched against each component of the <I>menuPathName</I> using the same rules as the regexp command.
+The default mode is -glob.
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName</I> <B>type</B> <I>menuPathName</I>
+</I></B>
+<DD> Returns the type of the component specified by <I>menuPathName</I>. For menu entries, this is the type argument passed to the <B>add</B>/<B>insert</B> widget command when the entry was created, such as <B>command</B> or <B>separator</B>. Othewise it is either a <B>menubutton</B> or a <B>menu</B>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>yposition</B> <I>menuPathName</I>
+</I></B>
+<DD> Returns a decimal string giving the y-coordinate within the menu window of the topmost pixel in the entry specified by <I>menuPathName</I>. If the <I>menuPathName</I> is not an entry, an error is issued.
+</DL>
+</pre><H2>EXAMPLE ONE: USING GRAMMAR</H2>
+<P>
+The following example creates a menubar with "File", "Edit", "Options" menubuttons. Each of these menubuttons has an associated menu.
+In turn the File menu has menu entries, as well as the Edit
+menu and the Options menu. The Options menu is a tearoff menu
+with selectColor (for radiobuttons) set to blue.
+In addition, the Options menu has a cascade titled More,
+with several menu entries attached to it as well. An entry widget is
+provided to display help status.
+<P>
+menubar .mb -helpvariable helpVar -menubuttons {
+ menubutton file -text File -menu {
+ options -tearoff false
+ command new -label New \\
+ -helpstr "Open new document" \\
+ -command {puts NEW}
+ command close -label Close \\
+ -helpstr "Close current document" \\
+ -command {puts CLOSE}
+ separator sep1
+ command exit -label Exit -command {exit} \\
+ -helpstr "Exit application"
+ }
+ menubutton edit -text Edit -menu {
+ options -tearoff false
+ command undo -label Undo -underline 0 \\
+ -helpstr "Undo last command" \\
+ -command {puts UNDO}
+ separator sep2
+ command cut -label Cut -underline 1 \\
+ -helpstr "Cut selection to clipboard" \\
+ -command {puts CUT}
+ command copy -label Copy -underline 1 \\
+ -helpstr "Copy selection to clipboard" \\
+ -command {puts COPY}
+ command paste -label Paste -underline 0 \\
+ -helpstr "Paste clipboard contents" \\
+ -command {puts PASTE}
+ }
+ menubutton options -text Options -menu {
+ options -tearoff false -selectcolor blue
+ radiobutton byName -variable viewMode \\
+ -value NAME -label "by Name" \\
+ -helpstr "View files by name order" \\
+ -command {puts NAME}
+ radiobutton byDate -variable viewMode \\
+ -value DATE -label "by Date" \\
+ -helpstr "View files by date order" \\
+ -command {puts DATE}
+ cascade prefs -label Preferences -menu {
+ command colors -label Colors... \\
+ -helpstr "Change text colors" \\
+ -command {puts COLORS}
+ command fonts -label Fonts... \\
+ -helpstr "Change text font" \\
+ -command {puts FONT}
+ }
+ }
+
+}
+
+<table cellpadding=5>
+<td valign=top>
+frame<br>
+-height<br>
+-textvariable<br>
+-anchor<br>
+-expand<br>
+-fill<br>
+pack<br>
+-fill<br>
+</pre><H2>EXAMPLE<br>
+Alternatively<br>
+could<br>
+using<br>
+configure<br>
+menubar<br>
+-menubuttons<br>
+-text<br>
+command<br>
+command<br>
+separator<br>
+-label<br>
+edit<br>
+<P><br>
+.edit.undo<br>
+0<br>
+.edit.sep2<br>
+.edit.cut<br>
+1<br>
+.edit.copy<br>
+1<br>
+.edit.paste<br>
+0<br>
+.options<br>
+{<br>
+viewMode<br>
+-label<br>
+byDate<br>
+-value<br>
+Date"<br>
+cascade<br>
+-menu<br>
+-label<br>
+-label<br>
+.mb<br>
+nw<br>
+yes<br>
+option<br>
+the<br>
+evaluated<br>
+the<br>
+positive<br>
+is<br>
+string<br>
+commands,<br>
+However,<br>
+into<br>
+single<br>
+can<br>
+enclosing<br>
+curly<br>
+ensures,<br>
+value<br>
+will<br>
+as<br>
+and<br>
+The<br>
+this<br>
+</UL><br>
+Menu"<br>
+menubar<br>
+menubutton<br>
+menubutton<br>
+-menu<br>
+\\<br>
+-variable<br>
+-onvalue<br>
+0<br>
+-text<br>
+</td>
+<td valign=top>
+.fr<br>
+300<br>
+helpVar<br>
+nw<br>
+yes<br>
+both<br>
+.ef<br>
+x<br>
+TWO:<br>
+the<br>
+be<br>
+the<br>
+methods:<br>
+.mb<br>
+{<br>
+File<br>
+new<br>
+close<br>
+sep1<br>
+Quit<br>
+-text<br>
+.mb<br>
+-label<br>
+.mb<br>
+.mb<br>
+-label<br>
+.mb<br>
+-label<br>
+.mb<br>
+-label<br>
+.mb<br>
+-text<br>
+radiobutton<br>
+\\<br>
+"by<br>
+-variable<br>
+DATE<br>
+}<br>
+.options.prefs<br>
+{<br>
+Colors...<br>
+Fonts...<br>
+-side<br>
+-fill<br>
+</pre><H2>CAVEATS</H2><br>
+as<br>
+<B>-menu</B><br>
+by<br>
+<B>subst</B><br>
+side<br>
+that<br>
+may<br>
+and/or<br>
+substitutions<br>
+more<br>
+word.<br>
+be<br>
+candidate<br>
+braces<br>
+for<br>
+for<br>
+still<br>
+a<br>
+not<br>
+following<br>
+case:<br>
+set<br>
+set<br>
+.mb<br>
+file<br>
+edit<br>
+{<br>
+-label<br>
+{[scope<br>
+1<br>
+}<br>
+Options<br>
+</td>
+<td valign=top>
+-width<br>
+entry<br>
+pack<br>
+-fill<br>
+pack<br>
+-expand<br>
+-anchor<br>
+-expand<br>
+USING<br>
+same<br>
+created<br>
+add<br>
+<P><br>
+.mb<br>
+menubutton<br>
+-menu<br>
+-label<br>
+-label<br>
+command<br>
+}<br>
+Edit<br>
+add<br>
+Undo<br>
+add<br>
+add<br>
+Cut<br>
+add<br>
+Copy<br>
+add<br>
+Paste<br>
+add<br>
+Options<br>
+byName<br>
+-value<br>
+Name"<br>
+viewMode<br>
+-label<br>
+.mb<br>
+-label<br>
+command<br>
+command<br>
+}<br>
+left<br>
+x<br>
+The<br>
+well<br>
+option<br>
+menubar<br>
+command.<br>
+of<br>
+the<br>
+contain<br>
+backslash<br>
+might<br>
+than<br>
+These<br>
+protected<br>
+substitutions<br>
+({}).<br>
+example,<br>
+an<br>
+be<br>
+single<br>
+multiple<br>
+example<br>
+<table><br>
+fileMenuName<br>
+var<br>
+-menubuttons<br>
+-text<br>
+-text<br>
+checkbutton<br>
+Check<br>
+var]}<br>
+\\<br>
+menubutton<br>
+}<br>
+</td>
+<td valign=top>
+300<br>
+.ef<br>
+.mb<br>
+x<br>
+.fr<br>
+yes<br>
+sw<br>
+yes<br>
+METHODS</H2><br>
+menu<br>
+by<br>
+and<br>
+<table><br>
+configure<br>
+file<br>
+{<br>
+New<br>
+Close<br>
+quit<br>
+menubutton<br>
+}<br>
+command<br>
+-underline<br>
+separator<br>
+command<br>
+-underline<br>
+command<br>
+-underline<br>
+command<br>
+-underline<br>
+menubutton<br>
+-menu<br>
+-variable<br>
+NAME<br>
+radiobutton<br>
+\\<br>
+"by<br>
+add<br>
+Preferences<br>
+colors<br>
+fonts<br>
+pack<br>
+-anchor<br>
+-expand<br>
+<B>-menubuttons</B><br>
+as<br>
+is<br>
+with<br>
+The<br>
+this<br>
+option<br>
+variables,<br>
+substitutions.<br>
+expand<br>
+a<br>
+expansions<br>
+by<br>
+in<br>
+This<br>
+a<br>
+option<br>
+treated<br>
+value<br>
+values.<br>
+illustrates<br>
+<UL><br>
+"File<br>
+{}<br>
+{<br>
+{$fileMenuName}<br>
+Edit<br>
+check<br>
+\\<br>
+\\<br>
+-offvalue<br>
+options<br>
+</td>
+</table>
+<UL>
+The variable <I>fileMenuName</I> will expand to "File Menu" when the <B>subst</B> command is used on the menubutton specification. In addition, the [<B>scope</B>...] command will expand to @scope :: var. By enclosing these inside {} they stay as a single value. Note that only {} work for this. [list...], "" etc. will not protect these from the subst command.
+</UL>
+</pre><H2>ACKNOWLEDGMENTS</H2>
+<P>
+Bret Schumaker
+<UL>
+1994 - Early work on a menubar widget.
+</UL>
+<P>
+Mark Ulferts, Mark Harrison, John Sigler
+<UL>
+Invaluable feedback on grammar and usability of the menubar widget
+</UL>
+<P>
+</pre><H2>AUTHOR</H2>
+Bill W. Scott
+</pre><H2>KEYWORDS</H2>
+frame, menu, menubutton, entries, help
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- menubar - Create and manipulate menubar menu widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>menubar</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- menubar
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>borderWidth</STRONG> <STRONG>highlightBackgroundpadY</STRONG>
- <STRONG>activeBorderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>highligthThicknessrelief</STRONG>
- <STRONG>activeForeground</STRONG> <STRONG>disabledForegroundhighlightColorwrapLength</STRONG>
- <STRONG>anchor</STRONG> <STRONG>font</STRONG> <STRONG>justify</STRONG>
- <STRONG>background</STRONG> <STRONG>foreground</STRONG> <STRONG>padX</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>helpVariable</STRONG>
- Class: <STRONG>HelpVariable</STRONG>
- Command-Line Switch: <STRONG>-helpvariable</STRONG>
-
- Specifies the global variable to update whenever the
- mouse is in motion over a menu entry. This global vari-
- able is updated with the current value of the active
- menu entry's <STRONG>helpStr</STRONG>. Other widgets can "watch" this
- variable with the trace command, or as is the case with
- entry or label widgets, they can set their <STRONG>textVariable</STRONG>
- to the same global variable. This allows for a simple
- implementation of a help status bar. Whenever the mouse
- leaves a menu entry, the helpVariable is set to the
- empty string {}. The mainwindow(1) associates its
- helpstatus and its menubar in this fashion.
-
- Name: <STRONG>menuButtons</STRONG>
- Class: <STRONG>MenuButtons</STRONG>
- Command-Line Switch: <STRONG>-menubuttons</STRONG>
-
- The menuButton option is a string which specifies the
- arrangement of menubuttons on the menubar frame. Each
- menubutton entry is delimited by the newline character.
-
- menubar .mb -menubuttons {
- menubutton file -text File
- menubutton edit -text Edit
- menubutton options -text Options
- }
-
- specifies that three menubuttons will be added to the
- menubar (file, edit, options). Each entry is translated
- into an add command call.
-
- The <STRONG>menuButtons</STRONG> option can accept embedded variables,
- commands, and backslash quoting. Embedded variables and
- commands must be enclosed in curly braces ({}) to
- ensure proper parsing of the substituted values.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>menubar</STRONG> command creates a new window (given by the <EM>path-</EM>
- <EM>Name</EM> argument) and makes it into a <STRONG>menubar</STRONG> menu widget.
- Additional options, described above may be specified on the
- command line or in the option database to configure aspects
- of the menubar such as its colors and font. The <STRONG>menubar</STRONG> com-
- mand returns its <EM>pathName</EM> argument. At the time this command
- is invoked, there must not exist a window named pathName,
- but pathName's parent must exist.
-
- A <STRONG>menubar</STRONG> is a widget that simplifies the task of creating
- menu hierarchies. It encapsulates a <STRONG>frame</STRONG> widget, as well as
- <STRONG>menubuttons</STRONG>, <STRONG>menus</STRONG>, and menu <STRONG>entries</STRONG>. The menubar allows
- menus to be specified and referenced in a more consistent
- manner than using Tk to build menus directly.
-
- <STRONG>Menubar</STRONG> allows a menu tree to be expressed in a hierachical
- "language". The <STRONG>menubar</STRONG> accepts a <STRONG>menuButtons</STRONG> option that
- allows a list of menubuttons to be added to the menubar. In
- turn, each menubutton accepts a <STRONG>menu</STRONG> option that specifies a
- list of menu entries to be added to the menubutton's menu.
- Cascade entries also accept the <STRONG>menu</STRONG> option for specifying a
- list of menu entries to be added to the cascade's menu.
-
- Additionally, the menubar allows each component of the menu-
- bar system to be referenced by a simple <EM>menuPathName</EM> syntax.
- The menubar also extends the set of options for menu entries
- to include a <STRONG>helpStr</STRONG> option.
-
-
-</PRE>
-<H2>MENU PATH NAMES</H2><PRE>
- A <EM>menuPathName</EM> is a series of component names separated by
- the `.' character. Each menubar component can be referenced
- via these <EM>menuPathNames</EM>. <EM>menuPathNames</EM> are similar to widget
- pathNames in Tk. Some correspond directly to a widget path-
- Name (components of type <STRONG>menu</STRONG> or <STRONG>menubutton</STRONG>), others
- correspond to a menu entry type. Every widget and entry in a
- menubar can be referenced with the <EM>menuPathName</EM> naming con-
- vention. A menubar can have four types of components:
-
- <STRONG>frame</STRONG>. A menubar holds exactly one frame which manages
- menubuttons. The frame is always signified by the `.'
- character as the path name.
- <STRONG>menubutton</STRONG>. A menubutton corresponds directly to a Tk
- menubutton. See menubutton(n).
-
- <STRONG>menu</STRONG>. A menu is attached to a menubutton and
- corresponds directly to Tk's menu widget. A menu is
- always signified by the <EM>menuPathName</EM> ending with the
- keyword <STRONG>menu</STRONG>. See menu(n).
-
- <STRONG>entry</STRONG>. An entry corresponds directly to Tk's menu
- widget entries. Menus consist of a column of one line
- entries. Entries may be of type: <STRONG>command</STRONG>, <STRONG>checkbutton</STRONG>,
- <STRONG>radiobutton</STRONG>, <STRONG>separator</STRONG>, or <STRONG>cascade</STRONG>. For a complete
- description of these types see the discussion on
- <STRONG>ENTRIES</STRONG> in menu(n).
-
- The suffix of a <EM>menuPathName</EM> may have the form of:
-
- <EM>tkWidgetName</EM> Specifies the name of the component, either a
- <STRONG>frame</STRONG>, <STRONG>menubutton</STRONG>, <STRONG>menu</STRONG>, or an <STRONG>entry</STRONG>. This is
- the normal naming of widgets. For example,
- .file references a <STRONG>menubutton</STRONG> named <EM>file</EM>.
-
- The <EM>menuPathName</EM> is a series of segment names, each
- separated by the '.' character. Segment names may be one of
- the following forms:
-
- <EM>number</EM> Specifies the index of the the component. For
- menubuttons, 0 corresponds to the left-most
- menubutton of the menu bar frame. As an exam-
- ple, .<EM>1</EM> would correspond to the second menu-
- button on the menu bar frame.
-
- For entries, 0 corresponds to the top-most
- entry of the menu. For example, .file.0 would
- correspond to the first entry on the menu
- attached to the menubutton named <EM>file</EM>.
-
- <STRONG>end</STRONG> Specifes the last component. For menubuttons,
- it specifies the right-most entry of the menu
- bar frame. For menu entries, it specifies the
- bottom-most entry of the menu.
-
- <STRONG>last</STRONG> Same as end.
-
- Finally, menu components always end with the <STRONG>menu</STRONG> keyword.
- These components are automatically created via the -menu
- option on menubuttons and cascades or via the <STRONG>add</STRONG> or <STRONG>insert</STRONG>
- commands.
-
- <STRONG>menu</STRONG> Specifes the menu pane that is associated with
- the given menubutton prefix. For example,
- .<EM>file</EM>.<EM>menu</EM> specifies the menu pane attached to
- the
-
- For example, the path .<EM>file</EM>.<EM>new</EM> specifies the entry named
- new on the menu associated with the file menubutton located
- on the menu bar. The path .<EM>file</EM>.<EM>menu</EM> specifies the menu pane
- associated with the menubutton .<EM>file</EM>. The path .<EM>last</EM> speci-
- fies the last menu on the menu bar. The path .<EM>0</EM>.<EM>last</EM> would
- specify the first menu (file) and the last entry on that
- menu (quit), yielding .<EM>file</EM>.<EM>quit</EM>.
-
- As a restriction, the last name segment of <EM>menuPathName</EM> can-
- not be one of the keywords last, menu, end, nor may it be a
- numeric value (integer).
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- The <STRONG>menubar</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- In addition, many of the widget commands for menubar take as
- one argument a path name to a menu component. These path
- names are called <EM>menuPathName</EM>s. See the discussion on <STRONG>MENU-</STRONG>
- <STRONG>BAR</STRONG> <STRONG>PATH</STRONG> <STRONG>NAMES</STRONG> above.
-
- The following commands are possible for menubar widgets:
-
- <EM>pathName</EM> <STRONG>add</STRONG> <EM>type</EM> <EM>menuPathName</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM>?
- Adds either a menu to the menu bar or a menu entry to a
- menu pane.
-
- If additional arguments are present, they specify
- <EM>option</EM>s available to component type <STRONG>entry</STRONG>. See the man
- pages for <STRONG>menu</STRONG>(1) in the section on <STRONG>ENTRIES</STRONG>.
-
- If <EM>type</EM> is one of <STRONG>cascade</STRONG>, <STRONG>checkbutton</STRONG>, <STRONG>command</STRONG>,
- <STRONG>radiobutton</STRONG>, or <STRONG>separator</STRONG> it adds a new entry to the
- bottom of the menu denoted by the prefix of <EM>menuPath-</EM>
- <EM>Name</EM>. If additonal arguments are present, they specify
- options available to menu <STRONG>entry</STRONG> widgets. In addition,
- the <STRONG>helpStr</STRONG> option is added by the menubar widget to
- all components of type entry.
-
- <STRONG>-helpstr</STRONG> <EM>value</EM>
- Specifes the string to associate with the entry.
- When the mouse moves over the associated entry,
- the variable denoted by <STRONG>helpVariable</STRONG> is set.
- Another widget can bind to the helpVariable and
- thus display status help.
-
- If the type of the component added is <STRONG>menubutton</STRONG> or
- <STRONG>cascade</STRONG>, a menubutton or cascade is added to the menu-
- bar. If additional arguments are present, they specify
- options available to menubutton or cascade widgets. In
- addition, the <STRONG>menu</STRONG> option is added by the menubar
- widget to all menubutton and cascade widgets.
-
- <STRONG>-menu</STRONG> <EM>menuSpec</EM>
- This is only valid for <EM>menuPathName</EM>s of type <STRONG>menu-</STRONG>
- <STRONG>button</STRONG> or <STRONG>cascade</STRONG>. Specifes an option set and/or a
- set of entries to place on a menu and associate
- with the menubutton or cascade. The <STRONG>option</STRONG> keyword
- allows the menu widget to be configured. Each item
- in the <EM>menuSpec</EM> is treated as add commands (each
- with the possibility of having other -menu
- options). In this way a menu can be recursively
- built.
-
- The last segment of <EM>menuPathName</EM> cannot be one of
- the keywords <STRONG>last</STRONG>, <STRONG>menu</STRONG>, <STRONG>end</STRONG>. Additionally, it may
- not be a <EM>number</EM>. However the <EM>menuPathName</EM> may be
- referenced in this manner (see discussion of <STRONG>COM-</STRONG>
- <STRONG>PONENT</STRONG> <STRONG>PATH</STRONG> <STRONG>NAMES</STRONG>).
-
- Note that the same curly brace quoting rules apply
- to <STRONG>-menu</STRONG> option strings as did to <STRONG>-menubuttons</STRONG>
- option strings. See the earlier discussion on
- <STRONG>umenubuttons</STRONG> in the "<STRONG>WIDGET-SPECIFIC</STRONG> <STRONG>OPTIONS</STRONG>" sec-
- tion.
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>options</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM>?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <STRONG>pathName</STRONG>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no value, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no option is
- specified). If one or more option-value pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>menuPathName</EM> ?<EM>menuPathName2</EM>?
- If <EM>menuPathName</EM> is of component type <STRONG>Menubutton</STRONG> or
- <STRONG>Menu</STRONG>, delete operates on menus. If <EM>menuPathName</EM> is of
- component type <STRONG>Entry</STRONG>, delete operates on menu entries.
-
- This command deletes all components between <EM>menuPath-</EM>
- <EM>Name</EM> and <EM>menuPathName2</EM> inclusive. If <EM>menuPathName2</EM> is
- omitted then it defaults to <EM>menuPathName</EM>. Returns an
- empty string.
-
- If <EM>menuPathName</EM> is of type menubar, then all menus and
- the menu bar frame will be destroyed. In this case
- <EM>menuPathName2</EM> is ignored.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>menuPathName</EM>
- If <EM>menuPathName</EM> is of type menubutton or menu, it
- returns the position of the menu/menubutton on the
- menubar frame.
-
- If <EM>menuPathName</EM> is of type <STRONG>command</STRONG>, <STRONG>separator</STRONG>,
- <STRONG>radiobutton</STRONG>, <STRONG>checkbutton</STRONG>, or <STRONG>cascade</STRONG>, it returns the
- menu widget's numerical index for the entry correspond-
- ing to <EM>menuPathName</EM>. If path is not found or the path
- is equal to ".", a value of -1 is returned.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>menuPathName</EM> <EM>type</EM> <EM>name</EM> ?<EM>option</EM> <EM>value</EM>?
- Insert a new component named name before the component
- specified by <EM>menuPathName</EM>.
-
- If <EM>menuPathName</EM> is of type <STRONG>Menubutton</STRONG> or <STRONG>Menu</STRONG>, the new
- component inserted is of type <STRONG>Menu</STRONG> and given the name
- name. In this case valid <EM>option</EM> <EM>value</EM> pairs are those
- accepted by menubuttons.
-
- If <EM>menuPathName</EM> is of type <STRONG>Entry</STRONG>, the new component
- inserted is of type <STRONG>entry</STRONG> and given the name <EM>name</EM>. In
- this case, valid <EM>option</EM> <EM>value</EM> pairs are those accepted
- by menu entries. <EM>Name</EM> cannot be one of the keywords
- <STRONG>last</STRONG>, <STRONG>menu</STRONG>, <STRONG>end</STRONG>. Additionally, it may not be a number.
- However the <EM>menuPathName</EM> may be referenced in this
- manner (see discussion of <STRONG>COMPONENT</STRONG> <STRONG>PATH</STRONG> <STRONG>NAMES</STRONG>).
-
- <EM>pathName</EM> <STRONG>invoke</STRONG> <EM>menuPathName</EM>
- Invoke the action of the menu entry denoted by <EM>menu-</EM>
- <EM>PathName</EM>. See the sections on the individual entries in
- the menu(1) man pages. If the menu entry is disabled
- then nothing happens. If the entry has a command asso-
- ciated with it then the result of that command is
- returned as the result of the <STRONG>invoke</STRONG> widget command.
- Otherwise the result is an empty string.
-
- If <EM>menuPathName</EM> is not a menu entry, an error is
- issued.
-
- <EM>pathName</EM> <STRONG>menucget</STRONG> <EM>menuPathName</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM>?
- Returns the current value of the configuration option
- given by <EM>option</EM>. The component type of <EM>menuPathName</EM>
- determines the valid available options.
-
- <EM>pathName</EM> <STRONG>menuconfigure</STRONG> <EM>menuPathName</EM> ?<EM>option</EM> <EM>value</EM>?
- Query or modify the configuration options of the com-
- ponet of the menubar specified by <EM>menuPathName</EM>. If no
- <EM>option</EM> is specified, returns a list describing all of
- the available options for <EM>menuPathName</EM> (see
- <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of this
- list). If <EM>option</EM> is specified with no value, then the
- command returns a list describing the one named option
- (this list will be identical to the corresponding sub-
- list of the value returned if no option is specified).
- If one or more option-value pairs are specified, then
- the command modifies the given widget option(s) to have
- the given value(s); in this case the command returns an
- empty string. The component type of <EM>menuPathName</EM> deter-
- mines the valid available options.
-
- <EM>pathName</EM> <STRONG>path</STRONG> ?<EM>mode</EM>? <EM>pattern</EM>
- Returns a fully formed <EM>menuPathName</EM> that matches <EM>pat-</EM>
- <EM>tern</EM>. If no match is found it returns -1. The <EM>mode</EM>
- argument indicates how the search is to be matched
- against <EM>pattern</EM> and it must have one of the following
- values:
-
- <STRONG>-glob</STRONG>
- Pattern is a glob-style pattern which is matched
- against each component path using the same rules
- as the string match command.
-
- <STRONG>-regexp</STRONG>
- Pattern is treated as a regular expression and
- matched against each component of the <EM>menuPathName</EM>
- using the same rules as the regexp command. The
- default mode is -glob.
-
- <EM>pathName</EM> <STRONG>type</STRONG> <EM>menuPathName</EM>
- Returns the type of the component specified by <EM>menu-</EM>
- <EM>PathName</EM>. For menu entries, this is the type argument
- passed to the <STRONG>add</STRONG>/<STRONG>insert</STRONG> widget command when the entry
- was created, such as <STRONG>command</STRONG> or <STRONG>separator</STRONG>. Othewise it
- is either a <STRONG>menubutton</STRONG> or a <STRONG>menu</STRONG>.
-
- <EM>pathName</EM> <STRONG>yposition</STRONG> <EM>menuPathName</EM>
- Returns a decimal string giving the y-coordinate within
- the menu window of the topmost pixel in the entry
- specified by <EM>menuPathName</EM>. If the <EM>menuPathName</EM> is not
- an entry, an error is issued.
-
-
-</PRE>
-<H2>EXAMPLE ONE: USING GRAMMAR</H2><PRE>
- The following example creates a menubar with "File", "Edit",
- "Options" menubuttons. Each of these menubuttons has an
- associated menu. In turn the File menu has menu entries, as
- well as the Edit menu and the Options menu. The Options menu
- is a tearoff menu with selectColor (for radiobuttons) set to
- blue. In addition, the Options menu has a cascade titled
- More, with several menu entries attached to it as well. An
- entry widget is provided to display help status.
-
- menubar .mb -helpvariable helpVar -menubuttons {
- menubutton file -text File -menu {
- options -tearoff false
- command new -label New \
- -helpstr "Open new document" \
- -command {puts NEW}
- command close -label Close \
- -helpstr "Close current document" \
- -command {puts CLOSE}
- separator sep1
- command exit -label Exit -command {exit} \
- -helpstr "Exit application"
- }
- menubutton edit -text Edit -menu {
- options -tearoff false
- command undo -label Undo -underline 0 \
- -helpstr "Undo last command" \
- -command {puts UNDO}
- separator sep2
- command cut -label Cut -underline 1 \
- -helpstr "Cut selection to clipboard" \
- -command {puts CUT}
- command copy -label Copy -underline 1 \
- -helpstr "Copy selection to clipboard" \
- -command {puts COPY}
- command paste -label Paste -underline 0 \
- -helpstr "Paste clipboard contents" \
- -command {puts PASTE}
- }
- menubutton options -text Options -menu {
- options -tearoff false -selectcolor blue
- radiobutton byName -variable viewMode \
- -value NAME -label "by Name" \
- -helpstr "View files by name order" \
- -command {puts NAME}
- radiobutton byDate -variable viewMode \
- -value DATE -label "by Date" \
- -helpstr "View files by date order" \
- -command {puts DATE}
- cascade prefs -label Preferences -menu {
- command colors -label Colors... \
- -helpstr "Change text colors" \
- -command {puts COLORS}
- command fonts -label Fonts... \
- -helpstr "Change text font" \
- -command {puts FONT}
- }
- }
-
- }
-
- frame .fr -width 300 -height 300
- entry .ef -textvariable helpVar
- pack .mb -anchor nw -fill x -expand yes
- pack .fr -fill both -expand yes
- pack .ef -anchor sw -fill x -expand yes
-
-
-
-</PRE>
-<H2>EXAMPLE TWO: USING METHODS</H2><PRE>
- Alternatively the same menu could be created by using the
- add and configure methods:
-
- menubar .mb
- .mb configure -menubuttons {
- menubutton file -text File -menu {
- command new -label New
- command close -label Close
- separator sep1
- command quit -label Quit
- }
- menubutton edit -text Edit
- }
-
-
- .mb add command .edit.undo -label Undo -underline 0
- .mb add separator .edit.sep2
- .mb add command .edit.cut -label Cut -underline 1
- .mb add command .edit.copy -label Copy -underline 1
- .mb add command .edit.paste -label Paste -underline 0
-
- .mb add menubutton .options -text Options -menu {
- radiobutton byName -variable viewMode \
- -value NAME -label "by Name"
- radiobutton byDate -variable viewMode \
- -value DATE -label "by Date"
- }
-
- .mb add cascade .options.prefs -label Preferences -menu {
- command colors -label Colors...
- command fonts -label Fonts...
- }
- pack .mb -side left -anchor nw -fill x -expand yes
-
-
-
-</PRE>
-<H2>CAVEATS</H2><PRE>
- The <STRONG>-menubuttons</STRONG> option as well as the <STRONG>-menu</STRONG> option is
- evaluated by menubar with the <STRONG>subst</STRONG> command. The positive
- side of this is that the option string may contain vari-
- ables, commands, and/or backslash substitutions. However,
- substitutions might expand into more than a single word.
- These expansions can be protected by enclosing candidate
- substitutions in curly braces ({}). This ensures, for exam-
- ple, a value for an option will still be treated as a single
- value and not multiple values. The following example illus-
- trates this case:
-
- set fileMenuName "File Menu"
- set var {}
- menubar .mb -menubuttons {
- menubutton file -text {$fileMenuName}
- menubutton edit -text Edit -menu {
- checkbutton check \
- -label Check \
- -variable {[scope var]} \
- -onvalue 1 \
- -offvalue 0
- }
- menubutton options -text Options
- }
-
- The variable <EM>fileMenuName</EM> will expand to "File Menu"
- when the <STRONG>subst</STRONG> command is used on the menubutton
- specification. In addition, the [<STRONG>scope</STRONG>...] command will
- expand to @scope :: var. By enclosing these inside {}
- they stay as a single value. Note that only {} work for
- this. [list...], "" etc. will not protect these from
- the subst command.
-
-
-</PRE>
-<H2>ACKNOWLEDGMENTS</H2><PRE>
- Bret Schumaker
-
- 1994 - Early work on a menubar widget.
-
- Mark Ulferts, Mark Harrison, John Sigler
-
- Invaluable feedback on grammar and usability of the
- menubar widget
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Bill W. Scott
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- frame, menu, menubutton, entries, help
-
-
-
-</PRE>
-</BODY>
-</HTML>
diff --git a/itcl/iwidgets3.0.0/demos/html/messagebox.n.html b/itcl/iwidgets3.0.0/demos/html/messagebox.n.html
new file mode 100644
index 00000000000..cf60d7768ae
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/messagebox.n.html
@@ -0,0 +1,358 @@
+<TITLE>messagebox - Create and manipulate a messagebox text widget</TITLE>
+<H1>messagebox - Create and manipulate a messagebox text widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>messagebox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Scrolledwidget &lt;- Messagebox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>cursor</B><br>
+<B>highlightColor</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>activeForeground</B><br>
+<B>exportSelection</B><br>
+<B>highlightThickness</B><br>
+<B>setGrid</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>font</B><br>
+<B>padX</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>foreground</B><br>
+<B>padY</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>hscrollMode</B><br>
+<B>visibleItems</B><br>
+</td>
+<td valign=top>
+<B>sbWidth</B><br>
+<B>vscrollMode</B><br>
+</td>
+<td valign=top>
+<B>scrollMargin</B><br>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledtext.n.html"> "scrolledtext" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>spacing1</B><br>
+</td>
+<td valign=top>
+<B>spacing2</B><br>
+</td>
+<td valign=top>
+<B>spacing3</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> widget manual entry for details on the above
+associated options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>fileName</B>
+Class: <B>FileName</B>
+Command-Line Switch: <B>-filename</B>
+</pre>
+<UL>
+Specifies the filename to be displayed in the file selection dialog when
+it pops up during a save of the messagebox contents operation.
+</UL>
+<P>
+<pre>
+Name: <B>maxLines</B>
+Class: <B>MaxLines</B>
+Command-Line Switch: <B>-maxlines</B>
+</pre>
+<UL>
+Specifies the maximum number of lines allowed in the text area of the
+messagebox. When this limit is reached, the oldest line will be deleted
+such that the total number of lines remains <I>maxlines</I>.
+</UL>
+<P>
+<pre>
+Name: <B>saveDir</B>
+Class: <B>SaveDir</B>
+Command-Line Switch: <B>-savedir</B>
+</pre>
+<UL>
+Specifies the default directory to display when the file selection dialog
+pops up during a save of the messagebox contents operation. If this
+parameter is not specified, then the files in the current working directory
+are displayed.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>messagebox</B> command creates
+a scrolled information messages area widget.
+Message types can be user defined and configured. Their options
+include foreground, background, font, bell, and their display
+mode of on or off. This allows message types to defined as needed,
+removed when no longer so, and modified when necessary. An export
+method is provided for file I/O.
+
+<P>
+The number of lines displayed may be limited with
+the default being 1000. When this limit is reached, the oldest line
+is removed. A popup menu which appears when the right mouse button
+has been pressed in the message area has been predefined. The contents
+of the popup menu by default support clearing the area and saving its
+contents to a file. Additional operations may be defined or existing
+operations removed by using the component command to access the
+popup menu.
+
+</pre><H2>MESSAGE TYPES</H2>
+<P>
+The display characteristics of messages issued to the messagebox vary
+with the message type. Types are defined by the user and they may
+be added, removed, and configured. The options of the message type
+control the display include the following:
+<DL>
+<DT> <B>-background <I>color</I>
+</I></B>
+<DD> <I>Color</I> specifies the background color to use for characters
+associated with the message type.
+It may have any of the forms accepted by <B>Tk_GetColor</B>.
+</DL>
+<DL>
+<DT> <B>-bell <I>boolean</I>
+</I></B>
+<DD> Specifies whether or not to ring the bell whenenver a message of this
+type is issued. <I>Boolean</I> may have any of the forms accepted by
+<B>Tk_GetBoolean</B>. The default is 0.
+</DL>
+<DL>
+<DT> <B>-font\ <I>fontName</I>
+</I></B>
+<DD> <I>FontName</I> is the name of a font to use for drawing
+characters. It may have any of the forms accepted
+by Tk_GetFontStruct.
+</DL>
+<DL>
+<DT> <B>-foreground <I>color</I>
+</I></B>
+<DD> <I>Color</I> specifies the foreground color to use for characters
+associated with the message type.
+It may have any of the forms accepted by <B>Tk_GetColor</B>.
+</DL>
+<DL>
+<DT> <B>-show <I>boolean</I>
+</I></B>
+<DD> Specifies whether of not to display this message type when issued.
+<I>Boolean</I> may have any of the forms accepted by
+<B>Tk_GetBoolean</B>. The default is 1.
+
+</DL>
+</pre><H2>METHODS</H2>
+<P>
+The <B>messagebox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for messagebox widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>messagebox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B>
+</I></B>
+<DD> Clear the messagebox of all messages.
+</DL>
+<DL>
+<DT> <I>pathName <B>export</B> <I>filename</I>
+</I></B>
+<DD> Write text to a file. If <I>filename</I> exists then
+contents are replaced with text widget contents.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>messagebox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>type</B> <I>option</I> <I>msgtype</I> ?<I>arg arg ...</I>?
+</I></B>
+<DD> This command is used to manipulate message types. The behavior of
+the command depends on the option argument that follows the type keyword.
+The following forms of the command are supported:
+</DL>
+<UL>
+<DL>
+</DL>
+<DL>
+<DT> <I>pathName <B>type add</B> <I>msgtype</I> ?<I>option value ...</I>?
+</I></B>
+<DD> Adds a new message type given by <I>msgtype</I> with the display
+properties defined by the option value pairs.
+See MESSAGE TYPES for information on the options that
+are supported.
+</DL>
+<DL>
+<DT> <I>pathName <B>type cget</B> <I>msgtype option</I>
+</I></B>
+<DD> Returns the value of a configuration option for a message type.
+<I>Msgtype</I> identifies the message type, and <I>option</I>
+specifies a particular configuration option, which must be one of
+the ones listed in the section MESSAGE TYPES.
+</DL>
+<DL>
+<DT> <I>pathName <B>type configure <I>msgtype</I> ?<I>option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options for a message type.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for the message type <I>msgtype</I>.
+If <I>option</I> is specified with no <I>value</I>, then the command
+returns a list describing the one named option.
+If one or more <I>option-value</I> pairs are specified, then the command
+modifies the given option(s) to have the given value(s); in
+this case the command returns an empty string.
+See MESSAGE TYPES for information on the options that
+are supported.
+<I>pathName <B>type remove</B> <I>msgtype</I>
+Removes an existing message type given by <I>msgtype</I>.
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName <B>issue</B> <I>string</I> <I>?level?</I> <I>?tags?</I>
+</I></B>
+<DD> Print a <I>string</I> to the text area at the given level and with
+any additional tags specified.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>itemMenu</B>
+Class: <B>Menu</B>
+</pre>
+<UL>
+This is the popup menu that gets displayed when you right-click in the
+text area of the messagebox. Its contents may be modified via the component
+command.
+</UL>
+<P>
+<pre>
+Name: <B>text</B>
+Class: <B>Scrolledtext</B>
+</pre>
+<UL>
+The text component is the scrolledtext widget. See the "scrolledtext" widget
+manual entry for details on the text component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ messagebox .mb -hscrollmode dynamic -labeltext "Messages" -labelpos n \\
+ -height 120 -width 550 -savedir "/tmp" -textbackground #d9d9d9
+
+ pack .mb -padx 5 -pady 5 -fill both -expand yes
+
+ .mb type add ERROR -background red -foreground white -bell 1
+ .mb type add WARNING -background yellow -foreground black
+ .mb type add INFO -background white -foreground black
+
+ .mb issue "This is an error message in red with a beep" ERROR
+ .mb issue "This warning message in yellow" WARNING
+ .mb issue "This is an informational message" INFO
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:ajahn@spd.dsccc.com">Alfredo Jahn V</A>
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+<P>
+</pre><H2>KEYWORDS</H2>
+messagebox, scrolledtext, text, widget
+
diff --git a/itcl/iwidgets3.0.0/demos/html/messagedialog.n.html b/itcl/iwidgets3.0.0/demos/html/messagedialog.n.html
index 321baeb58f9..db90483a375 100644
--- a/itcl/iwidgets3.0.0/demos/html/messagedialog.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/messagedialog.n.html
@@ -1,253 +1,279 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - messagedialog</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - messagedialog</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- messagedialog - Create and manipulate a message dialog
- widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>messagedialog</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;- Mes-
- sagedialog
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>anchor</STRONG> <STRONG>background</STRONG> <STRONG>bitmap</STRONG> <STRONG>cursor</STRONG>
- <STRONG>font</STRONG> <STRONG>foreground</STRONG> <STRONG>image</STRONG> <STRONG>justify</STRONG>
- <STRONG>text</STRONG> <STRONG>wrapLength</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>buttonBoxPadX</STRONG> <STRONG>buttonBoxPadY</STRONG> <STRONG>buttonBoxPos</STRONG> <STRONG>padX</STRONG>
- <STRONG>padY</STRONG> <STRONG>separator</STRONG> <STRONG>thickness</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited options.
-
- <STRONG>master</STRONG> <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" widget manual entry for details on the above
- inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>imagePos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-imagepos</STRONG>
-
- Specifies the image position relative to the message
- text: <STRONG>n</STRONG>, <STRONG>s</STRONG>, <STRONG>e</STRONG>, or <STRONG>w</STRONG>. The default is w.
-
- Name: <STRONG>textPadX</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-textpadx</STRONG>
-
- Specifies a non-negative value indicating how much
- extra space to request for the message text in the X
- direction. The value may have any of the forms accept-
- able to Tk_GetPixels.
-
- Name: <STRONG>textPadY</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-textpady</STRONG>
-
- Specifies a non-negative value indicating how much
- extra space to request for the message text in the X
- direction. The value may have any of the forms accept-
- able to Tk_GetPixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>messagedialog</STRONG> command creates a message dialog composite
- widget. The messagedialog is derived from the Dialog class
- and is composed of an image and associated message text with
- commands to manipulate the dialog buttons.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>messagedialog</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for messagedialog
- widgets:
-
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>add</STRONG> <STRONG>buttonconfigure</STRONG> <STRONG>defaulthide</STRONG>
- <STRONG>insert</STRONG> <STRONG>invoke</STRONG> <STRONG>show</STRONG>
-
- See the "buttonbox" widget manual entry for details on the
- above inherited methods.
-
- <STRONG>childsite</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited methods.
-
- <STRONG>activate</STRONG> <STRONG>center</STRONG> <STRONG>deactivate</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>messagedialog</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>messagedialog</STRONG> command.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>image</STRONG>
- Class: <STRONG>Label</STRONG>
-
- The image component is the bitmap or image of the mes-
- sage dialog. See the "label" widget manual entry for
- details on the image component item.
-
- Name: <STRONG>msg</STRONG>
- Class: <STRONG>Label</STRONG>
-
- The msg component provides the textual portion of the
- message dialog. See the "label" widget manual entry
- for details on the msg component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- #
- # Standard question message dialog used for confirmation.
- #
- messagedialog .md -title "Message Dialog" -text "Are you sure ?" \
- -bitmap questhead -modality global
-
- .md hide Help
- .md buttonconfigure OK -text Yes
- .md buttonconfigure Cancel -text No
-
- if {[.md activate]} {
- .md configure -text "Are you really sure ?"
- if {[.md activate]} {
- puts stdout "Yes"
- } else {
- puts stdout "No"
- }
- } else {
- puts stdout "No"
-
- }
-
- destroy .md
-
- #
- # Copyright notice with automatic deactivation.
- #
- messagedialog .cr -title "Copyright" -bitmap @dsc.xbm -imagepos n \
- -text "Copyright 1995 DSC Communications Corporation\n \
- All rights reserved"
-
- .cr hide Apply
- .cr hide Cancel
- .cr hide Help
-
- .cr activate
- after 10000 ".cr deactivate"
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- messagedialog, dialog, dialogshell, shell, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>messagedialog - Create and manipulate a message dialog widget</TITLE>
+<H1>messagedialog - Create and manipulate a message dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>messagedialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;- Messagedialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>bitmap</B><br>
+<B>image</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>text</B><br>
+</td>
+<td valign=top>
+<B>font</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" widget manual entry for details on the above
+inherited options.
+<P>
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>imagePos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-imagepos</B>
+</pre>
+<UL>
+Specifies the image position relative to the message text: <B>n</B>, <B>s</B>,
+<B>e</B>, or <B>w</B>. The default is w.
+</UL>
+<P>
+<pre>
+Name: <B>textPadX</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-textpadx</B>
+</pre>
+<UL>
+Specifies a non-negative value indicating how much extra space to request for
+the message text in the X direction. The value may have any of the forms
+acceptable to Tk_GetPixels.
+</UL>
+<P>
+<pre>
+Name: <B>textPadY</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-textpady</B>
+</pre>
+<UL>
+Specifies a non-negative value indicating how much extra space to request for
+the message text in the X direction. The value may have any of the forms
+acceptable to Tk_GetPixels.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>messagedialog</B> command creates a message dialog composite widget.
+The messagedialog is derived from the Dialog class and is composed of
+an image and associated message text with commands to manipulate the
+dialog buttons.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>messagedialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for messagedialog widgets:
+
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>messagedialog</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>messagedialog</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>image</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The image component is the bitmap or image of the message dialog. See
+the "label" widget manual entry for details on the image component item.
+</UL>
+<P>
+<pre>
+Name: <B>message</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The message component provides the textual portion of the message dialog.
+See the "label" widget manual entry for details on the message component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ #
+ # Standard question message dialog used for confirmation.
+ #
+ messagedialog .md -title "Message Dialog" -text "Are you sure ?" \\
+ -bitmap questhead -modality global
+
+ .md buttonconfigure OK -text Yes
+ .md buttonconfigure Cancel -text No
+
+ if {[.md activate]} {
+ .md configure -text "Are you really sure ?"
+ if {[.md activate]} {
+ puts stdout "Yes"
+ } else {
+ puts stdout "No"
+ }
+ } else {
+ puts stdout "No"
+ }
+
+ destroy .md
+
+ #
+ # Copyright notice with automatic deactivation.
+ #
+ messagedialog .cr -title "Copyright" -bitmap @dsc.xbm -imagepos n \\
+ -text "Copyright 1995 DSC Communications Corporation\\n \\
+ All rights reserved"
+
+ .cr hide Cancel
+
+ .cr activate
+ after 10000 ".cr deactivate"
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+messagedialog, dialog, dialogshell, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/notebook.n.html b/itcl/iwidgets3.0.0/demos/html/notebook.n.html
index 5dfd49c2d00..62c90dced17 100644
--- a/itcl/iwidgets3.0.0/demos/html/notebook.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/notebook.n.html
@@ -1,402 +1,509 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - notebook</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - notebook</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- notebook - create and manipulate notebook widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>notebook</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- notebook
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>foreground</STRONG> <STRONG>scrollCommand</STRONG> <STRONG>width</STRONG>
- <STRONG>cursor</STRONG> <STRONG>height</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>auto</STRONG>
- Class: <STRONG>Auto</STRONG>
- Command-Line Switch: <STRONG>-auto</STRONG>
-
- Specifies whether to use the automatic
- packing/unpacking algorithm of the notebook. A value of
- <STRONG>true</STRONG> indicates that page frames will be unpacked and
- packed acoording to the algorithm described in the
- <STRONG>select</STRONG> command. A value of <STRONG>false</STRONG> leaves the current
- page packed and subsequent selects, next, or previous
- commands do not switch pages automatically. In either
- case the page's associated command (see the <STRONG>add</STRONG>
- command's description of the <STRONG>command</STRONG> option) is
- invoked. The value may have any of the forms accepted
- by the <STRONG>Tcl_GetBoolean</STRONG>, such as true, false, 0, 1, yes,
- or no.
-
- For example, if a series of pages in a notebook simply
- change certain display configurations of a graphical
- display, the <STRONG>-auto</STRONG> flag could be used. By setting it,
- the <STRONG>-command</STRONG> procs could do the appropriate reconfigur-
- ing of the page when the page is switched.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>notebook</STRONG> command creates a new window (given by the
- pathName argument) and makes it into a notebook widget.
- Additional options, described above may be specified on the
- command line or in the option database to configure aspects
- of the notebook such as its colors, font, and text. The
- <STRONG>notebook</STRONG> command returns its <EM>pathName</EM> argument. At the time
- this command is invoked, there must not exist a window named
- pathName, but pathName's parent must exist.
- A notebook is a widget that contains a set of pages. It
- displays one page from the set as the selected page. When a
- page is selected, the page's contents are displayed in the
- page area. When first created a notebook has no pages. Pages
- may be added or deleted using widget commands described
- below.
-
-
-
-</PRE>
-<H2>NOTEBOOK PAGES</H2><PRE>
- A notebook's pages area contains a single child site <STRONG>frame</STRONG>.
- When a new page is created it is a child of this frame. The
- page's child site frame serves as a geometry container for
- applications to pack widgets into. It is this frame that is
- automatically unpacked or packed when the <STRONG>auto</STRONG> option is
- <STRONG>true</STRONG>. This creates the effect of one page being visible at a
- time. When a new page is selected, the previously selected
- page's child site frame is automatically unpacked from the
- notebook's child site frame and the newly selected page's
- child site is packed into the notebook's child site frame.
-
- However, sometimes it is desirable to handle page changes in
- a different manner. By specifying the <STRONG>auto</STRONG> option as <STRONG>false</STRONG>,
- child site packing can be disabled and done differently. For
- example, all widgets might be packed into the first page's
- child site frame. Then when a new page is selected, the
- application can reconfigure the widgets and give the appear-
- ance that the page was flipped.
-
- In both cases the <STRONG>command</STRONG> option for a page specifies a Tcl
- Command to execute when the page is selected. In the case of
- <STRONG>auto</STRONG> being <STRONG>true</STRONG>, it is called between the unpacking of the
- previously selected page and the packing of the newly
- selected page.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- The <STRONG>notebookfR</STRONG> <STRONG>command</STRONG> <STRONG>creates</STRONG> <STRONG>a</STRONG> <STRONG>new</STRONG> <STRONG>Tcl</STRONG> <STRONG>command</STRONG> <STRONG>whose</STRONG> <STRONG>name</STRONG>
- <STRONG>is</STRONG> <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- Many of the widget commands for a notebook take as one argu-
- ment an indicator of which page of the notebook to operate
- on. These indicators are called indexes and may be specified
- in any of the following forms:
-
- <EM>number</EM>
- Specifies the index of the the component. For menus, 0
- corresponds to the left-most menu of the menu bar. For
- entries, 0 corresponds to the top-most entry of the
- menu. <EM>number</EM> Specifies the page numerically, where 0
- corresponds to the first page in the notebook, 1 to the
- second, and so on.
-
- <STRONG>select</STRONG>
- Specifies the currently selected page's index. If no
- page is currently selected, the value -1 is returned.
-
- <STRONG>end</STRONG> Specifes the last page in the notebooks's index. If the
- notebook is empty this will return -1.
-
- <EM>pattern</EM>
- If the index doesn't satisfy the form of a number, then
- this form is used. Pattern is pattern-matched against
- the <STRONG>label</STRONG> of each page in the notebook, in order from
- the first to the last page, until a matching entry is
- found. The rules of <STRONG>Tcl_StringMatch</STRONG> are used.
-
- The following commands are possible for notebook widgets:
-
- <EM>pathName</EM> <STRONG>add</STRONG> ?<EM>option</EM> <EM>value</EM>?
- Add a new page at the end of the notebook. A new child
- site frame is created. Returns the child site pathName.
- If additional arguments are present, they specify any
- of the following options:
-
- <STRONG>-background</STRONG> <EM>value</EM>
- Specifies a background color to use for displaying
- the child site frame of this page. If this option
- is specified as an empty string (the default),
- then the background option for the overall note-
- book is used.
-
- <STRONG>-command</STRONG> <EM>value</EM>
- Specifies a Tcl command to be executed when this
- page is selected. This allows the programmer a
- hook to reconfigure this page's widgets or any
- other page's widgets.
-
- If the notebook has the auto option set to true,
- when a page is selected this command will be
- called immediately after the previously selected
- page is unpacked and immediately before this page
- is selected. The index value select is valid dur-
- ing this Tcl command. `index select' will return
- this page's page number.
-
- If the auto option is set to false, when a page is
- selected the unpack and pack calls are bypassed.
- This Tcl command is still called.
-
- <STRONG>-foreground</STRONG> <EM>value</EM>
- Specifies a foreground color to use for displaying
- tab labels when tabs are in their normal
- unselected state. If this option is specified as
- an empty string (the default), then the foreground
- option for the overall notebook is used.
-
- <STRONG>-label</STRONG> <EM>value</EM>
- Specifies a string to associate with this page.
- This label serves as an additional identifier used
- to reference the page. This label may be used for
- the index value in widget commands.
-
- <EM>pathName</EM> <STRONG>childSite</STRONG> ?<EM>index</EM>?
- If passed no arguments, returns a list of pathNames for
- all the pages in the notebook. If the notebook is
- empty, an empty list is returned
-
- If index is passed, it returns the pathName for the
- page's child site frame specified by index. Widgets
- that are created with this pathName will be displayed
- when the associated page is selected. If index is not a
- valid index, an empty string is returned.
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no option is
- specified). If one or more option-value pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any of
- the values accepted by the <STRONG>notebook</STRONG> command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>index1</EM> ?index2?
- Delete all of the pages between <EM>index1</EM> and <EM>index2</EM>
- inclusive. If <EM>index2</EM> is omitted then it defaults to
- <EM>index1</EM>. Returns an empty string.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the numerical index corresponding to <EM>index</EM>.
-
- <STRONG>pathName</STRONG> <STRONG>insert</STRONG> <EM>index</EM> ?<EM>option</EM> <EM>value</EM>?
- Insert a new page in the notebook before the page
- specified by <EM>index</EM>. A new child site <STRONG>frame</STRONG> is created.
- See the <STRONG>add</STRONG> command for valid options. Returns the
- child site pathName.
-
- <EM>pathName</EM> <STRONG>next</STRONG>
- Advances the selected page to the next page (order is
- determined by insertion order). If the currently
- selected page is the last page in the notebook, the
- selection wraps around to the first page in the note-
- book.
-
- For notebooks with auto set to true the current page's
- child site is unpacked from the notebook's child site
- frame. Then the next page's child site is packed into
- the notebooks child site frame. The Tcl command given
- with the command option will be invoked between these
- two operations.
-
- For notebooks with auto set to false the Tcl command
- given with the command option will be invoked.
-
- <EM>pathName</EM> <STRONG>pagecget</STRONG> <EM>index</EM> ?<EM>option</EM>?
- Returns the current value of the configuration option
- given by <EM>option</EM> for the page specified by <EM>index</EM>. The
- valid available options are the same as available to
- the <STRONG>add</STRONG> command.
-
- <EM>pathName</EM> <STRONG>pageconfigure</STRONG> <EM>index</EM> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- This command is similar to the configure command,
- except that it applies to the options for an individual
- page, whereas configure applies to the options for the
- notebook. Options may have any of the values accepted
- by the add widget command. If options are specified,
- options are modified as indicated in the command and
- the command returns an empty string. If no options are
- specified, returns a list describing the current
- options for page <EM>index</EM> (see <STRONG>Tk_ConfigureInfo</STRONG> for infor-
- mation on the format of this list).
-
- <EM>pathName</EM> <STRONG>prev</STRONG>
- Moves the selected page to the previous page (order is
- determined by insertion order). If the currently
- selected page is the first page in the notebook, the
- selection wraps around to the last page in the note-
- book.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>true</STRONG> the current page's
- child site is unpacked from the notebook's child site
- frame. Then the previous page's child site is packed
- into the notebooks child site frame. The Tcl command
- given with the command option will be invoked between
- these two operations.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>false</STRONG> the Tcl command
- given with the command option will be invoked.
-
- <EM>pathName</EM> <STRONG>select</STRONG> <EM>index</EM>
- Selects the page specified by <EM>index</EM> as the currently
- selected page.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>true</STRONG> the current page's
- child site is unpacked from the notebook's child site
- frame. Then the index page's child site is packed into
- the notebooks child site frame. The Tcl command given
- with the command option will be invoked between these
- two operations.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>false</STRONG> the Tcl command
- given with the command option will be invoked.
-
- <EM>pathName</EM> <STRONG>view</STRONG>
- Returns the currently selected page. This command is
- for compatibility with the scrollbar widget.
-
- <EM>pathName</EM> <STRONG>view</STRONG> <EM>index</EM>
- Selects the page specified by <EM>index</EM> as the currently
- selected page. This command is for compatibility with
- the scrollbar widget.
-
- <EM>pathName</EM> <STRONG>view</STRONG> <EM>moveto</EM> <EM>fraction</EM>
- Uses the fraction value to determine the corresponding
- page to move to. This command is for compatibility with
- the scrollbar widget.
-
- <EM>pathName</EM> <STRONG>view</STRONG> <EM>scroll</EM> <EM>num</EM> <EM>what</EM>
- Uses the <EM>num</EM> value to determine how many pages to move
- forward or backward (num can be negative or positive).
- The <EM>what</EM> argument is ignored. This command is for com-
- patibility with the scrollbar widget.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- Following is an example that creates a notebook with two
- pages. In this example, we use a scrollbar widget to control
- the notebook widget.
-
- # Create the notebook widget and pack it.
- notebook .nb -width 100 -height 100
- pack .nb -anchor nw \
- -fill both \
- -expand yes \
- -side left \
- -padx 10 \
- -pady 10
-
- # Add two pages to the notebook, labelled
- # "Page One" and "Page Two", respectively.
- .nb add -label "Page One"
- .nb add -label "Page Two"
-
- # Get the child site frames of these two pages.
- set page1CS [.nb childsite 0]
- set page2CS [.nb childsite "Page Two"]
-
- # Create buttons on each page of the notebook
- button $page1CS.b -text "Button One"
- pack $page1CS.b
- button $page2CS.b -text "Button Two"
- pack $page2CS.b
-
- # Select the first page of the notebook
- .nb select 0
-
- # Create the scrollbar and associate teh scrollbar
- # and the notebook together, then pack the scrollbar
- ScrollBar .scroll -command ".nb view"
- .nb configure -scrollcommand ".scroll set"
- pack .scroll -fill y -expand yes -pady 10
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Bill W. Scott
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- notebook page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>notebook - create and manipulate notebook widgets</TITLE>
+<H1>notebook - create and manipulate notebook widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>notebook</B> <I>pathName</I> ?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- notebook
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>scrollCommand</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>auto</B>
+Class: <B>Auto</B>
+Command-Line Switch: <B>-auto</B>
+</pre>
+<UL>
+Specifies whether to use the automatic packing/unpacking algorithm of the
+notebook. A value of <B>true</B> indicates that page frames will be unpacked
+and packed acoording to the algorithm described in the <B>select</B> command.
+A value of <B>false</B> leaves the current page packed and subsequent selects,
+next, or previous commands do not switch pages automatically. In either
+case the page's associated command (see the <B>add</B> command's description
+of the <B>command</B> option) is invoked. The value may have any of the
+forms accepted by the <B>Tcl_GetBoolean</B>, such as true, false, 0, 1, yes,
+or no.
+</UL>
+<UL>
+For example, if a series of pages in a notebook simply change certain display
+configurations of a graphical display, the <B>-auto</B> flag could be used.
+By setting it, the <B>-command</B> procs could do the appropriate reconfiguring
+of the page when the page is switched.
+</UL>
+</pre><HR>
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>notebook</B> command creates a new window (given by the pathName
+argument) and makes it into a notebook widget. Additional options, described
+above may be specified on the command line or in the option database to
+configure aspects of the notebook such as its colors, font, and text.
+The <B>notebook</B> command returns its <I>pathName</I> argument. At the time
+this command is invoked, there must not exist a window named pathName, but
+pathName's parent must exist.
+
+A notebook is a widget that contains a set of pages. It displays one page from
+the set as the selected page. When a page is selected, the page's contents are
+displayed in the page area. When first created a notebook has no pages. Pages
+may be added or deleted using widget commands described below.
+
+</pre><H2>NOTEBOOK PAGES</H2>
+<P>
+A notebook's pages area contains a single child site <B>frame</B>. When a new
+page is created it is a child of this frame. The page's child site frame
+serves as a geometry container for applications to pack widgets into. It is
+this frame that is automatically unpacked or packed when the <B>auto</B>
+option is <B>true</B>. This creates the effect of one page being visible at
+a time. When a new page is selected, the previously selected page's child
+site frame is automatically unpacked from the notebook's child site frame
+and the newly selected page's child site is packed into the notebook's
+child site frame.
+
+However, sometimes it is desirable to handle page changes in a different
+manner. By specifying the <B>auto</B> option as <B>false</B>, child site
+packing can be disabled and done differently. For example, all widgets might
+be packed into the first page's child site frame. Then when a new page is
+selected, the application can reconfigure the widgets and give the appearance
+that the page was flipped.
+
+In both cases the <B>command</B> option for a page specifies a Tcl Command to
+execute when the page is selected. In the case of <B>auto</B> being <B>true</B>,
+it is called between the unpacking of the previously selected page and the
+packing of the newly selected page.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<P>
+The <B>notebookfR command creates a new Tcl command whose name
+is <I>pathName</I>. This command may be used to invoke various operations
+on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for a notebook take as one argument an indicator
+of which page of the notebook to operate on. These indicators are called
+indexes and may be specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the index of the the component. For menus, 0 corresponds to the
+left-most menu of the menu bar. For entries, 0 corresponds to the top-most
+entry of the menu.
+<I>number</I>
+Specifies the page numerically, where 0 corresponds to the first page in
+the notebook, 1 to the second, and so on.
+</DL>
+<DL>
+<DT> <B>select</B>
+</I></B>
+<DD> Specifies the currently selected page's index. If no page is currently
+selected, the value -1 is returned.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Specifes the last page in the notebooks's index. If the notebook is empty
+this will return -1.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy the form of a number, then this form is used.
+Pattern is pattern-matched against the <B>label</B> of each page in the
+notebook, in order from the first to the last page, until a matching entry
+is found. The rules of <B>Tcl_StringMatch</B> are used.
+</DL>
+<P>
+'.............................................................................
+The following commands are possible for notebook widgets:
+<DL>
+<DT> <I>pathName</I> <B>add</B> ?<I>option value</I>?
+</I></B>
+<DD> Add a new page at the end of the notebook. A new child site frame is
+created. Returns the child site pathName. If additional arguments are
+present, they specify any of the following options:
+</DL>
+<UL>
+<DL>
+<DT> <B>-background</B> <I>value</I>
+</I></B>
+<DD> Specifies a background color to use for displaying the child site frame
+of this page. If this option is specified as an empty string (the default),
+then the background option for the overall notebook is used.
+</DL>
+<DL>
+<DT> <B>-command</B> <I>value</I>
+</I></B>
+<DD> Specifies a Tcl command to be executed when this page is selected. This
+allows the programmer a hook to reconfigure this page's widgets or any other
+page's widgets.
+<UL>
+If the notebook has the auto option set to true, when a page is selected
+this command will be called immediately after the previously selected page
+is unpacked and immediately before this page is selected. The index value
+select is valid during this Tcl command. `index select' will return this
+page's page number.
+</UL>
+<UL>
+If the auto option is set to false, when a page is selected the unpack and
+pack calls are bypassed. This Tcl command is still called.
+</UL>
+</DL>
+<DL>
+<DT> <B>-foreground</B> <I>value</I>
+</I></B>
+<DD> Specifies a foreground color to use for displaying tab labels when tabs are
+in their normal unselected state. If this option is specified as an empty
+string (the default), then the foreground option for the overall notebook
+is used.
+</DL>
+<DL>
+<DT> <B>-label</B> <I>value</I>
+</I></B>
+<DD> Specifies a string to associate with this page. This label serves as an
+additional identifier used to reference the page. This label may be used
+for the index value in widget commands.
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName</I> <B>childSite</B> ?<I>index</I>?
+</I></B>
+<DD> If passed no arguments, returns a list of pathNames for all the pages in
+the notebook. If the notebook is empty, an empty list is returned
+<UL>
+If index is passed, it returns the pathName for the page's child site
+frame specified by index. Widgets that are created with this pathName will
+be displayed when the associated page is selected. If index is not a valid
+index, an empty string is returned.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given by <I>option</I>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> Query or modify the configuration options of the widget. If no <I>option</I>
+is specified, returns a list describing all of the available options
+for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for information on the
+format of this list). If <I>option</I> is specified with no <I>value</I>,
+then the command returns a list describing the one named option (this
+list will be identical to the corresponding sublist of the value returned
+if no option is specified). If one or more option-value pairs are specified,
+then the command modifies the given widget option(s) to have the given
+value(s); in this case the command returns an empty string. <I>Option</I>
+may have any of the values accepted by the <B>notebook</B> command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>delete</B> <I>index1</I> ?i</B></I>ndex2?
+</I></B>
+<DD> Delete all of the pages between <I>index1</I> and <I>index2</I> inclusive.
+If <I>index2</I> is omitted then it defaults to <I>index1</I>. Returns an
+empty string.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>index</B> <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to <I>index</I>.
+</DL>
+<DL>
+<DT> <B>pathName</B> <B>insert</B> <I>index</I> ?<I>option</I> <I>value</I>?
+</I></B>
+<DD> Insert a new page in the notebook before the page specified by <I>index</I>.
+A new child site <B>frame</B> is created. See the <B>add</B> command for
+valid options. Returns the child site pathName.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>next</B>
+</I></B>
+<DD> Advances the selected page to the next page (order is determined by insertion
+order). If the currently selected page is the last page in the notebook,
+the selection wraps around to the first page in the notebook.
+<UL>
+For notebooks with auto set to true the current page's child site is
+unpacked from the notebook's child site frame. Then the next page's child
+site is packed into the notebooks child site frame. The Tcl command given
+with the command option will be invoked between these two operations.
+</UL>
+<UL>
+For notebooks with auto set to false the Tcl command given with the
+command option will be invoked.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>pagecget</B> <I>index</I> ?<I>option</I>?
+</I></B>
+<DD> Returns the current value of the configuration option given by <I>option</I>
+for the page specified by <I>index</I>. The valid available options are the
+same as available to the <B>add</B> command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>pageconfigure</B> <I>index</I> ?<I>option</I>? ?<I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> This command is similar to the configure command, except that it applies to
+the options for an individual page, whereas configure applies to the options
+for the notebook. Options may have any of the values accepted by the add
+widget command. If options are specified, options are modified as indicated
+in the command and the command returns an empty string. If no options are
+specified, returns a list describing the current options for
+page <I>index</I> (see <B>Tk_ConfigureInfo</B> for information on the
+format of this list).
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>prev</B>
+</I></B>
+<DD> Moves the selected page to the previous page (order is determined by
+insertion order). If the currently selected page is the first page in the
+notebook, the selection wraps around to the last page in the notebook.
+<UL>
+For notebooks with <B>auto</B> set to <B>true</B> the current page's child
+site is unpacked from the notebook's child site frame. Then the previous
+page's child site is packed into the notebooks child site frame. The Tcl
+command given with the command option will be invoked between these two
+operations.
+</UL>
+<UL>
+For notebooks with <B>auto</B> set to <B>false</B> the Tcl command given with
+the command option will be invoked.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>select</B> <I>index</I>
+</I></B>
+<DD> Selects the page specified by <I>index</I> as the currently selected page.
+<UL>
+For notebooks with <B>auto</B> set to <B>true</B> the current page's child
+site is unpacked from the notebook's child site frame. Then the index page's
+child site is packed into the notebooks child site frame. The Tcl command
+given with the command option will be invoked between these two operations.
+</UL>
+<UL>
+For notebooks with <B>auto</B> set to <B>false</B> the Tcl command given with
+the command option will be invoked.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B>
+</I></B>
+<DD> Returns the currently selected page. This command is for compatibility
+with the scrollbar widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B> <I>index</I>
+</I></B>
+<DD> Selects the page specified by <I>index</I> as the currently selected page.
+This command is for compatibility with the scrollbar widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B> <I>moveto</I> <I>fraction</I>
+</I></B>
+<DD> Uses the fraction value to determine the corresponding page to move to.
+This command is for compatibility with the scrollbar widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B> <I>scroll</I> <I>num</I> <I>what</I>
+</I></B>
+<DD> Uses the <I>num</I> value to determine how many pages to move forward or
+backward (num can be negative or positive). The <I>what</I> argument is
+ignored. This command is for compatibility with the scrollbar widget.
+
+</DL>
+</pre><H2>EXAMPLE</H2>
+<P>
+Following is an example that creates a notebook with two pages. In this example, we use a scrollbar widget to control the notebook widget.
+<table cellpadding=5>
+<td valign=top>
+<UL><br>
+the<br>
+pack<br>
+-width<br>
+pack<br>
+\\<br>
+-expand<br>
+left<br>
+\\<br>
+#<br>
+to<br>
+#<br>
+"Page<br>
+add<br>
+.nb<br>
+Two"<br>
+Get<br>
+frames<br>
+pages.<br>
+childsite<br>
+[.nb<br>
+</UL><br>
+buttons<br>
+of<br>
+$page1CS.b<br>
+pack<br>
+-text<br>
+$page2CS.b<br>
+Select<br>
+of<br>
+select<br>
+#<br>
+and<br>
+#<br>
+together,<br>
+scrollbar<br>
+".nb<br>
+-scrollcommand<br>
+.scroll<br>
+yes<br>
+</td>
+<td valign=top>
+</UL><br>
+notebook<br>
+it.<br>
+100<br>
+.nb<br>
+-fill<br>
+yes<br>
+\\<br>
+-pady<br>
+Add<br>
+the<br>
+"Page<br>
+Two",<br>
+-label<br>
+add<br>
+</UL><br>
+the<br>
+of<br>
+set<br>
+0]<br>
+childsite<br>
+<UL><br>
+on<br>
+the<br>
+-text<br>
+$page1CS.b<br>
+"Button<br>
+</UL><br>
+the<br>
+the<br>
+0<br>
+Create<br>
+associate<br>
+and<br>
+then<br>
+ScrollBar<br>
+view"<br>
+".scroll<br>
+-fill<br>
+-pady<br>
+</td>
+<td valign=top>
+#<br>
+widget<br>
+notebook<br>
+-height<br>
+-anchor<br>
+both<br>
+\\<br>
+-padx<br>
+10<br>
+two<br>
+notebook,<br>
+One"<br>
+respectively.<br>
+"Page<br>
+-label<br>
+<UL><br>
+child<br>
+these<br>
+page1CS<br>
+set<br>
+"Page<br>
+#<br>
+each<br>
+notebook<br>
+"Button<br>
+button<br>
+Two"<br>
+<UL><br>
+first<br>
+notebook<br>
+</UL><br>
+the<br>
+teh<br>
+the<br>
+pack<br>
+.scroll<br>
+.nb<br>
+set"<br>
+y<br>
+10<br>
+</td>
+<td valign=top>
+Create<br>
+and<br>
+.nb<br>
+100<br>
+nw<br>
+\\<br>
+-side<br>
+10<br>
+<UL><br>
+pages<br>
+labelled<br>
+and<br>
+.nb<br>
+One"<br>
+"Page<br>
+#<br>
+site<br>
+two<br>
+[.nb<br>
+page2CS<br>
+Two"]<br>
+Create<br>
+page<br>
+button<br>
+One"<br>
+$page2CS.b<br>
+pack<br>
+#<br>
+page<br>
+.nb<br>
+<UL><br>
+scrollbar<br>
+scrollbar<br>
+notebook<br>
+the<br>
+-command<br>
+configure<br>
+pack<br>
+-expand<br>
+</UL><br>
+</td>
+</table>
+</pre><H2>AUTHOR</H2>
+Bill W. Scott
+</pre><H2>KEYWORDS</H2>
+notebook page
diff --git a/itcl/iwidgets3.0.0/demos/html/optionmenu.n.html b/itcl/iwidgets3.0.0/demos/html/optionmenu.n.html
index 606a8825ed5..10d35114245 100644
--- a/itcl/iwidgets3.0.0/demos/html/optionmenu.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/optionmenu.n.html
@@ -1,303 +1,316 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - optionmenu</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - optionmenu</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- optionmenu - Create and manipulate a option menu widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>optionmenu</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- optionmenu
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>activeBorderWidthactiveForegroundbackground</STRONG>
- <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>disabledForegroundfont</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessrelief</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "LabeledWidget" manual entry for details on the
- inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>clickTime</STRONG>
- Class: <STRONG>ClickTime</STRONG>
- Command-Line Switch: <STRONG>-clicktime</STRONG>
-
- Interval time, in msec, used to determine that a single
- mouse click has occurred. Used to post menu on a
- "quick" mouse click. <STRONG>Note</STRONG>: changing this value may
- cause the sigle-click functionality to not work prop-
- erly. The default is 150 msec.
-
- Name: <STRONG>command</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-command</STRONG>
-
- Specifies a Tcl command procedure to be evaluated fol-
- lowing a change in the current option menu selection.
-
- Name: <STRONG>cyclicOn</STRONG>
- Class: <STRONG>CyclicOn</STRONG>
- Command-Line Switch: <STRONG>-cyclicon</STRONG>
-
- Turns on/off the 3rd mouse button capability. The value
- may be specified in any of the forms acceptable to
- <STRONG>Tcl_GetBoolean</STRONG>. This feature allows the right mouse
- button to cycle through the popup menu list without
- poping it up. The right mouse button cycles through the
- menu in reverse order. The default is true.
-
- Name: <STRONG>items</STRONG>
- Class: <STRONG>Items</STRONG>
- Command-Line Switch: <STRONG>-items</STRONG>
-
- Sepcifies the list of items to be displayed in the
- menu.
-
- Name: <STRONG>popupCursor</STRONG>
- Class: <STRONG>Cursor</STRONG>
- Command-Line Switch: <STRONG>-popupcursor</STRONG>
-
- Specifies the mouse cursor to be used for the popup
- menu. The value may have any of the forms acceptable
- to <STRONG>Tk_GetCursor</STRONG>.
-
- Name: <STRONG>state</STRONG>
- Class: <STRONG>State</STRONG>
- Command-Line Switch: <STRONG>-state</STRONG>
-
- Specified one of two states for the optionmenu: <STRONG>normal</STRONG>,
- or <STRONG>disabled</STRONG>. If the optionmenu is disabled, then
- option menu selection is ignored.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies a fixed size for the menu button label in any
- of the forms acceptable to Tk_GetPixels. If the text
- is too small to fit in the label, the text is clipped.
- Note: Normally, when a new list is created, or new
- items are added to an existing list, the menu button
- label is resized automatically. Setting this option
- overrides that functionality.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>optionmenu</STRONG> command creates an option menu widget with
- options to manage it. An option menu displays a frame con-
- taining a label and a button. A pop-up menu will allow for
- the value of the button to change.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>optionmenu</STRONG> command creates a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- Many of the widget commands for an optionmenu take as one
- argument an indicator of which entry of the option menu to
- operate on. These indicators are called <EM>index</EM>es and may be
- specified in any of the following forms:
-
- <EM>number</EM> Specifies the entry numerically, where 0
- corresponds to the top-most entry of the option
- menu, 1 to the entry below it, and so on.
-
- <STRONG>end</STRONG> Indicates the bottommost entry in the menu. If
- there are no entries in the menu then zero is
- returned.
-
- <STRONG>select</STRONG> Returns the numerical index of the currently
- selected option menu entry. If no entries exist
- in the menu, then -1 is returned.
-
- <EM>pattern</EM> If the index doesn't satisfy one of the above
- forms then this form is used. <EM>Pattern</EM> is
- pattern-matched against the label of each entry
- in the option menu, in order from the top down,
- until a matching entry is found. The rules of
- <STRONG>Tcl_StringMatch</STRONG> are used.
-
- The following widget commands are possible for optionmenu
- widgets:
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>optionmenu</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>optionmenu</STRONG> command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>first</EM> ?<EM>last</EM>?
- Delete all of the option menu entries between <EM>first</EM> and
- <EM>last</EM> inclusive. If <EM>last</EM> is omitted then it defaults to
- <EM>first</EM>.
-
- <EM>pathName</EM> <STRONG>disable</STRONG> <EM>index</EM>
- Disable the option menu entry specified by <EM>index</EM>. Disa-
- bling a menu item will prevent the user from being able
- to select this item from the menu. This only effects
- the state of the item in the menu, in other words,
- should the item be the currently selected item, the
- programmer is responsible for determining this condi-
- tion and taking appropriate action.
-
- <EM>pathName</EM> <STRONG>enable</STRONG> <EM>index</EM>
- Enable the option menu entry specified by <EM>index</EM>. Ena-
- bling a menu item allows the user to select this item
- from the menu.
-
- <EM>pathName</EM> <STRONG>get</STRONG>
- Returns the currently selected option menu item.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the numerical index corresponding to <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>index</EM> <EM>string</EM> ?<EM>string</EM>?
- Insert an item, or list of items, into the menu at
- location <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>select</STRONG> <EM>index</EM>
- Select an item from the option menu to be displayed as
- the currently selected item.
-
- <EM>pathName</EM> <STRONG>sort</STRONG> <EM>mode</EM>
- Sort the current menu in either <STRONG>ascending</STRONG>, or <STRONG>descend-</STRONG>
- <STRONG>ing</STRONG> order. The values <STRONG>increasing</STRONG>, or <STRONG>decreasing</STRONG> are
- also accepted.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>menuBtn</STRONG>
- Class: <STRONG>Frame</STRONG>
-
- The menuBtn component is the option menu button which
- displays the current choice from the popup menu. See
- the "frame" widget manual entry for details on the
- menuBtn component item.
-
- Name: <STRONG>menuLabel</STRONG>
- Class: <STRONG>Label</STRONG>
-
- The menuLabel component is the label whose text is the
- currently selected choice from the popup menu. See the
- "label" widget manual entry for details on the menuLa-
- bel component item.
-
- Name: <STRONG>popupMenu</STRONG>
- Class: <STRONG>Menu</STRONG>
-
- The popupMenu component is menu displayed upon selec-
- tion of the menu button. The menu contains the choices
- for the option menu. See the "menu" widget manual
- entry for details on the popupMenu component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- optionmenu .om -labelmargin 5 \
- -labelon true -labelpos w -labeltext "Operating System :" \
- -items {Unix VMS Linux OS/2 {Windows NT} DOS}
-
- .om insert end CPM {MS DOS} HP/UX
- .om sort ascending
- .om select Linux
-
- pack .om -padx 10 -pady 10
-
-
-
-</PRE>
-<H2>ACKNOWLEDGEMENTS:</H2><PRE>
- Michael J. McLennan
-
- Borrowed some ideas (next &amp; previous) from OptionButton
- class.
-
- Steven B. Jaggers
-
- Provided an initial prototype in [incr Tcl].
-
- Bret Schuhmacher
-
- Helped with popup menu functionality.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Alfredo Jahn
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- optionmenu, widget
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>optionmenu - Create and manipulate a option menu widget</TITLE>
+<H1>optionmenu - Create and manipulate a option menu widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>optionmenu<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- optionmenu
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>borderWidth</B><br>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>activeBorderWidth</B><br>
+<B>cursor</B><br>
+<B>highlightColor</B><br>
+</td>
+<td valign=top>
+<B>activeForeground</B><br>
+<B>disabledForeground</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>font</B><br>
+<B>relief</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the "LabeledWidget" manual entry for details on the inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>clickTime</B>
+Class: <B>ClickTime</B>
+Command-Line Switch: <B>-clicktime</B>
+</pre>
+<UL>
+Interval time, in msec, used to determine that a single mouse
+click has occurred. Used to post menu on a "quick" mouse click.
+<B>Note</B>: changing this value may cause the sigle-click
+functionality to not work properly. The default is 150 msec.
+</UL>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+</pre>
+<UL>
+Specifies a Tcl command procedure to be evaluated following a change in
+the current option menu selection.
+</UL>
+<P>
+<pre>
+Name: <B>cyclicOn</B>
+Class: <B>CyclicOn</B>
+Command-Line Switch: <B>-cyclicon</B>
+</pre>
+<UL>
+Turns on/off the 3rd mouse button capability. The value may be specified
+in any of the forms acceptable to <B>Tcl_GetBoolean</B>. This feature
+allows the right mouse button to cycle through the popup
+menu list without poping it up. The right mouse button cycles through
+the menu in reverse order. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>popupCursor</B>
+Class: <B>Cursor</B>
+Command-Line Switch: <B>-popupcursor</B>
+</pre>
+<UL>
+Specifies the mouse cursor to be used for the popup menu. The value may
+have any of the forms acceptable to <B>Tk_GetCursor</B>.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specified one of two states for the optionmenu: <B>normal</B>, or
+<B>disabled</B>. If the optionmenu is disabled, then option menu
+selection is ignored.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies a fixed size for the menu button label in any of the forms
+acceptable to \Tk_GetPixels</B></I>. If the text
+is too small to fit in the label, the text is clipped.
+Note: Normally, when a new list is created, or new items are
+added to an existing list, the menu button label is resized
+automatically. Setting this option overrides that functionality.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>optionmenu</B> command creates an option menu widget with options
+to manage it. An option menu displays a frame containing a label and a button.
+A pop-up menu will allow for the value of the button to change.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>optionmenu</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for an optionmenu take as one argument an
+indicator of which entry of the option menu to operate on. These
+indicators are called <I>index</I>es and may be specified in
+any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the entry numerically, where 0 corresponds
+to the top-most entry of the option menu, 1 to the entry below it, and
+so on.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Indicates the bottommost entry in the menu. If there are no
+entries in the menu then zero is returned.
+</DL>
+<DL>
+<DT> <B>select</B>
+</I></B>
+<DD> Returns the numerical index of the currently selected option menu entry.
+If no entries exist in the menu, then -1 is returned.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy one of the above forms then this
+form is used. <I>Pattern</I> is pattern-matched against the label of
+each entry in the option menu, in order from the top down, until a
+matching entry is found. The rules of <B>Tcl_StringMatch</B>
+are used.
+</DL>
+<P>
+The following widget commands are possible for optionmenu widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>optionmenu</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>optionmenu</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>delete <I>first</I> ?<I>last</I>?
+</I></B>
+<DD> Delete all of the option menu entries between <I>first</I> and
+<I>last</I> inclusive. If <I>last</I> is omitted then it defaults
+to <I>first</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>disable <I>index</I>
+</I></B>
+<DD> Disable the option menu entry specified by <I>index</I>.
+Disabling a menu item will prevent the user from being able to select
+this item from the menu. This only effects the state of the item
+in the menu, in other words, should the item be the currently
+selected item, the programmer is responsible for determining this condition
+and taking appropriate action.
+</DL>
+<DL>
+<DT> <I>pathName <B>enable <I>index</I>
+</I></B>
+<DD> Enable the option menu entry specified by <I>index</I>.
+Enabling a menu item allows the user to select this item from the menu.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B> ?<I>first</I>? ?<I>last</I>?
+</I></B>
+<DD> If no arguments are specified, this operation returns the currently
+selected option menu item. Otherwise, it returns the name of the
+option at index <I>first</I>, or a range of options between <I>first</I>
+and <I>last</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>index <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>insert <I>index string</I> ?<I>string</I>?
+</I></B>
+<DD> Insert an item, or list of items, into the menu at location <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>select <I>index</I>
+</I></B>
+<DD> Select an item from the option menu to be displayed as the currently
+selected item.
+</DL>
+<DL>
+<DT> <I>pathName <B>sort <I>mode</I>
+</I></B>
+<DD> Sort the current menu in either <B>ascending</B>, or <B>descending</B> order.
+The values <B>increasing</B>, or <B>decreasing</B> are also accepted.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>menuBtn</B>
+Class: <B>Menubutton</B>
+</pre>
+<UL>
+The menuBtn component is the option menu button which displays the current
+choice from the popup menu. See the "menubutton" widget manual entry
+for details on the menuBtn component item.
+</UL>
+<P>
+<pre>
+Name: <B>popupMenu</B>
+Class: <B>Menu</B>
+</pre>
+<UL>
+The popupMenu component is menu displayed upon selection of the menu button.
+The menu contains the choices for the option menu. See the "menu" widget
+manual entry for details on the popupMenu component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ optionmenu .om -labelmargin 5 \\
+ -labelon true -labelpos w -labeltext "Operating System :"
+
+ .om insert end Unix VMS Linux OS/2 {Windows NT} DOS
+ .om sort ascending
+ .om select Linux
+
+ pack .om -padx 10 -pady 10
+</pre>
+</pre><H2>ACKNOWLEDGEMENTS:</H2>
+Michael J. McLennan
+<UL>
+Borrowed some ideas (next &amp; previous) from OptionButton class.
+</UL>
+<P>
+Steven B. Jaggers
+<UL>
+Provided an initial prototype in [incr Tcl].
+</UL>
+<P>
+Bret Schuhmacher
+<UL>
+Helped with popup menu functionality.
+</UL>
+<P>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:ajahn@spd.dsccc.com">Alfredo Jahn</A>
+</pre><H2>KEYWORDS</H2>
+optionmenu, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/panedwindow.n.html b/itcl/iwidgets3.0.0/demos/html/panedwindow.n.html
index 07c9e6dff57..d9835458c82 100644
--- a/itcl/iwidgets3.0.0/demos/html/panedwindow.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/panedwindow.n.html
@@ -1,353 +1,342 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - panedwindow</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - panedwindow</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- panedwindow - Create and manipulate a paned window widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>panedwindow</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- panedwindow
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the overall height of the paned window in any
- of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default
- is 10 pixels.
-
- Name: <STRONG>orient</STRONG>
- Class: <STRONG>Orient</STRONG>
- Command-Line Switch: <STRONG>-orient</STRONG>
-
- Specifies the orientation of the separators: <STRONG>vertical</STRONG>
- or <STRONG>horizontal</STRONG>. The default is horizontal.
-
- Name: <STRONG>sashBorderWidth</STRONG>
- Class: <STRONG>BorderWidth</STRONG>
- Command-Line Switch: <STRONG>-sashborderwidth</STRONG>
-
- Specifies a value indicating the width of the 3-D
- border to draw around the outside of the sash in any of
- the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default is 2
- pixels.
-
- Name: <STRONG>sashCursor</STRONG>
- Class: <STRONG>Cursor</STRONG>
- Command-Line Switch: <STRONG>-sashcursor</STRONG>
-
- Specifies the type of cursor to be displayed in the
- sash. The default is crosshair.
-
- Name: <STRONG>sashHeight</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-sashheight</STRONG>
- Specifies the height of the sash in any of the forms
- acceptable to <STRONG>Tk_GetPixels</STRONG>. The default is 10 pixels.
-
- Name: <STRONG>sashIndent</STRONG>
- Class: <STRONG>SashIndent</STRONG>
- Command-Line Switch <STRONG>sashindent</STRONG>
-
- Specifies the placement of the sash along the panes in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. A posi-
- tive value causes the sash to be offset from the near
- (left/top) side of the pane, and a negative value
- causes the sash to be offset from the far
- (right/bottom) side. If the offset is greater than the
- width, then the sash is placed flush against the side.
- The default is -10 pixels.
-
- Name: <STRONG>sashWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-sashwidth</STRONG>
-
- Specifies the width of the sash in any of the forms
- acceptable to <STRONG>Tk_GetPixels</STRONG>. The default is 10 pixels.
-
- Name: <STRONG>thickness</STRONG>
- Class: <STRONG>Thickness</STRONG>
- Command-Line Switch: <STRONG>-thickness</STRONG>
-
- Specifies the thickness of the separators in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default is 3
- pixels.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the overall width of the paned window in any
- of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default
- is 10 pixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>panedwindow</STRONG> command creates a multiple paned window
- widget capable of orienting the panes either vertically or
- horizontally. Each pane is itself a frame acting as a child
- site for other widgets. The border separating each pane
- contains a sash which allows user positioning of the panes
- relative to one another.
-
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>panedwindow</STRONG> command creates a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- Many of the widget commands for the <STRONG>panedwindow</STRONG> take as one
- argument an indicator of which pane of the paned window to
- operate on. These indicators are called <EM>indexes</EM> and allow
- reference and manipulation of panes regardless of their
- current map state. Paned window indexes may be specified in
- any of the following forms:
-
- <EM>number</EM> Specifies the pane numerically, where 0
- corresponds to the nearest (top/left-most) pane
- of the paned window.
-
- <STRONG>end</STRONG> Indicates the farthest (bottom/right-most) pane
- of the paned window.
-
- <EM>pattern</EM> If the index doesn't satisfy one of the above
- forms then this form is used. <EM>Pattern</EM> is
- pattern-matched against the tag of each pane in
- the panedwindow, in order from left/top to
- right/left, until a matching entry is found.
- The rules of <STRONG>Tcl_StringMatch</STRONG> are used.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>add</STRONG> <EM>tag</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM>?
- Adds a new pane to the paned window on the far side
- (right/bottom). The following options may be speci-
- fied:
-
- <STRONG>-margin</STRONG> <EM>value</EM>
- Specifies the border distance between the pane and
- pane contents is any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. The default is 8 pixels.
-
- <STRONG>-minimum</STRONG> <EM>value</EM>
- Specifies the minimum size that a pane's contents
- may reach not inclusive of twice the margin in any
- of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 10 pixels.
-
- The <STRONG>add</STRONG> method returns the path name of the pane.
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>panedwindow</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG> ?<EM>index</EM>?
- Returns a list of the child site path names or a
- specific child site given an index. The list is con-
- structed from the near side (left/top) to the far side
- (right/bottom).
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>panedwindow</STRONG> command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>index</EM>
- Deletes a specified pane given an <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>fraction</STRONG> <EM>percentage</EM> <EM>percentage</EM> ?<EM>percentage</EM> <EM>percentage</EM>
- Sets the visible percentage of the panes. Specifies a
- set of percentages which are applied to the visible
- panes from the near side (left/top). The number of
- percentages must be equal to the current number of
- visible (mapped) panes and add up to 100.
-
- <EM>pathName</EM> <STRONG>hide</STRONG> <EM>index</EM>
- Changes the visiblity of the specified pane, allowing a
- previously displayed pane to be visually removed rather
- than deleted.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the numerical index corresponding to index.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>index</EM> <EM>tag</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Same as the <STRONG>add</STRONG> command except that it inserts the new
- pane just before the one given by <EM>index</EM>, instead of
- appending to the end of the panedwindow. The <EM>option</EM>,
- and <EM>value</EM> arguments have the same interpretation as for
- the <STRONG>add</STRONG> widget command.
-
- <EM>pathName</EM> <STRONG>paneconfigure</STRONG> <EM>index</EM> ?<EM>options</EM>?
- This command is similar to the <STRONG>configure</STRONG> command,
- except that it applies to the options for an individual
- pane, whereas <STRONG>configure</STRONG> applies to the options for the
- paned window as a whole. <EM>Options</EM> may have any of the
- values accepted by the <STRONG>add</STRONG> widget command. If <EM>options</EM>
- are specified, options are modified as indicated in the
- command and the command returns an empty string. If no
- <EM>options</EM> are specified, returns a list describing the
- current options for entry <EM>index</EM> (see <STRONG>Tk_ConfigureInfo</STRONG>
- for information on the format of this list).
-
- <EM>pathName</EM> <STRONG>reset</STRONG>
- Redisplays the pane window using default percentages.
-
- <EM>pathName</EM> <STRONG>show</STRONG> <EM>index</EM>
- Changes the visiblity of the specified pane, allowing a
- previously hidden pane to be displayed.
-
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Dynamic changing of the margin and or minimum options
- to values which make the current configuration invalid
- will block subsequent sash movement until the fractions
- are modified via the fraction method. For example a
- panedwindow is created with three panes and the minimum
- and margin options are at their default settings. Next
- the user moves the sashes to compact the panes to one
- side. Now, if the minimum is increased on the most
- compressed pane via the paneconfigure method to a large
- enough value, then sash movement is blocked until the
- fractions are adjusted. This situation is unusual and
- under normal operation of the panedwindow, this problem
- will never occur.
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- panedwindow .pw -width 300 -height 300
- .pw add top
- .pw add middle -margin 10
- .pw add bottom -margin 10 -minimum 10
-
- pack .pw -fill both -expand yes
-
- foreach pane [.pw childSite] {
- button $pane.b -text $pane -relief raised -borderwidth 2
- pack $pane.b -fill both -expand yes
- }
-
- .pw fraction 50 30 20
- .pw paneconfigure 0 -minimum 20
- .pw paneconfigure bottom -margin 15
-
-
-
-</PRE>
-<H2>ACKNOWLEDGEMENTS:</H2><PRE>
- Jay Schmidgall
-
- 1994 - Base logic posted to comp.lang.tcl
-
- Joe Hidebrand &lt;hildjj@fuentez.com&gt;
-
- 07/25/94 - Posted first multipane version to
- comp.lang.tcl
-
- 07/28/94 - Added support for vertical panes
-
- Ken Copeland &lt;ken@hilco.com&gt;
-
- 09/28/95 - Smoothed out the sash movement and added
- squeezable panes.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- panedwindow, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>panedwindow - Create and manipulate a paned window widget</TITLE>
+<H1>panedwindow - Create and manipulate a paned window widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>panedwindow<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- panedwindow
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the overall height of the paned window in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default is 10 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>orient</B>
+Class: <B>Orient</B>
+Command-Line Switch: <B>-orient</B>
+</pre>
+<UL>
+Specifies the orientation of the separators: <B>vertical</B> or
+<B>horizontal</B>. The default is horizontal.
+</UL>
+<P>
+<pre>
+Name: <B>sashBorderWidth</B>
+Class: <B>BorderWidth</B>
+Command-Line Switch: <B>-sashborderwidth</B>
+</pre>
+<UL>
+Specifies a value indicating the width of the 3-D border to draw
+around the outside of the sash in any of the forms acceptable to
+<B>Tk_GetPixels</B>. The default is 2 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>sashCursor</B>
+Class: <B>Cursor</B>
+Command-Line Switch: <B>-sashcursor</B>
+</pre>
+<UL>
+Specifies the type of cursor to be displayed in the sash. The default
+is crosshair.
+</UL>
+<P>
+<pre>
+Name: <B>sashHeight</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-sashheight</B>
+</pre>
+<UL>
+Specifies the height of the sash in any of the forms acceptable to
+<B>Tk_GetPixels</B>. The default is 10 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>sashIndent</B>
+Class: <B>SashIndent</B>
+Command-Line Switch <B>sashindent</B>
+</pre>
+<UL>
+Specifies the placement of the sash along the panes in any of the forms
+acceptable to <B>Tk_GetPixels</B>. A positive
+value causes the sash to be offset from the near (left/top) side
+of the pane, and a negative value causes the sash to be offset from
+the far (right/bottom) side. If the offset is greater than the
+width, then the sash is placed flush against the side. The
+default is -10 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>sashWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-sashwidth</B>
+</pre>
+<UL>
+Specifies the width of the sash in any of the forms acceptable to
+<B>Tk_GetPixels</B>. The default is 10 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>thickness</B>
+Class: <B>Thickness</B>
+Command-Line Switch: <B>-thickness</B>
+</pre>
+<UL>
+Specifies the thickness of the separators in any of the forms acceptable to
+<B>Tk_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the overall width of the paned window in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default is 10 pixels.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>panedwindow</B> command creates a multiple paned window widget
+capable of orienting the panes
+either vertically or horizontally. Each pane is itself a frame acting
+as a child site for other widgets. The border separating each pane
+contains a sash which allows user positioning of the panes relative to
+one another.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>panedwindow</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for the <B>panedwindow</B> take as one argument an
+indicator of which pane of the paned window to operate on. These indicators
+are called <I>indexes</I> and allow reference and manipulation of panes
+regardless of their current map state. Paned window indexes may be
+specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the pane numerically, where 0 corresponds to the nearest
+(top/left-most) pane of the paned window.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Indicates the farthest (bottom/right-most) pane of the paned window.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy one of the above forms then this
+form is used. <I>Pattern</I> is pattern-matched against the tag of
+each pane in the panedwindow, in order from left/top to right/left,
+until a matching entry is found. The rules of <B>Tcl_StringMatch</B>
+are used.
+
+</DL>
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>add</B> <I>tag</I> ?<I>option value option value</I>?
+</I></B>
+<DD> Adds a new pane to the paned window on the far side (right/bottom). The
+following options may be specified:
+</DL>
+<UL>
+<DL>
+<DT> <B>-margin</B> <I>value</I>
+</I></B>
+<DD> Specifies the border distance between the pane and pane contents is any of
+the forms acceptable to <B>Tk_GetPixels</B>. The default is 8 pixels.
+</DL>
+<DL>
+<DT> <B>-minimum</B> <I>value</I>
+</I></B>
+<DD> Specifies the minimum size that a pane's contents may reach not
+inclusive of twice the margin in any of the forms acceptable to
+<B>Tk_GetPixels</B>. The default is 10 pixels.
+
+The <B>add</B> method returns the path name of the pane.
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>panedwindow</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B> ?<I>index</I>?
+</I></B>
+<DD> Returns a list of the child site path names or a specific child site given
+an index. The list is constructed from the near side (left/top) to the far
+side (right/bottom).
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>panedwindow</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>delete</B> <I>index</I>
+</I></B>
+<DD> Deletes a specified pane given an <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>fraction</B> <I>percentage</I> <I>percentage</I> ?<I>percentage percentage ...</I>?
+</I></B>
+<DD> Sets the visible percentage of the panes. Specifies a set of
+percentages which are applied to the visible panes from the near side
+(left/top). The number of percentages must be equal to the current number
+of visible (mapped) panes and add up to 100.
+</DL>
+<DL>
+<DT> <I>pathName <B>hide</B> <I>index</I>
+</I></B>
+<DD> Changes the visiblity of the specified pane, allowing a previously displayed
+pane to be visually removed rather than deleted.
+</DL>
+<DL>
+<DT> <I>pathName <B>index</B> <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to index.
+</DL>
+<DL>
+<DT> <I>pathName <B>insert <I>index</I> <I>tag</I> ?<I>option value option value ...</I>?
+</I></B>
+<DD> Same as the <B>add</B> command except that it inserts the new
+pane just before the one given by <I>index</I>, instead of appending
+to the end of the panedwindow. The <I>option</I>, and <I>value</I>
+arguments have the same interpretation as for the <B>add</B> widget
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>paneconfigure</B> <I>index</I> ?<I>options</I>?
+</I></B>
+<DD> This command is similar to the <B>configure</B> command, except that
+it applies to the options for an individual pane, whereas <B>configure</B>
+applies to the options for the paned window as a whole.
+<I>Options</I> may have any of the values accepted by the <B>add</B>
+widget command. If <I>options</I> are specified, options are modified
+as indicated in the command and the command returns an empty string.
+If no <I>options</I> are specified, returns a list describing
+the current options for entry <I>index</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list).
+</DL>
+<DL>
+<DT> <I>pathName <B>reset</B>
+</I></B>
+<DD> Redisplays the pane window using default percentages.
+</DL>
+<DL>
+<DT> <I>pathName <B>show</B> <I>index</I>
+</I></B>
+<DD> Changes the visiblity of the specified pane, allowing a previously hidden
+pane to be displayed.
+
+</DL>
+</pre><H2>NOTES</H2>
+<UL>
+Dynamic changing of the margin and or minimum options to values which
+make the current configuration invalid will block subsequent sash
+movement until the fractions are modified via the fraction method.
+For example a panedwindow is created with three panes and the minimum
+and margin options are at their default settings. Next the user moves
+the sashes to compact the panes to one side. Now, if the minimum is
+increased on the most compressed pane via the paneconfigure method to
+a large enough value, then sash movement is blocked
+until the fractions are adjusted. This situation is unusual and under
+normal operation of the panedwindow, this problem will never occur.
+</UL>
+<P>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ panedwindow .pw -width 300 -height 300
+ .pw add top
+ .pw add middle -margin 10
+ .pw add bottom -margin 10 -minimum 10
+
+ pack .pw -fill both -expand yes
+
+ foreach pane [.pw childSite] {
+ button $pane.b -text $pane -relief raised -borderwidth 2
+ pack $pane.b -fill both -expand yes
+ }
+
+ .pw fraction 50 30 20
+ .pw paneconfigure 0 -minimum 20
+ .pw paneconfigure bottom -margin 15
+</pre>
+</pre><H2>ACKNOWLEDGEMENTS:</H2>
+<P>
+Jay Schmidgall
+<UL>
+1994 - Base logic posted to comp.lang.tcl
+</UL>
+<P>
+Joe Hidebrand &lt;hildjj@fuentez.com&gt;
+<UL>
+07/25/94 - Posted first multipane version to comp.lang.tcl
+</UL>
+<P>
+<UL>
+07/28/94 - Added support for vertical panes
+</UL>
+<P>
+Ken Copeland &lt;ken@hilco.com&gt;
+<UL>
+09/28/95 - Smoothed out the sash movement and added squeezable panes.
+</UL>
+<P>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+panedwindow, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/promptdialog.n.html b/itcl/iwidgets3.0.0/demos/html/promptdialog.n.html
index 05d4ea73ca6..6f0315be48e 100644
--- a/itcl/iwidgets3.0.0/demos/html/promptdialog.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/promptdialog.n.html
@@ -1,201 +1,313 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - promptdialog</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - promptdialog</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- promptdialog - Create and manipulate a prompt dialog widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>promptdialog</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- dialogshell &lt;- dialog &lt;- promptdialog
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>exportSelection</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessinsertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTimeinsertWidth</STRONG>
- <STRONG>justify</STRONG> <STRONG>relief</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG> <STRONG>textVariable</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>show</STRONG> <STRONG>state</STRONG> <STRONG>width</STRONG>
-
- See the "entry" widget manual entry for details on the above
- associated options.
-
- <STRONG>childSitePos</STRONG> <STRONG>fixed</STRONG> <STRONG>invalid</STRONG> <STRONG>textBackground</STRONG>
- <STRONG>textFont</STRONG> <STRONG>validate</STRONG>
-
- See the "entryfield" widget manual entry for details on the
- above associated options.
-
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- o<STRONG>labelPos</STRONG> <STRONG>labelText</STRONG>
-
- See the "labeledwidget" widget manual entry for details on
- the above associated options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>buttonBoxPadX</STRONG> <STRONG>buttonBoxPadY</STRONG> <STRONG>buttonBoxPos</STRONG> <STRONG>padX</STRONG>
- <STRONG>padY</STRONG> <STRONG>separator</STRONG> <STRONG>thickness</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited options.
-
- <STRONG>master</STRONG> <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" widget manual entry for details on the above
- inherited options.
-
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>promptdialog</STRONG> command creates a prompt dialog similar to
- the OSF/Motif standard prompt dialog composite widget. The
- promptdialog is derived from the dialog class and is com-
- posed of a EntryField with commands to manipulate the dialog
- buttons.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>promptdialog</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for promptdialog
- widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>delete</STRONG> <STRONG>get</STRONG> <STRONG>icursor</STRONG> <STRONG>index</STRONG>
- <STRONG>insert</STRONG> <STRONG>scan</STRONG> <STRONG>selection</STRONG> <STRONG>xview</STRONG>
-
- See the "entry" widget manual entry for details on the above
- associated methods.
-
- <STRONG>clear</STRONG>
-
- See the "entryfield" widget manual entry for details on the
- above associated methods.
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>add</STRONG> <STRONG>buttonconfigure</STRONG> <STRONG>defaulthide</STRONG>
- <STRONG>invoke</STRONG> <STRONG>show</STRONG>
-
- See the "buttonbox" widget manual entry for details on the
- above inherited methods.
-
- <STRONG>childsite</STRONG>
-
- See the "dialogshell" widget manual entry for details on the
- above inherited methods.
-
- <STRONG>activate</STRONG> <STRONG>center</STRONG> <STRONG>deactivate</STRONG>
-
- See the "shell" widget manual entry for details on the above
- inherited methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>promptdialog</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>promptdialog</STRONG> command.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>ef</STRONG>
- Class: <STRONG>Entryfield</STRONG>
-
- The ef component is the entry field for user input in
- the prompt dialog. See the "entryfield" widget manual
- entry for details on the ef component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- promptdialog .pd -modality global -title Password -labeltext Password: -show *
- .pd buttonconfigure OK -command {.pd deactivate 1}
- .pd hide Apply
- .pd buttonconfigure Cancel -command {.pd deactivate 0}
- .pd hide Help
-
- if {[.pd activate]} {
- puts "Password entered: [.pd get]"
- } else {
- puts "Password prompt cancelled"
- }
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- promptdialog, dialog, dialogshell, shell, widget
-</PRE>
-</BODY>
-</HTML>
+<TITLE>promptdialog - Create and manipulate a prompt dialog widget</TITLE>
+<H1>promptdialog - Create and manipulate a prompt dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>promptdialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- dialogshell &lt;- dialog &lt;- promptdialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectForeground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>show</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>invalid</B><br>
+</td>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>validate</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" widget manual entry for details on the above
+inherited options.
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>promptdialog</B> command creates a prompt dialog similar to the
+OSF/Motif standard prompt dialog composite widget. The promptdialog
+is derived from the dialog class and is composed of a EntryField
+with commands to manipulate the dialog buttons.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>promptdialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for promptdialog widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>delete</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>get</B><br>
+<B>scan</B><br>
+</td>
+<td valign=top>
+<B>icursor</B><br>
+<B>selection</B><br>
+</td>
+<td valign=top>
+<B>index</B><br>
+<B>xview</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the above
+associated methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>clear</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
+associated methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>promptdialog</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>promptdialog</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>prompt</B>
+Class: <B>Entryfield</B>
+</pre>
+<UL>
+The prompt component is the entry field for user input in the prompt
+dialog. See the "entryfield" widget manual entry for details on
+the prompt component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ option add *textBackground white
+
+ promptdialog .pd -modality global -title Password -labeltext Password: -show *
+ .pd hide Apply
+
+ if {[.pd activate]} {
+ puts "Password entered: [.pd get]"
+ } else {
+ puts "Password prompt cancelled"
+ }
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+promptdialog, dialog, dialogshell, shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/pushbutton.n.html b/itcl/iwidgets3.0.0/demos/html/pushbutton.n.html
index a1a9ceca405..6a5bd491fdd 100644
--- a/itcl/iwidgets3.0.0/demos/html/pushbutton.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/pushbutton.n.html
@@ -1,197 +1,175 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - pushbutton</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - pushbutton</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- pushbutton - Create and manipulate a push button widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>pushbutton</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- pushbutton
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>activeForegroundanchorbackground</STRONG>
- <STRONG>bitmap</STRONG> <STRONG>borderWidth</STRONG> <STRONG>command</STRONG> <STRONG>cursor</STRONG>
- <STRONG>disabledForeground</STRONG> <STRONG>font</STRONG> <STRONG>foregroundhighlightBackground</STRONG>
- <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG> <STRONG>imagejustify</STRONG>
- <STRONG>padX</STRONG> <STRONG>padY</STRONG> <STRONG>state</STRONG> <STRONG>text</STRONG>
- <STRONG>textVariable</STRONG> <STRONG>underline</STRONG> <STRONG>wrapLength</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>defaultRing</STRONG>
- Class: <STRONG>DefaultRing</STRONG>
- Command-Line Switch: <STRONG>-defaultring</STRONG>
-
- Boolean describing whether the button displays its
- default ring given in any of the forms acceptable to
- <STRONG>Tcl_GetBoolean</STRONG>. The default is false.
-
- Name: <STRONG>defaultRingPad</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-defaultringpad</STRONG>
-
- Specifies the amount of space to be allocated to the
- indentation of the default ring ring given in any of
- the forms acceptable to <STRONG>Tcl_GetPixels</STRONG>. The option has
- no effect if the defaultring option is set to false.
- The default is 2 pixels.
-
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the button inclusive of any
- default ring given in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. A value of zero lets the push button
- determine the height based on the requested height plus
- highlightring and defaultringpad.
-
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the button inclusive of any
- default ring given in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. A value of zero lets the push button
- determine the width based on the requested width plus
- highlightring and defaultringpad.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>pushbutton</STRONG> command creates a push button with an
- optional default ring used for default designation and
- traversal.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>pushbutton</STRONG> command creates a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for pushbutton
- widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>flash</STRONG> <STRONG>invoke</STRONG>
-
- See the "button" manual entry for details on the associated
- methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>pushbutton</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the
- corresponding sublist of the value returned if no
- <EM>option</EM> is specified). If one or more <EM>option</EM> - <EM>value</EM>
- pairs are specified, then the command modifies the
- given widget option(s) to have the given value(s); in
- this case the command returns an empty string. <EM>Option</EM>
- may have any of the values accepted by the <STRONG>pushbutton</STRONG>
- command.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>pushbutton</STRONG>
- Class: <STRONG>Button</STRONG>
-
- The pushbutton component is the button surrounded by
- the optional default ring. See the "button" widget
- manual entry for details on the pushbutton component
- item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- pushbutton .pb -text "Hello" -command {puts "Hello World"} -defaultring 1
- pack .pb -padx 10 -pady 10
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Bret A. Schuhmacher
-
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- pushbutton, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>pushbutton - Create and manipulate a push button widget</TITLE>
+<H1>pushbutton - Create and manipulate a push button widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>pushbutton<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- pushbutton
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>borderWidth</B><br>
+<B>font</B><br>
+<B>highlightThickness</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>activeForeground</B><br>
+<B>command</B><br>
+<B>foreground</B><br>
+<B>image</B><br>
+<B>text</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>cursor</B><br>
+<B>highlightBackground</B><br>
+<B>padX</B><br>
+<B>underline</B><br>
+</td>
+<td valign=top>
+<B>bitmap</B><br>
+<B>disabledForeground</B><br>
+<B>highlightColor</B><br>
+<B>padY</B><br>
+<B>wrapLength</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>defaultRing</B>
+Class: <B>DefaultRing</B>
+Command-Line Switch: <B>-defaultring</B>
+</pre>
+<UL>
+Boolean describing whether the button displays its default ring given in
+any of the forms acceptable to <B>Tcl_GetBoolean</B>. The default is false.
+</UL>
+<P>
+<pre>
+Name: <B>defaultRingPad</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-defaultringpad</B>
+</pre>
+<UL>
+Specifies the amount of space to be allocated to the indentation of the
+default ring ring given in any of the forms acceptable to <B>Tcl_GetPixels</B>.
+The option has no effect if the defaultring option is set to false. The
+default is 2 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the button inclusive of any default ring given in
+any of the forms acceptable to <B>Tk_GetPixels</B>. A value of zero lets
+the push button determine the height based on the requested height plus
+highlightring and defaultringpad.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the button inclusive of any default ring given in
+any of the forms acceptable to <B>Tk_GetPixels</B>. A value of zero lets
+the push button determine the width based on the requested width plus
+highlightring and defaultringpad.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>pushbutton</B> command creates a push button with an
+optional default ring used for default designation and traversal.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>pushbutton</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for pushbutton widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>flash</B><br>
+</td>
+<td valign=top>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> manual entry for details on the associated methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>pushbutton</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>pushbutton</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>pushbutton</B>
+Class: <B>Button</B>
+</pre>
+<UL>
+The pushbutton component is the button surrounded by the optional default ring.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/button.n.html"> "button" </A> widget manual entry for details on the pushbutton
+component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+pushbutton .pb -text "Hello" -command {puts "Hello World"} -defaultring 1
+pack .pb -padx 10 -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:bas@wn.com">Bret A. Schuhmacher</A>
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+pushbutton, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/radiobox.n.html b/itcl/iwidgets3.0.0/demos/html/radiobox.n.html
index 25dc0df9c38..f35d15380a5 100644
--- a/itcl/iwidgets3.0.0/demos/html/radiobox.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/radiobox.n.html
@@ -1,247 +1,211 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - radiobox</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - radiobox</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- radiobox - Create and manipulate a radiobox widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>radiobox</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- labeledwidget &lt;- radiobox
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG>
- <STRONG>relief</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>command</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-command</STRONG>
-
- Specifies a Tcl command procedure to be evaluated fol-
- lowing a change in the current radio box selection.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>radiobox</STRONG> command creates a radio button box widget capa-
- ble of adding, inserting, deleting, selecting, and configur-
- ing radiobuttons as well as obtaining the currently selected
- button.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>radiobox</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
- Many of the widget commands for the <STRONG>radiobox</STRONG> take as one
- argument an indicator of which radiobutton of the radiobox
- to operate on. These indicators are called <EM>indexes</EM> and
- allow reference and manipulation of radiobuttons. Radiobox
- indexes may be specified in any of the following forms:
-
- <EM>number</EM> Specifies the radiobutton numerically, where 0
- corresponds to the top radiobutton of the
- radiobox.
-
- <STRONG>end</STRONG> Indicates the last radiobutton of the radiobox.
-
- <EM>pattern</EM> If the index doesn't satisfy one of the above
- forms then this form is used. <EM>Pattern</EM> is
- pattern-matched against the tag of each
- radiobutton in the radiobox, in order from top
- to bottom, until a matching entry is found. The
- rules of <STRONG>Tcl_StringMatch</STRONG> are used.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>add</STRONG> <EM>tag</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM>?
- Adds a new radiobutton to the radiobuttond window on
- the bottom. The command takes additional options which
- are passed on to the radiobutton as construction argu-
- ments. These include the standard Tk radiobutton
- options. The tag is returned.
-
- <EM>pathName</EM> <STRONG>buttonconfigure</STRONG> <EM>index</EM> ?<EM>options</EM>?
- This command is similar to the <STRONG>configure</STRONG> command,
- except that it applies to the options for an individual
- radiobutton, whereas <STRONG>configure</STRONG>applies to the options
- for the radiobox as a whole. <EM>Options</EM> may have any of
- the values accepted by the <STRONG>add</STRONG> widget command. If
- <EM>options</EM> are specified, options are modified as indi-
- cated in the command and the command returns an empty
- string. If no <EM>options</EM> are specified, returns a list
- describing the current options for entry <EM>index</EM> (see
- <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of this
- list).
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>radiobox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>radiobox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>index</EM>
- Deletes a specified radiobutton given an <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>deselect</STRONG> <EM>index</EM>
- Deselects a specified radiobutton given an <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>flash</STRONG> <EM>index</EM>
- Flashes a specified radiobutton given an <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>get</STRONG>
- Returns the tag of the currently selected radiobutton.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the numerical index corresponding to index.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>index</EM> <EM>tag</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Same as the <STRONG>add</STRONG> command except that it inserts the new
- radiobutton just before the one given by <EM>index</EM>, instead
- of appending to the end of the radiobox. The <EM>option</EM>,
- and <EM>value</EM> arguments have the same interpretation as for
- the <STRONG>add</STRONG> widget command.
-
- <EM>pathName</EM> <STRONG>select</STRONG> <EM>index</EM>
- Selects a specified radiobutton given an <EM>index</EM>.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- radiobox .rb -labeltext Fonts
- .rb add times -text Times
- .rb add helvetica -text Helvetica
- .rb add courier -text Courier
- .rb add symbol -text Symbol
- .rb select courier
-
- pack .rb -padx 10 -pady 10 -fill both -expand yes
-
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Michael J. McLennan
-
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- radiobox, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>radiobox - Create and manipulate a radiobox widget</TITLE>
+<H1>radiobox - Create and manipulate a radiobox widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>radiobox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- labeledframe &lt;- radiobox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>selectColor</B><br>
+</td>
+<td valign=top>
+<B>disabledForeground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+</table>
+<P>
+See the "labeledframe" class manual entry for details on the
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+</pre>
+<UL>
+Specifies a Tcl command procedure to be evaluated following a change in
+the current radio box selection.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>radiobox</B> command creates a radio button box widget
+capable of adding, inserting, deleting, selecting, and configuring
+radiobuttons as well as obtaining the currently selected button.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>radiobox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for the <B>radiobox</B> take as one argument an
+indicator of which radiobutton of the radiobox to operate on. These indicators
+are called <I>indexes</I> and allow reference and manipulation of radiobuttons.
+Radiobox indexes may be specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the radiobutton numerically, where 0 corresponds to the top
+radiobutton of the radiobox.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Indicates the last radiobutton of the radiobox.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy one of the above forms then this
+form is used. <I>Pattern</I> is pattern-matched against the tag of
+each radiobutton in the radiobox, in order from top to bottom,
+until a matching entry is found. The rules of <B>Tcl_StringMatch</B>
+are used.
+
+</DL>
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>add</B> <I>tag</I> ?<I>option value option value</I>?
+</I></B>
+<DD> Adds a new radiobutton to the radiobuttond window on the bottom. The command
+takes additional options which are passed on to the radiobutton as construction
+arguments. These include the standard Tk radiobutton options. The tag is
+returned.
+</DL>
+<DL>
+<DT> <I>pathName <B>buttonconfigure</B> <I>index</I> ?<I>options</I>?
+</I></B>
+<DD> This command is similar to the <B>configure</B> command, except that
+it applies to the options for an individual radiobutton,
+whereas <B>configure</B>applies to the options for the radiobox as a whole.
+<I>Options</I> may have any of the values accepted by the <B>add</B>
+widget command. If <I>options</I> are specified, options are modified
+as indicated in the command and the command returns an empty string.
+If no <I>options</I> are specified, returns a list describing
+the current options for entry <I>index</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list).
+</DL>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>radiobox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>radiobox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>delete</B> <I>index</I>
+</I></B>
+<DD> Deletes a specified radiobutton given an <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>deselect</B> <I>index</I>
+</I></B>
+<DD> Deselects a specified radiobutton given an <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>flash</B> <I>index</I>
+</I></B>
+<DD> Flashes a specified radiobutton given an <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B>
+</I></B>
+<DD> Returns the tag of the currently selected radiobutton.
+</DL>
+<DL>
+<DT> <I>pathName <B>index</B> <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to index.
+</DL>
+<DL>
+<DT> <I>pathName <B>insert <I>index</I> <I>tag</I> ?<I>option value option value ...</I>?
+</I></B>
+<DD> Same as the <B>add</B> command except that it inserts the new
+radiobutton just before the one given by <I>index</I>, instead of appending
+to the end of the radiobox. The <I>option</I>, and <I>value</I>
+arguments have the same interpretation as for the <B>add</B> widget
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>select</B> <I>index</I>
+</I></B>
+<DD> Selects a specified radiobutton given an <I>index</I>.
+
+</DL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ radiobox .rb -labeltext Fonts
+ .rb add times -text Times
+ .rb add helvetica -text Helvetica
+ .rb add courier -text Courier
+ .rb add symbol -text Symbol
+ .rb select courier
+
+ pack .rb -padx 10 -pady 10 -fill both -expand yes
+</pre>
+
+</pre><H2>AUTHOR</H2>
+Michael J. McLennan
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+radiobox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/scopedobject.n.html b/itcl/iwidgets3.0.0/demos/html/scopedobject.n.html
new file mode 100644
index 00000000000..a89effceaea
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/scopedobject.n.html
@@ -0,0 +1,96 @@
+<TITLE>scopedobject - Create and manipulate a scoped \[incr Tcl\] class object.</TITLE>
+<H1>scopedobject - Create and manipulate a scoped \[incr Tcl\] class object.</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>scopedobject<I> <I>objName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+None
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<pre>
+Name: <B>enterscopecommand:</B>
+Command-Line Switch: <B>-enterscopecommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to invoke when an object enters scope
+(i.e. when it is created..). The default is {}.
+</UL>
+<P>
+<pre>
+Name: <B>enterscopecommand:</B>
+Command-Line Switch: <B>-enterscopecommand</B>
+</pre>
+<UL>
+Specifies a Tcl command to invoke when an object exits scope
+(i.e. when it is deleted..). The default is {}.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>scopedobject</B> command creates a base class for defining
+Itcl classes which posses scoped behavior like Tcl variables.
+The objects are only accessible within the procedure in which
+they are instantiated and are deleted when the procedure returns.
+This class was designed to be a general purpose base class for
+supporting scoped incr Tcl classes. The options include the
+execute a Tcl script command when an object enters and exits its
+scope.
+</pre><H2>METHODS</H2>
+<P>
+The <B>scopedobject</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various operations on the object.
+It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for scopedobject objects:
+</pre><H2>OBJECT-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>scopedobject</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the object.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I>. If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given objects option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>scopedobject</B>
+command.
+
+</DL>
+</pre><H2>EXAMPLE</H2>
+<UL>
+The scopedobject was primarily meant to be a base class. The
+following is an example of usage without inheritance:
+</UL>
+<P>
+<pre>
+ proc scopedobject_demo {} {
+ scopedobject #auto \
+ -exitscopecommand {puts "enter scopedobject_demo"} \
+ -exitscopecommand {puts "exit scopedobject_demo"}
+ }
+
+ scopedobject_demo
+
+</pre>
+</pre><H2>AUTHOR</H2>
+John A. Tucker
+</pre><H2>KEYWORDS</H2>
+scopedobject, object
diff --git a/itcl/iwidgets3.0.0/demos/html/scrolledcanvas.n.html b/itcl/iwidgets3.0.0/demos/html/scrolledcanvas.n.html
index bf0da2c7f77..400bccb46ee 100644
--- a/itcl/iwidgets3.0.0/demos/html/scrolledcanvas.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/scrolledcanvas.n.html
@@ -1,306 +1,343 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - scrolledcanvas</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - scrolledcanvas</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- scrolledcanvas - Create and manipulate scrolled canvas widg-
- ets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>scrolledcanvas</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- scrolledcanvas
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>exportSelection</STRONG> <STRONG>font</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG>
- <STRONG>highlightThickness</STRONG> <STRONG>insertBorderWidthinsertOffTimeinsertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
- <STRONG>selectBackground</STRONG> <STRONG>selectBorderWidthselectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>closeEnough</STRONG> <STRONG>confine</STRONG> <STRONG>scrollRegion</STRONG> <STRONG>xScrollIncrement</STRONG>
- <STRONG>yScrollIncrement</STRONG>
-
- See the "canvas" widget manual entry for details on the
- above associated options.
-
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget manual entry for details on the
- above associated options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>autoMargin</STRONG>
- Class: <STRONG>AutoMargin</STRONG>
- Command-Line Switch: <STRONG>-automargin</STRONG>
-
- Specifies the autoresize extra margin to reserve. This
- option is only effective with autoresize turned on.
- The default is 10.
-
- Name: <STRONG>autoResize</STRONG>
- Class: <STRONG>AutoResize</STRONG>
- Command-Line Switch: <STRONG>-autoresize</STRONG>
-
- Automatically adjusts the scrolled region to be the
- bounding box covering all the items in the canvas fol-
- lowing the execution of any method which creates or
- destroys items. Thus, as new items are added, the
- scrollbars adjust accordingly.
-
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the scrolled canvas widget in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default height is 30 pixels.
-
- Name: <STRONG>hscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-hscrollmode</STRONG>
-
- Specifies the the display mode to be used for the hor-
- izontal scrollbar: <STRONG>static,</STRONG> <STRONG>dynamic,</STRONG> or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>sbWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-sbwidth</STRONG>
-
- Specifies the width of the scrollbar in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default width is
- 15 pixels..
-
- Name: <STRONG>scrollMargin</STRONG>
- Class: <STRONG>ScrollMargin</STRONG>
- Command-Line Switch: <STRONG>-scrollmargin</STRONG>
-
- Specifies the distance between the canvas and scrollbar
- in any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 3 pixels.
-
- Name: <STRONG>textBackground</STRONG>
- Class: <STRONG>Background</STRONG>
- Command-Line Switch <STRONG>-textbackground</STRONG>
-
- Specifies the background color for the canvas. This
- allows the background within the canvas to be different
- from the normal background color.
-
-
- Name: <STRONG>vscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-vscrollmode</STRONG>
-
- Specifies the the display mode to be used for the vert-
- ical scrollbar: <STRONG>static,</STRONG> <STRONG>dynamic,</STRONG> or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the scrolled canvas widget in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default height is 30 pixels.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>scrolledcanvas</STRONG> command creates a scrolled canvas with
- additional options to manage horizontal and vertical
- scrollbars. This includes options to control which
- scrollbars are displayed and the method, i.e. statically or
- dynamically.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>scrolledcanvas</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for scrolledcan-
- vas widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>addtag</STRONG> <STRONG>bbox</STRONG> <STRONG>bind</STRONG> <STRONG>canvasx</STRONG>
- <STRONG>canvasy</STRONG> <STRONG>coords</STRONG> <STRONG>create</STRONG> <STRONG>dchars</STRONG>
- <STRONG>delete</STRONG> <STRONG>dtag</STRONG> <STRONG>find</STRONG> <STRONG>focus</STRONG>
- <STRONG>gettags</STRONG> <STRONG>icursor</STRONG> <STRONG>index</STRONG> <STRONG>insert</STRONG>
- <STRONG>itemconfigure</STRONG> <STRONG>lower</STRONG> <STRONG>move</STRONG> <STRONG>postscript</STRONG>
- <STRONG>raise</STRONG> <STRONG>scale</STRONG> <STRONG>scan</STRONG> <STRONG>select</STRONG>
- <STRONG>type</STRONG> <STRONG>xview</STRONG> <STRONG>yview</STRONG>
-
- See the "canvas" manual entry for details on the associated
- methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>scrolledcanvas</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Returns the child site widget path name.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>scrolledcanvas</STRONG> command.
-
- <EM>pathName</EM> <STRONG>justify</STRONG> <EM>direction</EM>
- Justifies the canvas contents via the scroll bars in
- one of four directions: <STRONG>left</STRONG>, <STRONG>right</STRONG>, <STRONG>top</STRONG>, or <STRONG>bottom</STRONG>.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>scrCanvas</STRONG>
- Class: <STRONG>Canvas</STRONG>
-
- The scrCanvas component is the canvas widget. See the
- "canvas" widget manual entry for details on the scrCan-
- vas component item.
-
- Name: <STRONG>hSB</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The hSB component is the horizontal scroll bar. See
- the "ScrollBar" widget manual entry for details on the
- hSB component item.
-
- Name: <STRONG>vSB</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The vSB component is the vertical scroll bar. See the
- "ScrollBar" widget manual entry for details on the vSB
- component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- scrolledcanvas .sc
-
- .sc create rectangle 100 100 400 400 -fill red
- .sc create rectangle 300 300 600 600 -fill green
- .sc create rectangle 200 200 500 500 -fill blue
-
- pack .sc -padx 10 -pady 10 -fill both -expand yes
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- scrolledcanvas, canvas, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>scrolledcanvas - Create and manipulate scrolled canvas widgets</TITLE>
+<H1>scrolledcanvas - Create and manipulate scrolled canvas widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>scrolledcanvas<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Scrolledwidget &lt;- Scrolledcanvas
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>exportSelection</B><br>
+<B>highlightThickness</B><br>
+<B>insertWidth</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>font</B><br>
+<B>insertBorderWidth</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>foreground</B><br>
+<B>insertOffTime</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightColor</B><br>
+<B>insertOnTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>closeEnough</B><br>
+<B>yScrollIncrement</B><br>
+</td>
+<td valign=top>
+<B>confine</B><br>
+</td>
+<td valign=top>
+<B>scrollRegion</B><br>
+</td>
+<td valign=top>
+<B>xScrollIncrement</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/canvas.n.html"> "canvas" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>autoMargin</B>
+Class: <B>AutoMargin</B>
+Command-Line Switch: <B>-automargin</B>
+</pre>
+<UL>
+Specifies the autoresize extra margin to reserve. This option is only
+effective with autoresize turned on. The default is 10.
+</UL>
+<P>
+<pre>
+Name: <B>autoResize</B>
+Class: <B>AutoResize</B>
+Command-Line Switch: <B>-autoresize</B>
+</pre>
+<UL>
+Automatically adjusts the scrolled region to be the bounding
+box covering all the items in the canvas following the execution
+of any method which creates or destroys items. Thus, as new
+items are added, the scrollbars adjust accordingly.
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the scrolled canvas widget in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default height is 30 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>hscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-hscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the horizontal
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>sbWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-sbwidth</B>
+</pre>
+<UL>
+Specifies the width of the scrollbar in any of the forms acceptable
+to <B>Tk_GetPixels</B>. The default width is 15 pixels..
+</UL>
+<P>
+<pre>
+Name: <B>scrollMargin</B>
+Class: <B>ScrollMargin</B>
+Command-Line Switch: <B>-scrollmargin</B>
+</pre>
+<UL>
+Specifies the distance between the canvas and scrollbar in any of the
+forms acceptable to <B>Tk_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch <B>-textbackground</B>
+</pre>
+<UL>
+Specifies the background color for the canvas. This allows the background
+within the canvas to be different from the normal background color.
+</UL>
+<P>
+<pre>
+Name: <B>vscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-vscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the vertical
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the scrolled canvas widget in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default height is 30 pixels.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>scrolledcanvas</B> command creates
+a scrolled canvas with additional options to manage
+horizontal and vertical scrollbars. This includes options to control
+which scrollbars are displayed and the method, i.e. statically or
+dynamically.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>scrolledcanvas</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for scrolledcanvas widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>addtag</B><br>
+<B>canvasy<B><br>
+<B>delete</B><br>
+<B>gettags</B><br>
+<B>itemconfigure</B><br>
+<B>raise</B><br>
+<B>type</B><br>
+</td>
+<td valign=top>
+<B>bbox</B><br>
+<B>coords</B><br>
+<B>dtag</B><br>
+<B>icursor</B><br>
+<B>lower</B><br>
+<B>scale</B><br>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>bind</B><br>
+<B>create</B><br>
+<B>find</B><br>
+<B>index</B><br>
+<B>move</B><br>
+<B>scan</B><br>
+<B>yview</B><br>
+</td>
+<td valign=top>
+<B>canvasx</B><br>
+<B>dchars</B><br>
+<B>focus</B><br>
+<B>insert</B><br>
+<B>postscript</B><br>
+<B>select</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/canvas.n.html"> "canvas" </A> manual entry for details on the associated methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>scrolledcanvas</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the child site widget path name.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>scrolledcanvas</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>justify <I>direction</I>
+</I></B>
+<DD> Justifies the canvas contents via the scroll bars in one of four directions:
+<B>left</B>, <B>right</B>, <B>top</B>, or <B>bottom</B>.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>canvas</B>
+Class: <B>Canvas</B>
+</pre>
+<UL>
+The canvas component is the canvas widget. See the "canvas" widget
+manual entry for details on the canvas component item.
+</UL>
+<P>
+<pre>
+Name: <B>horizsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The horizsb component is the horizontal scroll bar. See the "ScrollBar"
+widget manual entry for details on the horizsb component item.
+</UL>
+<P>
+<pre>
+Name: <B>vertsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The vertsb component is the vertical scroll bar. See the "ScrollBar" widget
+manual entry for details on the vertsb component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ scrolledcanvas .sc
+
+ .sc create rectangle 100 100 400 400 -fill red
+ .sc create rectangle 300 300 600 600 -fill green
+ .sc create rectangle 200 200 500 500 -fill blue
+
+ pack .sc -padx 10 -pady 10 -fill both -expand yes
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+scrolledcanvas, canvas, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/scrolledframe.n.html b/itcl/iwidgets3.0.0/demos/html/scrolledframe.n.html
index e8dede3c4ec..4044adb67c0 100644
--- a/itcl/iwidgets3.0.0/demos/html/scrolledframe.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/scrolledframe.n.html
@@ -1,306 +1,261 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - scrolledframe</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - scrolledframe</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- scrolledframe - Create and manipulate scrolled frame widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>scrolledframe</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- scrolledframe
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>font</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG>
- <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG> <STRONG>selectBackground</STRONG>
- <STRONG>selectBorderWidth</STRONG> <STRONG>selectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" manual entry for details on the associ-
- ated options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>LabelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the scrolled frame widget in
- any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default height is 100 pixels.
-
- Name: <STRONG>hscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-hscrollmode</STRONG>
-
- Specifies the the display mode to be used for the hor-
- izontal scrollbar: <STRONG>static</STRONG>, <STRONG>dynamic</STRONG>, or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>sbWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-sbwidth</STRONG>
-
- Specifies the width of the scrollbar in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default width is
- 15 pixels.
-
- Name: <STRONG>scrollMargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-scrollmargin</STRONG>
-
- Specifies the distance between the frame and scrollbar
- in any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The
- default is 3 pixels.
-
- Name: <STRONG>vscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-vscrollmode</STRONG>
-
- Specifies the the display mode to be used for the vert-
- ical scrollbar: <STRONG>static</STRONG>, <STRONG>dynamic</STRONG>, or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the scrolled frame widget in any
- of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default
- height is 100 pixels.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>scrolledframe</STRONG> combines the functionallity of scrolling
- with that of a typical frame widget to implement a clipable
- viewing area whose visible region may be modified with the
- scroll bars. This enables the contruction of visually larger
- areas than which could normally be displayed, containing a
- heterogenous mix of other widgets. Options exist which allow
- full control over which scrollbars are displayed and the
- method, i.e. statically or dynamically. The frame itself may
- be accessed by the <STRONG>childsite</STRONG> method and then filled with
- other widget combinations.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
-
- The <STRONG>scrolledframe</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for scrolledframe
- widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>xview</STRONG> <STRONG>yview</STRONG>
-
- See the "canvas" manual entry for details on the associated
- methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>scrolledframe</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Return the path name of the child site.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>scrolledframe</STRONG> command.
-
- <EM>pathName</EM> <STRONG>justify</STRONG> <EM>direction</EM>
- Justifies the frame contents via the scroll bars in one
- of four directions: <STRONG>left</STRONG>, <STRONG>right</STRONG>, <STRONG>top</STRONG>, or <STRONG>bottom</STRONG>.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>canvasFrame</STRONG>
- Class: <STRONG>Frame</STRONG>
-
- The canvasFrame component provides relief for the
- scrCanvas component. See the "frame" widget manual
- entry for details on the canvasFrame component item.
-
- Name: <STRONG>scrCanvas</STRONG>
- Class: <STRONG>Canvas</STRONG>
-
- The scrCanvas component provides the scrolling region
- for the scrolled frame. See the "canvas" widget manual
- entry for details on the scrCanvas component item.
-
- Name: <STRONG>scrFrame</STRONG>
- Class: <STRONG>Frame</STRONG>
-
- The scrFrame component is internal to the scrCanvas
- component, providing a container for children of the
- scrolled frame. See the "frame" widget manual entry
- for details on the scrFrame component item.
-
- Name: <STRONG>hSB</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The hSB component is the horizontal scroll bar. See
- the "ScrollBar" widget manual entry for details on the
- hSB component item.
-
- Name: <STRONG>vSB</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The vSB component is the vertical scroll bar. See the
- "ScrollBar" widget manual entry for details on the vSB
- component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- scrolledframe .sf -width 150 -height 180 -labelon yes -labeltext scrolledframe
-
- set cs [.sf childsite]
- pack [button $cs.b1 -text Hello] -pady 10
- pack [button $cs.b2 -text World] -pady 10
- pack [button $cs.b3 -text "This is a test"] -pady 10
- pack [button $cs.b4 -text "This is a really big button"] -pady 10
- pack [button $cs.b5 -text "This is another really big button"] -pady 10
- pack [button $cs.b6 -text "This is the last really big button"] -pady 10
-
- pack .sf -expand yes -fill both -padx 10 -pady 10
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Sue Yockey
-
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- scrolledframe, frame, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>scrolledframe - Create and manipulate scrolled frame widgets</TITLE>
+<H1>scrolledframe - Create and manipulate scrolled frame widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>scrolledframe<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;-Scrolledwidget &lt;- Scrolledframe
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>font</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>selectForeground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> manual entry for details on the associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>LabelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the scrolled frame widget in any of the forms acceptable to <B>Tk_GetPixels</B>. The default height is 100 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>hscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-hscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the horizontal
+scrollbar: <B>static</B>, <B>dynamic</B>, or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>sbWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-sbwidth</B>
+</pre>
+<UL>
+Specifies the width of the scrollbar in any of the forms acceptable
+to <B>Tk_GetPixels</B>. The default width is 15 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>scrollMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-scrollmargin</B>
+</pre>
+<UL>
+Specifies the distance between the frame and scrollbar in any of the
+forms acceptable to <B>Tk_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>vscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-vscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the vertical
+scrollbar: <B>static</B>, <B>dynamic</B>, or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the scrolled frame widget in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default height is 100 pixels.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>scrolledframe</B> combines the functionallity of scrolling with that
+of a typical frame widget to implement a clipable viewing area whose visible
+region may be modified with the scroll bars. This enables the contruction
+of visually larger areas than which could normally be displayed, containing
+a heterogenous mix of other widgets. Options exist which allow full control
+over which scrollbars are displayed and the method, i.e. statically or
+dynamically. The frame itself may be accessed by the <B>childsite</B>
+method and then filled with other widget combinations.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>scrolledframe</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for scrolledframe widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>yview</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/canvas.n.html"> "canvas" </A> manual entry for details on the associated methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>scrolledframe</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Return the path name of the child site.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>scrolledframe</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>justify <I>direction</I>
+</I></B>
+<DD> Justifies the frame contents via the scroll bars in one of four directions:
+<B>left</B>, <B>right</B>, <B>top</B>, or <B>bottom</B>.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>horizsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The horizsb component is the horizontal scroll bar. See the "ScrollBar"
+widget manual entry for details on the horizsb component item.
+</UL>
+<P>
+<pre>
+Name: <B>vertsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The vertsb component is the vertical scroll bar. See the "ScrollBar" widget
+manual entry for details on the vertsb component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+scrolledframe .sf -width 150 -height 180 -labelon yes -labeltext scrolledframe
+
+set cs [.sf childsite]
+pack [button $cs.b1 -text Hello] -pady 10
+pack [button $cs.b2 -text World] -pady 10
+pack [button $cs.b3 -text "This is a test"] -pady 10
+pack [button $cs.b4 -text "This is a really big button"] -pady 10
+pack [button $cs.b5 -text "This is another really big button"] -pady 10
+pack [button $cs.b6 -text "This is the last really big button"] -pady 10
+
+pack .sf -expand yes -fill both -padx 10 -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+<DL>
+<DT> Mark L. Ulferts
+</DL>
+<DL>
+<DT> Sue Yockey
+</DL>
+</pre><H2>KEYWORDS</H2>
+scrolledframe, frame, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/scrolledhtml.n.html b/itcl/iwidgets3.0.0/demos/html/scrolledhtml.n.html
index 4b46b100f84..a915600f990 100644
--- a/itcl/iwidgets3.0.0/demos/html/scrolledhtml.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/scrolledhtml.n.html
@@ -1,415 +1,405 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - scrolledhtml</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - scrolledhtml</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- scrolledhtml - Create and manipulate a scrolled text widget
- with the capability of displaying HTML formatted documents.
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>scrolledhtml</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- Scrolledtext &lt;- Scrolledhtml
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>exportSelection</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG>
- <STRONG>insertBackground</STRONG> <STRONG>insertBorderWidthinsertOffTimeinsertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>padX</STRONG> <STRONG>padY</STRONG> <STRONG>relief</STRONG>
- <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG> <STRONG>setGrid</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget manual entry for details on the
- above associated options.
-
- <STRONG>spacing1</STRONG> <STRONG>spacing2</STRONG> <STRONG>spacing3</STRONG> <STRONG>state</STRONG>
- <STRONG>wrap</STRONG>
-
- See the "text" widget manual entry for details on the above
- associated options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG> <STRONG>height</STRONG>
- <STRONG>hscrollMode</STRONG> <STRONG>sbWidth</STRONG> <STRONG>scrollMargin</STRONG> <STRONG>visibleitems</STRONG>
- <STRONG>vscrollMode</STRONG> <STRONG>width</STRONG>
-
- See the "scrolledtext" class manual entry for details on the
- inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>feedback</STRONG>
- Class: <STRONG>FeedBack</STRONG>
- Command-Line Switch: <STRONG>-feedback</STRONG>
-
- Specifies the callback command to use to give feedback
- on current status. Two integers are appended onto this
- command. They represent the current point in the
- rendering process, and the maximum point. The maximum
- depends on the length of the text being rendered.
-
- Name: <STRONG>fixedfont</STRONG>
- Class: <STRONG>FixedFont</STRONG>
- Command-Line Switch: <STRONG>-fixedfont</STRONG>
-
- Specifies the name of the font to be used for fixed-
- width character text (such as &lt;pre&gt;...&lt;/pre&gt; or
- &lt;tt&gt;...&lt;/tt&gt;.) The size, style, and other font attri-
- butes are determined by the format tags in the docu-
- ment. The default is courier.
-
- Name: <STRONG>fontname</STRONG>
- Class: <STRONG>FontName</STRONG>
- Command-Line Switch: <STRONG>-fontname</STRONG>
-
- Specifies the name of the font to be used for normal-
- width character spaced text. The size, style, and other
- font attributes are determined by the format tags in
- the document. The default is times.
-
- Name: <STRONG>fontsize</STRONG>
- Class: <STRONG>FontSize</STRONG>
- Command-Line Switch: <STRONG>-fontsize</STRONG>
-
- Specifies the general size of the fonts used. One of
- small, medium, large, or huge. The default is medium.
-
- Name: <STRONG>foreground</STRONG>
- Class: <STRONG>Foreground</STRONG>
- Command-Line Switch: <STRONG>-foreground</STRONG>
-
- Specifies the color of text other than hypertext links,
- in any of the forms acceptable to <STRONG>Tk_GetColor</STRONG>. This
- value may be overridden in a particular document by the
- <EM>text</EM> attribute of the <STRONG>Body</STRONG> HTML tag.
-
- Name: <STRONG>link</STRONG>
- Class: <STRONG>Link</STRONG>
- Command-Line Switch: <STRONG>-link</STRONG>
-
- Specifies the default color of hypertext links in any
- of the forms acceptable to <STRONG>Tk_GetColor</STRONG>. This value may
- be overridden in a particular document by the <EM>link</EM>
- attribute of the <STRONG>Body</STRONG> HTML tag. The default is blue.
-
- Name: <STRONG>linkcommand</STRONG>
- Class: <STRONG>LinkCommand</STRONG>
- Command-Line Switch: <STRONG>-linkcommand</STRONG>
-
- Specifies the command to execute when the user clicks
- on a hypertext link. Execution is of the form <STRONG>linkcom-</STRONG>
- <STRONG>mand</STRONG> <STRONG>href</STRONG>, where <STRONG>href</STRONG> is the value given in the <EM>href</EM>
- attribute of the <STRONG>A</STRONG> HTML tag.
-
- Name: <STRONG>linkhighlight</STRONG>
- Class: <STRONG>LinkHighlight</STRONG>
- Command-Line Switch: <STRONG>-linkhighlight</STRONG>
-
- Specifies the color of hypertext links when the cursor
- is over the link in any of the forms acceptable to
- <STRONG>Tk_GetColor</STRONG>. The default is red.
-
- Name: <STRONG>textBackground</STRONG>
- Class: <STRONG>Background</STRONG>
- Command-Line Switch: <STRONG>-textbackground</STRONG>
-
- Specifies the background color for the text area in any
- of the forms acceptable to <STRONG>Tk_GetColor</STRONG>. This value may
- be overridden in a particular document by the <EM>bgcolor</EM>
- attribute of the <STRONG>Body</STRONG> HTML tag.
-
- Name: <STRONG>unknownimage</STRONG>
- Class: <STRONG>UnknownImage</STRONG>
- Command-Line Switch: <STRONG>-unknownimage</STRONG>
-
- Specifies the name of the image file to display when an
- <STRONG>img</STRONG> specified in the html document cannot be loaded.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>scrolledhtml</STRONG> command creates a scrolled text widget with
- the additional capability to display html formatted docu-
- ments. An import method is provided to read an html docu-
- ment file, and a render method is provided to display a html
- formatted text string.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>scrolledhtml</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for scrolledhtml
- widgets:
-
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>bbox</STRONG> <STRONG>compare</STRONG> <STRONG>debug</STRONG> <STRONG>delete</STRONG>
- <STRONG>dlineinfo</STRONG> <STRONG>get</STRONG> <STRONG>index</STRONG> <STRONG>insert</STRONG>
- <STRONG>mark</STRONG> <STRONG>scan</STRONG> <STRONG>search</STRONG> <STRONG>see</STRONG>
- <STRONG>tag</STRONG> <STRONG>window</STRONG> <STRONG>xview</STRONG> <STRONG>yview</STRONG>
-
- See the "text" manual entry for details on the standard
- methods.
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>export</STRONG> <STRONG>clear</STRONG>
-
- See the "scrolledhtml" manual entry for details on the
- inherited methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>scrolledhtml</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>scrolledhtml</STRONG> command.
-
- <EM>pathName</EM> <STRONG>import</STRONG> ?<EM>option</EM>? <EM>href</EM>
- Load html formatted text from a file. <EM>Href</EM> must exist.
- If <EM>option</EM> is -link, <EM>href</EM> is assumed to be relative to
- the application's current working directory. Otherwise,
- <EM>href</EM> is assumed to be relative to the path of the last
- page loaded. <EM>Href</EM> is either a filename, or a reference
- of the form <EM>filename</EM>#<EM>anchorname</EM>. In the latter form,
- fIFilename and/or <EM>anchorname</EM> may be empty. If <EM>filename</EM>
- is empty, the current document is assumed. If <EM>anchor-</EM>
- <EM>name</EM> is empty, the top of the document is assumed.
-
- <EM>pathName</EM> <STRONG>pwd</STRONG>
- Print the current working directory of the widget, i.e.
- the directory of the last page loaded.
-
- <EM>pathName</EM> <STRONG>render</STRONG> <EM>htmltext</EM> ?<EM>wd</EM>?
- Display HTML formatted text <EM>htmltext</EM>. <EM>Wd</EM> gives the base
- path to use for all links and images in the document.
- <EM>Wd</EM> defaults to the application's current working direc-
- tory.
-
- <EM>pathName</EM> <STRONG>title</STRONG>
- Return the title of the current page, as given in the
- &lt;title&gt;...&lt;/title&gt; field in the document.
-
-
-
-</PRE>
-<H2>SUPPORTED HTML TAGS</H2><PRE>
- <STRONG>a</STRONG> <STRONG>/code</STRONG> <STRONG>h5</STRONG> <STRONG>/samp</STRONG>
- <STRONG>/a</STRONG> <STRONG>dir</STRONG> <STRONG>/h5</STRONG> <STRONG>small</STRONG>
- <STRONG>address</STRONG> <STRONG>/dir</STRONG> <STRONG>h6</STRONG> <STRONG>/small</STRONG>
- <STRONG>/address</STRONG> <STRONG>dl</STRONG> <STRONG>/h6</STRONG> <STRONG>sub</STRONG>
- <STRONG>b</STRONG> <STRONG>/dl</STRONG> <STRONG>i</STRONG> <STRONG>/sub</STRONG>
- <STRONG>/b</STRONG> <STRONG>dt</STRONG> <STRONG>/i</STRONG> <STRONG>sup</STRONG>
- <STRONG>base</STRONG> <STRONG>dd</STRONG> <STRONG>img</STRONG> <STRONG>/sup</STRONG>
- <STRONG>big</STRONG> <STRONG>dfn</STRONG> <STRONG>kbd</STRONG> <STRONG>strong</STRONG>
- <STRONG>/big</STRONG> <STRONG>/dfn</STRONG> <STRONG>li</STRONG> <STRONG>/strong</STRONG>
- <STRONG>blockquote</STRONG> <STRONG>em</STRONG> <STRONG>listing</STRONG> <STRONG>title</STRONG>
- <STRONG>/blockquote</STRONG> <STRONG>/em</STRONG> <STRONG>/listing</STRONG> <STRONG>/title</STRONG>
- <STRONG>body</STRONG> <STRONG>h1</STRONG> <STRONG>menu</STRONG> <STRONG>tt</STRONG>
- <STRONG>/body</STRONG> <STRONG>/h1</STRONG> <STRONG>/menu</STRONG> <STRONG>/tt</STRONG>
- <STRONG>br</STRONG> <STRONG>h2</STRONG> <STRONG>ol</STRONG> <STRONG>u</STRONG>
- <STRONG>center</STRONG> <STRONG>/h2</STRONG> <STRONG>/ol</STRONG> <STRONG>/u</STRONG>
- <STRONG>/center</STRONG> <STRONG>h3</STRONG> <STRONG>p</STRONG> <STRONG>ul</STRONG>
- <STRONG>cite</STRONG> <STRONG>/h3</STRONG> <STRONG>pre</STRONG> <STRONG>/ul</STRONG>
- <STRONG>/cite</STRONG> <STRONG>h4</STRONG> <STRONG>/pre</STRONG> <STRONG>var</STRONG>
- <STRONG>code</STRONG> <STRONG>/h4</STRONG> <STRONG>samp</STRONG> <STRONG>/var</STRONG>
-
-
-</PRE>
-<H2>TAGS WITH ATTRIBUTES</H2><PRE>
- <STRONG>a</STRONG>
-
- <EM>href</EM> reference to html document, of the form
- filename#anchorname
-
- <EM>name</EM> name of this anchor, to be used in an href
-
- <EM>id</EM> same as name
-
- <STRONG>body</STRONG>
-
- <EM>bgcolor</EM>
- background color
-
- <EM>link</EM> color of hypertext links
-
- <EM>text</EM> color of text
-
- <STRONG>h</STRONG><EM>n</EM>
- <EM>align</EM>
- text alignment, one of <STRONG>left</STRONG>, <STRONG>right</STRONG>, or <STRONG>center</STRONG>
-
- <EM>src</EM> path to image to precede text
-
- <STRONG>hr</STRONG>
-
- <EM>noshade</EM>
- if present, indicates the rule should be a plain
- black line
-
- <EM>size</EM> height of the rule, in pixels
-
- <STRONG>img</STRONG>
-
- <EM>alt</EM> text to display in place of image if image is not
- found
-
- <EM>height</EM>
- height of area to reserve if image is not found
-
- <EM>src</EM> filename of image
-
- <EM>width</EM>
- width of area to reserve if image is not found
-
- <STRONG>p</STRONG>
-
- <EM>align</EM>
- alignment of following paragraph, one of <STRONG>left</STRONG>,
- <STRONG>right</STRONG>, or <STRONG>center</STRONG>. Defaults to alignment of previ-
- ous paragraph, or <STRONG>left</STRONG> for first paragraph
-
- <EM>id</EM> ID for use as anchorname in a link to this docu-
- ment
-
- <STRONG>ul</STRONG>
-
- <EM>plain</EM>
- if present list will not use bullets
-
- <EM>src</EM> image to use as bullet
-
- <EM>dingbat</EM>
- same as src
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- scrolledhtml .sh -fontname helvetica -linkcommand "this import -link"
-
- pack .sh -padx 10 -pady 10 -fill both -expand yes
- .sh import ~/public_html/index.html
-
-
-
-</PRE>
-<H2>ACKNOWLEDGEMENTS</H2><PRE>
- Sam Shen
-
- This code is based largely on his tkhtml.tcl code from
- tk inspect. Tkhtml is copyright 1995 Lawrence Berkeley
- Laboratory.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Kris Raney
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- scrolledhtml, html, text, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>scrolledhtml - Create and manipulate a scrolled text widget with the capability</TITLE>
+<H1>scrolledhtml - Create and manipulate a scrolled text widget with the capability</H1>
+
+of displaying HTML formatted documents.
+</pre><H2>SYNOPSIS</H2>
+<B>scrolledhtml<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Scrolledtext &lt;- Scrolledhtml
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>repeatDelay</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>padX</B><br>
+<B>repeatInterval</B><br>
+<B>setGrid</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>padY</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>relief</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>spacing1</B><br>
+<B>wrap</B><br>
+</td>
+<td valign=top>
+<B>spacing2</B><br>
+</td>
+<td valign=top>
+<B>spacing3</B><br>
+</td>
+<td valign=top>
+<B>state</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+<B>hscrollMode</B><br>
+<B>vscrollMode</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+<B>sbWidth</B><br>
+<B>width</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+<B>scrollMargin</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+<B>height</B><br>
+<B>visibleitems</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledtext.n.html"> "scrolledtext" </A> class manual entry for details on the inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>feedback</B>
+Class: <B>FeedBack</B>
+Command-Line Switch: <B>-feedback</B>
+</pre>
+<UL>
+Specifies the callback command to use to give feedback on current
+status. The command is executed in the form <I>command</I> <I>&lt;number of
+characters remaining&gt;</B></I>
+</UL>
+<P>
+<pre>
+Name: <B>fixedfont</B>
+Class: <B>FixedFont</B>
+Command-Line Switch: <B>-fixedfont</B>
+</pre>
+<UL>
+Specifies the name of the font to be used for fixed-width character
+text (such as &lt;pre&gt;...&lt;/pre&gt; or &lt;tt&gt;...&lt;/tt&gt;.) The size, style, and
+other font attributes are determined by the format tags in the
+document. The default is courier.
+</UL>
+<P>
+<pre>
+Name: <B>fontname</B>
+Class: <B>FontName</B>
+Command-Line Switch: <B>-fontname</B>
+</pre>
+<UL>
+Specifies the name of the font to be used for normal-width character
+spaced text. The size, style, and other font attributes are
+determined by the format tags in the document. The default is times.
+</UL>
+<P>
+<pre>
+Name: <B>fontsize</B>
+Class: <B>FontSize</B>
+Command-Line Switch: <B>-fontsize</B>
+</pre>
+<UL>
+Specifies the general size of the fonts used. One of small, medium,
+large, or huge. The default is medium.
+</UL>
+<P>
+<pre>
+Name: <B>foreground</B>
+Class: <B>Foreground</B>
+Command-Line Switch: <B>-foreground</B>
+</pre>
+<UL>
+Specifies the color of text other than hypertext links, in any
+of the forms acceptable to <B>Tk_GetColor</B>. This value may
+be overridden in a particular document by the <I>text</I> attribute
+of the <B>Body</B> HTML tag.
+</UL>
+<P>
+<pre>
+Name: <B>link</B>
+Class: <B>Link</B>
+Command-Line Switch: <B>-link</B>
+</pre>
+<UL>
+Specifies the default color of hypertext links in any of the forms
+acceptable to <B>Tk_GetColor</B>. This value may be overridden in a
+particular document by the <I>link</I> attribute of the <B>Body</B>
+HTML tag. The default is blue.
+</UL>
+<P>
+<pre>
+Name: <B>linkcommand</B>
+Class: <B>LinkCommand</B>
+Command-Line Switch: <B>-linkcommand</B>
+</pre>
+<UL>
+Specifies the command to execute when the user clicks on a hypertext
+link. Execution is of the form <B>linkcommand href</B>, where <B>href</B> is
+the value given in the <I>href</I> attribute of the <B>A</B> HTML tag.
+</UL>
+<P>
+<pre>
+Name: <B>alink</B>
+Class: <B>alink</B>
+Command-Line Switch: <B>-alink</B>
+</pre>
+<UL>
+Specifies the color of hypertext links when the cursor is over the link
+in any of the forms acceptable to <B>Tk_GetColor</B>. The default is red.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-textbackground</B>
+</pre>
+<UL>
+Specifies the background color for the text area in any of
+the forms acceptable to <B>Tk_GetColor</B>. This value may be
+overridden in a particular document by the <I>bgcolor</I> attribute
+of the <B>Body</B> HTML tag.
+</UL>
+<P>
+<pre>
+Name: <B>unknownimage</B>
+Class: <B>UnknownImage</B>
+Command-Line Switch: <B>-unknownimage</B>
+</pre>
+<UL>
+Specifies the name of the image file to display when an <B>img</B>
+specified in the html document cannot be loaded.
+</UL>
+<P>
+<pre>
+Name: <B>update</B>
+Class: <B>Update</B>
+Command-Line Switch: <B>-alink</B>
+</pre>
+<UL>
+A boolean value indicating whether to call update during html rendering.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>scrolledhtml</B> command creates
+a scrolled text widget with the additional capability to display
+html formatted documents.
+An import method is provided to read an html document file, and
+a render method is provided to display a html formatted text string.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>scrolledhtml</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for scrolledhtml widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>bbox</B><br>
+<B>dlineinfo</B><br>
+<B>mark</B><br>
+<B>tag</B><br>
+</td>
+<td valign=top>
+<B>compare</B><br>
+<B>get</B><br>
+<B>scan</B><br>
+<B>window</B><br>
+</td>
+<td valign=top>
+<B>debug</B><br>
+<B>index</B><br>
+<B>search</B><br>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>delete</B><br>
+<B>insert</B><br>
+<B>see</B><br>
+<B>yview</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> manual entry for details on the standard methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>export</B><br>
+</td>
+<td valign=top>
+<B>clear</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "scrolledhtml" manual entry for details on the inherited methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>scrolledhtml</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>scrolledhtml</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>import</B> ?<I>option</I>? <I>href</I>
+</I></B>
+<DD> Load html formatted text from a file. <I>Href</I> must exist.
+If <I>option</I> is -link, <I>href</I> is assumed to be relative
+to the application's current working directory. Otherwise,
+<I>href</I> is assumed to be relative to the path of the last
+page loaded. <I>Href</I> is either a filename, or a reference
+of the form <I>filename</I>#<I>anchorname</I>. In the latter form,
+fIFilename</B></I> and/or <I>anchorname</I> may be empty.
+If <I>filename</I> is empty, the current document is assumed.
+If <I>anchorname</I> is empty, the top of the document is assumed.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>pwd</B>
+</I></B>
+<DD> Print the current working directory of the widget, i.e. the directory of the
+last page loaded.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>render</B> <I>htmltext</I> ?<I>wd</I>?
+</I></B>
+<DD> Display HTML formatted text <I>htmltext</I>. <I>Wd</I> gives the base
+path to use for all links and images in the document. <I>Wd</I> defaults
+to the application's current working directory.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>title</B>
+</I></B>
+<DD> Return the title of the current page, as given in the &lt;title&gt;...&lt;/title&gt;
+field in the document.
+
+</DL>
+</pre><H2>HTML COMPLIANCE</H2>
+<P>
+This widget is compliant with HTML 3.2 with the following exceptions:
+<P>
+No features requiring a connection to an http server are supported.
+<P>
+Some image alignments aren't supported, because they are not supported by
+the text widget.
+<P>
+The &lt;br&gt; attributes dealing with image alignments aren't supported.
+<P>
+Automatic table sizing is not supported very well, due to limitations of the
+text widget
+</UL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ option add *textBackground white
+
+ scrolledhtml .sh -fontname helvetica -linkcommand "this import -link"
+
+ pack .sh -padx 10 -pady 10 -fill both -expand yes
+
+ .sh import ~/public_html/index.html
+</pre>
+</pre><H2>BUGS</H2>
+<UL>
+Cells in a table can be caused to overlap. ex:
+ &lt;table border width="100%"&gt;
+ &lt;tr&gt;&lt;td&gt;cell1&lt;/td&gt;&lt;td align=right rowspan=2&gt;cell2&lt;/td&gt;&lt;/tr&gt;
+ &lt;tr&gt;&lt;td colspan=2&gt;cell3 w/ overlap&lt;/td&gt;
+ &lt;/table&gt;
+It hasn't been fixed because 1) it's a pain to fix, 2) it will slow
+tables down by a significant amount, and 3) netscape has the same
+bug, as of V3.01.
+</UL>
+</pre><H2>ACKNOWLEDGEMENTS</H2>
+Sam Shen
+<UL>
+This code is based largely on his tkhtml.tcl code from tk inspect. Tkhtml
+is copyright 1995 Lawrence Berkeley Laboratory.
+</UL>
+<P>
+</pre><H2>AUTHOR</H2>
+Kris Raney
+</pre><H2>KEYWORDS</H2>
+scrolledhtml, html, text, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/scrolledlistbox.n.html b/itcl/iwidgets3.0.0/demos/html/scrolledlistbox.n.html
index 0f7d7b8e68f..f243712663d 100644
--- a/itcl/iwidgets3.0.0/demos/html/scrolledlistbox.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/scrolledlistbox.n.html
@@ -1,410 +1,447 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - scrolledlistbox</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - scrolledlistbox</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- scrolledlistbox - Create and manipulate scrolled listbox
- widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>scrolledlistbox</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- Scrolledlistbox
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>exportSelection</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG>
- <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG> <STRONG>selectBackground</STRONG>
- <STRONG>selectBorderWidth</STRONG> <STRONG>selectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>selectMode</STRONG>
-
- See the "listbox" widget manual entry for details on the
- above associated options.
-
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderwidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget manual entry for details on the
- above associated options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labeledBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>dblClickCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-dblclickcommand</STRONG>
-
- Specifies a Tcl command procedure which is called when
- an item is double clicked. Typically this occurs when
- mouse button 1 is double clicked over an item. Selec-
- tion policy does not matter.
-
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
- Specifies the height of the scrolled list box as an
- entire unit. The value may be specified in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>. Any additional space
- needed to display the other components such as labels,
- margins, and scrollbars force the listbox to be
- compressed. A value of zero along with the same value
- for the width causes the value given for the visi-
- bleitems option to be applied which administers
- geometry constraints in a different manner. The
- default height is zero.
-
- Name: <STRONG>hscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-hscrollmode</STRONG>
-
- Specifies the the display mode to be used for the hor-
- izontal scrollbar: <STRONG>static,</STRONG> <STRONG>dynamic,</STRONG> or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>items</STRONG>
- Class: <STRONG>Items</STRONG>
- Command-Line Switch: <STRONG>-items</STRONG>
-
- Specifies the contents of the listbox as a proper list
- of elements.
-
- Name: <STRONG>sbWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-sbwidth</STRONG>
-
- Specifies the width of the scrollbar in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>. The default width is
- 15 pixels..
-
- Name: <STRONG>scrollMargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-scrollmargin</STRONG>
-
- Specifies the distance between the listbox and
- scrollbar in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. The default is 3 pixels.
-
- Name: <STRONG>selectionCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-selectioncommand</STRONG>
-
- Specifies a Tcl command procedure which is called when
- an item is selected. Selection policy does not matter.
-
- Name: <STRONG>textBackground</STRONG>
- Class: <STRONG>Background</STRONG>
- Command-Line Switch <STRONG>-textbackground</STRONG>
-
- Specifies the background color for the listbox. This
- allows the background within the listbox to be dif-
- ferent from the normal background color.
-
- Name: <STRONG>textFont</STRONG>
- Class: <STRONG>Font</STRONG>
- Command-Line Switch: <STRONG>-textfont</STRONG>
-
- Specifies the font to be used for text in the listbox.
- This allows for the font associated with text internal
- to the scrolled listbox to be different than the font
- for labels.
-
- Name: <STRONG>visibleitems</STRONG>
- Class: <STRONG>VisibleItems</STRONG>
- Command-Line Switch: <STRONG>-visibleitems</STRONG>
-
- Specifies the widthxheight in characters and lines for
- the listbox. This option is only administered if the
- width and height options are both set to zero, other-
- wise they take precedence. The default value is 20x10.
- With the visibleitems option engaged, geometry con-
- straints are maintained only on the listbox. The size
- of the other components such as labels, margins, and
- scroll bars, are additive and independent, effecting
- the overall size of the scrolled list box. In con-
- trast, should the width and height options have non
- zero values, they are applied to the scrolled list box
- as a whole. The listbox is compressed or expanded to
- maintain the geometry constraints.
-
- Name: <STRONG>vscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-vscrollmode</STRONG>
-
- Specifies the the display mode to be used for the vert-
- ical scrollbar: <STRONG>static,</STRONG> <STRONG>dynamic,</STRONG> or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the scrolled list box as an
- entire unit. The value may be specified in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>. Any additional space
- needed to display the other components such as labels,
- margins, and scrollbars force the listbox to be
- compressed. A value of zero along with the same value
- for the height causes the value given for the visi-
- bleitems option to be applied which administers
- geometry constraints in a different manner. The
- default width is zero.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>scrolledlistbox</STRONG> command creates a scrolled listbox with
- additional options to manage horizontal and vertical
- scrollbars. This includes options to control which
- scrollbars are displayed and the method, i.e. statically or
- dynamically.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>scrolledlistbox</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- Many of the widget commands for a scrolledlistbox take as
- one argument an indicator of which entry of the list box to
- operate on. These indicators are called <EM>index</EM>es and may be
- specified in any of the following forms:
-
- <EM>number</EM> Specifies the element as a numerical index,
- where 0 corresponds to the first element in the
- listbox.
-
- <STRONG>active</STRONG> Indicates the element that has the location cur-
- sor. This element will be displayed with an
- underline when the listbox has the keyboard
- focus, and it is specified with the <STRONG>activate</STRONG>
- widget command.
-
- <STRONG>anchor</STRONG> Indicates the anchor point for the selection,
- which is set with the <STRONG>selection</STRONG> <STRONG>anchor</STRONG> widget
- command.
-
- <STRONG>end</STRONG> Indicates the end of the listbox. For some com-
- mands this means just after the last element;
- for other commands it means the last element.
-
- <STRONG>@</STRONG><EM>x</EM><STRONG>,</STRONG><EM>y</EM> Indicates the element that covers the point in
- the listbox window specified by <EM>x</EM> and <EM>y</EM> (in
- pixel coordinates). If no element covers that
- point, then the closest element to that point is
- used.
-
- <EM>pattern</EM> If the index doesn't satisfy one of the above
- forms then this form is used. <EM>Pattern</EM> is
- pattern-matched against the items in the list
- box, in order from the top down, until a match-
- ing entry is found. The rules of
- <STRONG>Tcl_StringMatch</STRONG> are used.
-
- The following widget commands are possible for scrolledlist-
- box widgets:
-
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>activate</STRONG> <STRONG>bbox</STRONG> <STRONG>curselection</STRONG> <STRONG>delete</STRONG>
- <STRONG>get</STRONG> <STRONG>index</STRONG> <STRONG>insert</STRONG> <STRONG>nearest</STRONG>
- <STRONG>scan</STRONG> <STRONG>see</STRONG> <STRONG>selection</STRONG> <STRONG>size</STRONG>
- <STRONG>xview</STRONG> <STRONG>yview</STRONG>
-
- See the "listbox" manual entry for details on the associated
- methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>scrolledlistbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>clear</STRONG>
- Clears the listbox of all items.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>scrolledlistbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>getcurselection</STRONG>
- Returns the contents of the listbox element indicated
- by the current selection indexes. Short cut version of
- get and curselection command combination.
-
- <EM>pathName</EM> <STRONG>justify</STRONG> <EM>direction</EM>
- Justifies the list contents via teh scroll bars in one
- of four directions: <STRONG>left</STRONG>, <STRONG>right</STRONG>, <STRONG>top</STRONG>, or <STRONG>bottom</STRONG>.
-
- <EM>pathName</EM> <STRONG>selecteditemcount</STRONG>
- Returns the number of items currently selected in the
- list.
-
- <EM>pathName</EM> <STRONG>sort</STRONG> <EM>order</EM>
- Sort the current list in either <STRONG>ascending</STRONG> or <STRONG>descending</STRONG>
- order. The values <STRONG>increasing</STRONG> and <STRONG>decreasing</STRONG> are also
- accepted.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>listbox</STRONG>
- Class: <STRONG>listbox</STRONG>
-
- The listbox component is the listbox widget. See the
- "listbox" widget manual entry for details on the list-
- box component item.
-
- Name: <STRONG>horizsb</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The horizsb component is the horizontal scroll bar.
- See the "scrollbar" widget manual entry for details on
- the horizsb component item.
-
- Name: <STRONG>vertsb</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The vertsb component is the vertical scroll bar. See
- the "scrollbar" widget manual entry for details on the
- vertsb component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- wm minsize . 0 0
- option add *textBackground white
- proc selCmd {} {
- puts stdout "[.slb getcurselection]"
- }
- proc defCmd {} {
- puts stdout "Double Click"
- return [selCmd]
- }
- scrolledlistbox .slb -selection single \
- -items {Hello {Out There} World} \
- -vscrollmode static -hscrollmode dynamic -labeltext "List" \
- -selectioncommand selCmd -dblclickcommand defCmd
- pack .slb -padx 10 -pady 10 -fill both -expand yes
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- scrolledlistbox, listbox, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>scrolledlistbox - Create and manipulate scrolled listbox widgets</TITLE>
+<H1>scrolledlistbox - Create and manipulate scrolled listbox widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>scrolledlistbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Scrolledwidget &lt;- Scrolledlistbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>exportSelection</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>selectForeground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>selectMode</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/listbox.n.html"> "listbox" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderwidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited
+options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>dblClickCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-dblclickcommand</B>
+</pre>
+<UL>
+Specifies a Tcl command procedure which is called when an item is
+double clicked. Typically this occurs when mouse button 1 is double
+clicked over an item. Selection policy does not matter.
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the scrolled list box as an entire unit.
+The value may be specified in any of the forms acceptable to
+<B>Tk_GetPixels</B>. Any additional space needed to display the other
+components such as labels, margins, and scrollbars force the listbox
+to be compressed. A value of zero along with the same value for
+the width causes the value given for the visibleitems option
+to be applied which administers geometry constraints in a different
+manner. The default height is zero.
+</UL>
+<P>
+<pre>
+Name: <B>hscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-hscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the horizontal
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>sbWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-sbwidth</B>
+</pre>
+<UL>
+Specifies the width of the scrollbar in any of the forms acceptable
+to <B>Tk_GetPixels</B>. The default width is 15 pixels..
+</UL>
+<P>
+<pre>
+Name: <B>scrollMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-scrollmargin</B>
+</pre>
+<UL>
+Specifies the distance between the listbox and scrollbar in any of the
+forms acceptable to <B>Tk_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>selectionCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectioncommand</B>
+</pre>
+<UL>
+Specifies a Tcl command procedure which is called when an item is
+selected. Selection policy does not matter.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specifies one of two states for the listbox: <B>normal</B> or <B>disabled</B>.
+If the listbox is disabled then selection is ignored. The default is
+normal.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch <B>-textbackground</B>
+</pre>
+<UL>
+Specifies the background color for the listbox. This allows the background
+within the listbox to be different from the normal background color.
+</UL>
+<P>
+<pre>
+Name: <B>textFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-textfont</B>
+</pre>
+<UL>
+Specifies the font to be used for text in the listbox. This allows for
+the font associated with text internal to the scrolled listbox to be
+different than the font for labels.
+</UL>
+<P>
+<pre>
+Name: <B>visibleitems</B>
+Class: <B>VisibleItems</B>
+Command-Line Switch: <B>-visibleitems</B>
+</pre>
+<UL>
+Specifies the widthxheight in characters and lines for the listbox.
+This option is only administered if the width and height options
+are both set to zero, otherwise they take precedence. The default value
+is 20x10. With the visibleitems option engaged, geometry constraints
+are maintained only on the listbox. The size of the other components such as
+labels, margins, and scroll bars, are additive and independent,
+effecting the overall size of the scrolled list box. In contrast,
+should the width and height options have non zero values, they
+are applied to the scrolled list box as a whole. The listbox
+is compressed or expanded to maintain the geometry constraints.
+</UL>
+<P>
+<pre>
+Name: <B>vscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-vscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the vertical
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the scrolled list box as an entire unit.
+The value may be specified in any of the forms acceptable to
+<B>Tk_GetPixels</B>. Any additional space needed to display the other
+components such as labels, margins, and scrollbars force the listbox
+to be compressed. A value of zero along with the same value for
+the height causes the value given for the visibleitems option
+to be applied which administers geometry constraints in a different
+manner. The default width is zero.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>scrolledlistbox</B> command creates
+a scrolled listbox with additional options to manage
+horizontal and vertical scrollbars. This includes options to control
+which scrollbars are displayed and the method, i.e. statically or
+dynamically.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>scrolledlistbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for a scrolledlistbox take as one argument an
+indicator of which entry of the list box to operate on. These
+indicators are called <I>index</I>es and may be specified in
+any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the element as a numerical index, where 0 corresponds
+to the first element in the listbox.
+</DL>
+<DL>
+<DT> <B>active</B>
+</I></B>
+<DD> Indicates the element that has the location cursor. This element
+will be displayed with an underline when the listbox has the
+keyboard focus, and it is specified with the <B>activate</B>
+widget command.
+</DL>
+<DL>
+<DT> <B>anchor</B>
+</I></B>
+<DD> Indicates the anchor point for the selection, which is set with the
+<B>selection anchor</B> widget command.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Indicates the end of the listbox.
+For some commands this means just after the last element;
+for other commands it means the last element.
+</DL>
+<DL>
+<DT> <B>@<I>x<B>,<I>y</I>
+</I></B>
+<DD> Indicates the element that covers the point in the listbox window
+specified by <I>x</I> and <I>y</I> (in pixel coordinates). If no
+element covers that point, then the closest element to that
+point is used.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy one of the above forms then this
+form is used. <I>Pattern</I> is pattern-matched against the items in
+the list box, in order from the top down, until a matching entry is found.
+The rules of <B>Tcl_StringMatch</B> are used.
+</DL>
+<P>
+The following widget commands are possible for scrolledlistbox widgets:
+
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+<B>get</B><br>
+<B>scan</B><br>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>bbox</B><br>
+<B>index</B><br>
+<B>see</B><br>
+<B>yview</B><br>
+</td>
+<td valign=top>
+<B>curselection</B><br>
+<B>insert</B><br>
+<B>selection</B><br>
+</td>
+<td valign=top>
+<B>delete</B><br>
+<B>nearest</B><br>
+<B>size</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/listbox.n.html"> "listbox" </A> manual entry for details on the associated methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>scrolledlistbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B>
+</I></B>
+<DD> Clears the listbox of all items.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>scrolledlistbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>getcurselection</B>
+</I></B>
+<DD> Returns the contents of the listbox element indicated by the current
+selection indexes. Short cut version of get and curselection command
+combination.
+</DL>
+<DL>
+<DT> <I>pathName <B>justify <I>direction</I>
+</I></B>
+<DD> Justifies the list contents via teh scroll bars in one of four directions:
+<B>left</B>, <B>right</B>, <B>top</B>, or <B>bottom</B>.
+</DL>
+<DL>
+<DT> <I>pathName <B>selecteditemcount</B>
+</I></B>
+<DD> Returns the number of items currently selected in the list.
+</DL>
+<DL>
+<DT> <I>pathName <B>sort</B> <I>order</I>
+</I></B>
+<DD> Sort the current list in either <B>ascending</B> or <B>descending</B> order.
+The values <B>increasing</B> and <B>decreasing</B> are also accepted.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>listbox</B>
+Class: <B>listbox</B>
+</pre>
+<UL>
+The listbox component is the listbox widget. See the "listbox" widget
+manual entry for details on the listbox component item.
+</UL>
+<P>
+<pre>
+Name: <B>horizsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The horizsb component is the horizontal scroll bar. See the "scrollbar"
+widget manual entry for details on the horizsb component item.
+</UL>
+<P>
+<pre>
+Name: <B>vertsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The vertsb component is the vertical scroll bar. See the "scrollbar" widget
+manual entry for details on the vertsb component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ option add *textBackground white
+ proc selCmd {} {
+ puts stdout "[.slb getcurselection]"
+ }
+ proc defCmd {} {
+ puts stdout "Double Click"
+ return [selCmd]
+ }
+ scrolledlistbox .slb -selection single \\
+ -vscrollmode static -hscrollmode dynamic -labeltext "List" \\
+ -selectioncommand selCmd -dblclickcommand defCmd
+ pack .slb -padx 10 -pady 10 -fill both -expand yes
+ .slb insert end {Hello {Out There} World}
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+scrolledlistbox, listbox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/scrolledtext.n.html b/itcl/iwidgets3.0.0/demos/html/scrolledtext.n.html
index 8ef52c78ded..b47275a63b0 100644
--- a/itcl/iwidgets3.0.0/demos/html/scrolledtext.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/scrolledtext.n.html
@@ -1,305 +1,366 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - scrolledtext</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - scrolledtext</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- scrolledtext - Create and manipulate a scrolled text widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>scrolledtext</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- Scrolledtext
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>exportSelection</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG>
- <STRONG>insertBackground</STRONG> <STRONG>insertBorderWidthinsertOffTimeinsertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>padX</STRONG> <STRONG>padY</STRONG> <STRONG>relief</STRONG>
- <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG> <STRONG>setGrid</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget manual entry for details on the
- above associated options.
-
- <STRONG>spacing1</STRONG> <STRONG>spacing2</STRONG> <STRONG>spacing3</STRONG> <STRONG>state</STRONG>
- <STRONG>wrap</STRONG>
-
- See the "text" widget manual entry for details on the above
- associated options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the scrolled text as an entire
- unit. The value may be specified in any of the forms
- acceptable to <STRONG>Tk_GetPixels</STRONG>. Any additional space
- needed to display the other components such as labels,
- margins, and scrollbars force the text to be
- compressed. A value of zero along with the same value
- for the width causes the value given for the visi-
- bleitems option to be applied which administers
- geometry constraints in a different manner. The
- default height is zero.
-
- Name: <STRONG>hscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-hscrollmode</STRONG>
-
- Specifies the the display mode to be used for the hor-
- izontal scrollbar: <STRONG>static,</STRONG> <STRONG>dynamic,</STRONG> or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>sbWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-sbwidth</STRONG>
-
- Specifies the width of the scrollbar in any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>scrollMargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-scrollmargin</STRONG>
-
- Specifies the distance between the text area and
- scrollbar in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. The default is 3 pixels.
-
- Name: <STRONG>textBackground</STRONG>
- Class: <STRONG>Background</STRONG>
- Command-Line Switch: <STRONG>-textbackground</STRONG>
-
- Specifies the background color for the text area in any
- of the forms acceptable to <STRONG>Tk_GetColor</STRONG>.
-
- Name: <STRONG>textFont</STRONG>
- Class: <STRONG>Font</STRONG>
- Command-Line Switch: <STRONG>-textfont</STRONG>
-
- Specifies the font to be used in the scrolled text
- area.
-
- Name: <STRONG>visibleitems</STRONG>
- Class: <STRONG>VisibleItems</STRONG>
- Command-Line Switch: <STRONG>-visibleitems</STRONG>
-
- Specifies the widthxheight in characters and lines for
- the text. This option is only administered if the
- width and height options are both set to zero,
- otherwise they take precedence. The default value is
- 80x24. With the visibleitems option engaged, geometry
- constraints are maintained only on the text. The size
- of the other components such as labels, margins, and
- scroll bars, are additive and independent, effecting
- the overall size of the scrolled text. In contrast,
- should the width and height options have non zero
- values, they are applied to the scrolled text as a
- whole. The text is compressed or expanded to maintain
- the geometry constraints.
-
- Name: <STRONG>vscrollMode</STRONG>
- Class: <STRONG>ScrollMode</STRONG>
- Command-Line Switch: <STRONG>-vscrollmode</STRONG>
-
- Specifies the the display mode to be used for the vert-
- ical scrollbar: <STRONG>static,</STRONG> <STRONG>dynamic,</STRONG> or <STRONG>none</STRONG>. In static
- mode, the scroll bar is displayed at all times.
- Dynamic mode displays the scroll bar as required, and
- none disables the scroll bar display. The default is
- static.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the scrolled text as an entire
- unit. The value may be specified in any of the forms
- acceptable to <STRONG>Tk_GetPixels</STRONG>. Any additional space
- needed to display the other components such as labels,
- margins, and scrollbars force the text to be
- compressed. A value of zero along with the same value
- for the height causes the value given for the visi-
- bleitems option to be applied which administers
- geometry constraints in a different manner. The
- default width is zero.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>scrolledtext</STRONG> command creates a scrolled text widget with
- additional options to manage the scrollbars. This includes
- options to control the method in which the scrollbars are
- displayed, i.e. statically or dynamically. Options also
- exist for adding a label to the scrolled text area and con-
- trolling its position. Import/export of methods are pro-
- vided for file I/O.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
-
- The <STRONG>scrolledtext</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for scrolledtext
- widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>bbox</STRONG> <STRONG>compare</STRONG> <STRONG>debug</STRONG> <STRONG>delete</STRONG>
- <STRONG>dlineinfo</STRONG> <STRONG>get</STRONG> <STRONG>index</STRONG> <STRONG>insert</STRONG>
- <STRONG>mark</STRONG> <STRONG>scan</STRONG> <STRONG>search</STRONG> <STRONG>see</STRONG>
- <STRONG>tag</STRONG> <STRONG>window</STRONG> <STRONG>xview</STRONG> <STRONG>yview</STRONG>
-
- See the "text" manual entry for details on the standard
- methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>scrolledtext</STRONG> command.
-
- <EM>pathName</EM> <STRONG>clear</STRONG>
- Clear the text area of all characters.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>scrolledtext</STRONG> command.
-
- <EM>pathName</EM> <STRONG>import</STRONG> <EM>filename</EM>
- Load text from a file. The <EM>filename</EM> must exist.
-
- <EM>pathName</EM> <STRONG>export</STRONG> <EM>filename</EM>
- Write text to a file. If <EM>filename</EM> exists then contents
- are replaced with text widget contents.
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>text</STRONG>
- Class: <STRONG>Text</STRONG>
-
- The text component is the text widget. See the "text"
- widget manual entry for details on the text component
- item.
-
- Name: <STRONG>horizsb</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The horizsb component is the horizontal scroll bar.
- See the "scrollbar" widget manual entry for details on
- the horizsb component item.
-
- Name: <STRONG>vertsb</STRONG>
- Class: <STRONG>Scrollbar</STRONG>
-
- The vertsb component is the vertical scroll bar. See
- the "scrollbar" widget manual entry for details on the
- vertsb component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- scrolledtext .st -scrollmode dynamic -labeltext "Password File"
-
- pack .st -padx 10 -pady 10 -fill both -expand yes
-
- .st import /etc/passwd
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- scrolledtext, text, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>scrolledtext - Create and manipulate a scrolled text widget</TITLE>
+<H1>scrolledtext - Create and manipulate a scrolled text widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>scrolledtext<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Scrolledwidget &lt;- Scrolledtext
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>padX</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>padY</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>relief</B><br>
+<B>setGrid</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>spacing1</B><br>
+<B>wrap</B><br>
+</td>
+<td valign=top>
+<B>spacing2</B><br>
+</td>
+<td valign=top>
+<B>spacing3</B><br>
+</td>
+<td valign=top>
+<B>state</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the scrolled text as an entire unit.
+The value may be specified in any of the forms acceptable to
+<B>Tk_GetPixels</B>. Any additional space needed to display the other
+components such as labels, margins, and scrollbars force the text
+to be compressed. A value of zero along with the same value for
+the width causes the value given for the visibleitems option
+to be applied which administers geometry constraints in a different
+manner. The default height is zero.
+</UL>
+<P>
+<pre>
+Name: <B>hscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-hscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the horizontal
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>sbWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-sbwidth</B>
+</pre>
+<UL>
+Specifies the width of the scrollbar in any of the forms
+acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>scrollMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-scrollmargin</B>
+</pre>
+<UL>
+Specifies the distance between the text area and scrollbar in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-textbackground</B>
+</pre>
+<UL>
+Specifies the background color for the text area in any of the forms
+acceptable to <B>Tk_GetColor</B>.
+</UL>
+<P>
+<pre>
+Name: <B>textFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-textfont</B>
+</pre>
+<UL>
+Specifies the font to be used in the scrolled text area.
+</UL>
+<P>
+<pre>
+Name: <B>visibleitems</B>
+Class: <B>VisibleItems</B>
+Command-Line Switch: <B>-visibleitems</B>
+</pre>
+<UL>
+Specifies the widthxheight in characters and lines for the text.
+This option is only administered if the width and height options
+are both set to zero, otherwise they take precedence. The default value
+is 80x24. With the visibleitems option engaged, geometry constraints
+are maintained only on the text. The size of the other components such as
+labels, margins, and scroll bars, are additive and independent,
+effecting the overall size of the scrolled text. In contrast,
+should the width and height options have non zero values, they
+are applied to the scrolled text as a whole. The text
+is compressed or expanded to maintain the geometry constraints.
+</UL>
+<P>
+<pre>
+Name: <B>vscrollMode</B>
+Class: <B>ScrollMode</B>
+Command-Line Switch: <B>-vscrollmode</B>
+</pre>
+<UL>
+Specifies the the display mode to be used for the vertical
+scrollbar: <B>static, dynamic,</B> or <B>none</B>. In static mode, the
+scroll bar is displayed at all times. Dynamic mode displays the
+scroll bar as required, and none disables the scroll bar display. The
+default is static.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the scrolled text as an entire unit.
+The value may be specified in any of the forms acceptable to
+<B>Tk_GetPixels</B>. Any additional space needed to display the other
+components such as labels, margins, and scrollbars force the text
+to be compressed. A value of zero along with the same value for
+the height causes the value given for the visibleitems option
+to be applied which administers geometry constraints in a different
+manner. The default width is zero.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>scrolledtext</B> command creates
+a scrolled text widget with additional options to manage
+the scrollbars. This includes options to control the method
+in which the scrollbars are displayed, i.e. statically or dynamically.
+Options also exist for adding a label to the scrolled text area and
+controlling its position. Import/export of methods are provided for
+file I/O.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>scrolledtext</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for scrolledtext widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>bbox</B><br>
+<B>dlineinfo</B><br>
+<B>mark</B><br>
+<B>tag</B><br>
+</td>
+<td valign=top>
+<B>compare</B><br>
+<B>get</B><br>
+<B>scan</B><br>
+<B>window</B><br>
+</td>
+<td valign=top>
+<B>debug</B><br>
+<B>index</B><br>
+<B>search</B><br>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>delete</B><br>
+<B>insert</B><br>
+<B>see</B><br>
+<B>yview</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/text.n.html"> "text" </A> manual entry for details on the standard methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>scrolledtext</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the child site widget path name.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B>
+</I></B>
+<DD> Clear the text area of all characters.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>scrolledtext</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>import</B> <I>filename</I> ?<I>index</I>?
+</I></B>
+<DD> Load the text from a file into the text area at the <I>index</I>. The
+<I>filename</I> must exist.
+</DL>
+<DL>
+<DT> <I>pathName <B>export</B> <I>filename</I>
+</I></B>
+<DD> Write text to a file. If <I>filename</I> exists then contents are
+replaced with text widget contents.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>text</B>
+Class: <B>Text</B>
+</pre>
+<UL>
+The text component is the text widget. See the "text" widget
+manual entry for details on the text component item.
+</UL>
+<P>
+<pre>
+Name: <B>horizsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The horizsb component is the horizontal scroll bar. See the "scrollbar"
+widget manual entry for details on the horizsb component item.
+</UL>
+<P>
+<pre>
+Name: <B>vertsb</B>
+Class: <B>Scrollbar</B>
+</pre>
+<UL>
+The vertsb component is the vertical scroll bar. See the "scrollbar" widget
+manual entry for details on the vertsb component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ option add *textBackground white
+
+ scrolledtext .st -scrollmode dynamic -labeltext "Password File"
+
+ pack .st -padx 10 -pady 10 -fill both -expand yes
+
+ .st import /etc/passwd
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+scrolledtext, text, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/selectionbox.n.html b/itcl/iwidgets3.0.0/demos/html/selectionbox.n.html
index 6e628fe8e34..63c35f2b6b1 100644
--- a/itcl/iwidgets3.0.0/demos/html/selectionbox.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/selectionbox.n.html
@@ -1,305 +1,389 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - selectionbox</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - selectionbox</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- selectionbox - Create and manipulate a selection box widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>selectionbox</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- selectionbox
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>exportSelection</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG>
- <STRONG>insertBackground</STRONG> <STRONG>insertBorderWidthinsertOffTimeinsertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
- <STRONG>selectBackground</STRONG> <STRONG>selectBorderWidthselectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG>
-
- See the "entryfield" widget class manual entry for details
- on the above associated options.
-
- <STRONG>labelFont</STRONG> <STRONG>labelMargin</STRONG>
-
- See the "labeledwidget" class manual entry for details on
- the above associated options.
-
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget class manual entry for details on
- the above associated options.
-
- <STRONG>dblClickCommand</STRONG> <STRONG>hscrollMode</STRONG> <STRONG>items</STRONG> <STRONG>sbWidth</STRONG>
- <STRONG>scrollMargin</STRONG> <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG> <STRONG>vscrollMode</STRONG>
-
- See the "scrolledlistbox" widget class manual entry for
- details on the above associated options.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>childSitePos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-childsitepos</STRONG>
-
- Specifies the position of the child site in the selec-
- tion box: <STRONG>n</STRONG>, <STRONG>s</STRONG>, <STRONG>e</STRONG>, <STRONG>w</STRONG>, or . The default is center
-
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the selection box. The value
- may be specified in any of the forms acceptable to
- Tk_GetPixels. The default is 320 pixels.
-
- Name: <STRONG>itemsCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-itemscommand</STRONG>
-
- Specifies a command to be evaluated following selection
- of an item.
-
- Name: <STRONG>itemsLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-itemslabel</STRONG>
-
- Specifies the text of the label for the items list.
- The default is "List".
-
- Name: <STRONG>itemsLabelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-itemslabelpos</STRONG>
-
- Specifies the position of the label along the side of
- the items list: <STRONG>n</STRONG>, <STRONG>ne</STRONG>, <STRONG>e</STRONG>, <STRONG>se</STRONG>, <STRONG>s</STRONG>, <STRONG>sw</STRONG>, <STRONG>w</STRONG>, or <STRONG>nw</STRONG>. The
- default is nw.
-
- Name: <STRONG>itemsOn</STRONG>
- Class: <STRONG>ItemsOn</STRONG>
- Command-Line Switch: <STRONG>-itemson</STRONG>
-
- Specifies whether or not to display the items list in
- any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>margin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-margin</STRONG>
-
- Specifies distance between the items list and selection
- entry in any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
- The default is 7 pixels.
-
- Name: <STRONG>selectionCommand</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-selectioncommand</STRONG>
-
- Specifies a Tcl procedure to be associated with a
- return key press event in the selection entry field.
-
- Name: <STRONG>selectionLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-selectionlabel</STRONG>
-
- Specifies the text of the label for the selection entry
- field. The default is "Selection".
-
- Name: <STRONG>selectionLabelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-selectionlabelpos</STRONG>
-
- Specifies the position of the label along the side of
- the selection: <STRONG>n</STRONG>, <STRONG>ne</STRONG>, <STRONG>e</STRONG>, <STRONG>se</STRONG>, <STRONG>s</STRONG>, <STRONG>sw</STRONG>, <STRONG>w</STRONG>, or <STRONG>nw</STRONG>. The
- default is nw.
-
- Name: <STRONG>selectionOn</STRONG>
- Class: <STRONG>SelectionOn</STRONG>
- Command-Line Switch: <STRONG>-selectionon</STRONG>
-
- Specifies whether or not to display the selection entry
- in any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the selection box. The value
- may be specified in any of the forms acceptable to
- Tk_GetPixels. The default is 260 pixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>selectionbox</STRONG> command creates a scrolled list of items
- and a selection entry field. The user may choose any of the
- items displayed in the scrolled list of alternatives and the
- selection field will be filled with the choice. The user is
- also free to enter a new value in the selection entry field.
- Both the list and entry areas have labels. A child site is
- also provided in which the user may create other widgets to
- be used in conjunction with the selection box.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>selectionbox</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>curselection</STRONG> <STRONG>delete</STRONG> <STRONG>index</STRONG> <STRONG>nearest</STRONG>
- <STRONG>scan</STRONG> <STRONG>selection</STRONG> <STRONG>size</STRONG>
-
- See the "listbox" widget class manual entry for details on
- the associated methods.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>selectionbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Returns the child site widget path name.
-
- <EM>pathName</EM> <STRONG>clear</STRONG> <EM>component</EM>
- Delete the contents of either the selection entry
- widget or items list. The <EM>component</EM> argument may be
- either <STRONG>items</STRONG> or <STRONG>selection</STRONG>.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>selectionbox</STRONG> command.
-
- <EM>pathName</EM> <STRONG>get</STRONG>
- Returns the current value of the selection entry
- widget.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>component</EM> <EM>args</EM>
- Insert element(s) into either the selection entry
- widget or items list. The <EM>component</EM> argument may be
- either <STRONG>items</STRONG> or <STRONG>selection</STRONG>. The <EM>args</EM> follow the rules
- of either an entry or list widget depending on the <EM>com-</EM>
- <EM>ponent</EM> value.
-
- <EM>pathName</EM> <STRONG>selectitem</STRONG>
- Replace the selection entry field contents with the
- currently selected items value.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>childsite</STRONG>
- Class: <STRONG>Frame</STRONG>
-
- The childsite component is the user child site for the
- selection box. See the "frame" widget manual entry for
- details on the childsite component item.
-
- Name: <STRONG>items</STRONG>
- Class: <STRONG>Scrolledlistbox</STRONG>
-
- The items component provides the scrolled list box of
- items for the selection box. See the "scrolledlistbox"
- widget manual entry for details on the items component
- item.
-
- Name: <STRONG>selection</STRONG>
- Class: <STRONG>Entryfield</STRONG>
-
- The selection component provides the entry field in the
- selection box for display of the selected item in the
- items component. See the "entryfield" widget manual
- entry for details on the selection component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- selectionbox .sb -items {Hello {Out There} World}
- pack .sb -padx 10 -pady 10 -fill both -expand yes
-
- set cs [label [.sb childsite].label -text "Child Site"]
- pack $cs -fill x -padx 10 -pady 10
-
- .sb insert items 2 {Cruel Cruel}
-
- .sb selection set 1
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- selectionbox, widget
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>selectionbox - Create and manipulate a selection box widget</TITLE>
+<H1>selectionbox - Create and manipulate a selection box widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>selectionbox<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- selectionbox
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>relief</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>repeatDelay</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>repeatInterval</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>dblClickCommand</B><br>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>hscrollMode</B><br>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>sbWidth</B><br>
+<B>vscrollMode</B><br>
+</td>
+<td valign=top>
+<B>scrollMargin</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget class manual entry for details on the above
+associated options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>childSitePos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-childsitepos</B>
+</pre>
+<UL>
+Specifies the position of the child site in the selection box: <B>n</B>,
+<B>s</B>, <B>e</B>, <B>w</B>, or <B></B>. The default is center
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the selection box. The value may be specified in
+any of the forms acceptable to Tk_GetPixels. The default is 320 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>itemsCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-itemscommand</B>
+</pre>
+<UL>
+Specifies a command to be evaluated following selection of an item.
+</UL>
+<P>
+<pre>
+Name: <B>itemsLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-itemslabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the items list. The default is "List".
+</UL>
+<P>
+<pre>
+Name: <B>itemsLabelPos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-itemslabelpos</B>
+</pre>
+<UL>
+Specifies the position of the label along the side of the items
+list: <B>n</B>, <B>ne</B>, <B>e</B>, <B>se</B>, <B>s</B>, <B>sw</B>, <B>w</B>,
+or <B>nw</B>. The default is nw.
+</UL>
+<P>
+<pre>
+Name: <B>itemsOn</B>
+Class: <B>ItemsOn</B>
+Command-Line Switch: <B>-itemson</B>
+</pre>
+<UL>
+Specifies whether or not to display the items list in any
+of the forms acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>margin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-margin</B>
+</pre>
+<UL>
+Specifies distance between the items list and selection entry in any of
+the forms acceptable to <B>Tk_GetPixels</B>. The default is 7 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>selectionCommand</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-selectioncommand</B>
+</pre>
+<UL>
+Specifies a Tcl procedure to be associated with a return key press event
+in the selection entry field.
+</UL>
+<P>
+<pre>
+Name: <B>selectionLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-selectionlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the selection entry field. The default
+is "Selection".
+</UL>
+<P>
+<pre>
+Name: <B>selectionLabelPos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-selectionlabelpos</B>
+</pre>
+<UL>
+Specifies the position of the label along the side of the selection:
+<B>n</B>, <B>ne</B>, <B>e</B>, <B>se</B>, <B>s</B>, <B>sw</B>, <B>w</B>,
+or <B>nw</B>. The default is nw.
+</UL>
+<P>
+<pre>
+Name: <B>selectionOn</B>
+Class: <B>SelectionOn</B>
+Command-Line Switch: <B>-selectionon</B>
+</pre>
+<UL>
+Specifies whether or not to display the selection entry in any
+of the forms acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the selection box. The value may be specified in
+any of the forms acceptable to Tk_GetPixels. The default is 260 pixels.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>selectionbox</B> command creates a scrolled list of items and
+a selection entry field. The user may choose any of the items displayed
+in the scrolled list of alternatives and the selection field will be
+filled with the choice. The user is also free to enter a new value in
+the selection entry field. Both the list and entry areas have labels.
+A child site is also provided in which the user may create other widgets
+to be used in conjunction with the selection box.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>selectionbox</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>curselection</B><br>
+<B>scan</B><br>
+</td>
+<td valign=top>
+<B>delete</B><br>
+<B>selection</B><br>
+</td>
+<td valign=top>
+<B>index</B><br>
+<B>size</B><br>
+</td>
+<td valign=top>
+<B>nearest</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/listbox.n.html"> "listbox" </A> widget class manual entry for details on the
+associated methods.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>selectionbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the child site widget path name.
+</DL>
+<DL>
+<DT> <I>pathName <B>clear</B> <I>component</I>
+</I></B>
+<DD> Delete the contents of either the selection entry widget or
+items list. The <I>component</I> argument may be either <B>items</B>
+or <B>selection</B>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>selectionbox</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B>
+</I></B>
+<DD> Returns the current value of the selection entry widget.
+</DL>
+<DL>
+<DT> <I>pathName <B>insert</B> <I>component</I> <I>args</I>
+</I></B>
+<DD> Insert element(s) into either the selection entry widget or
+items list. The <I>component</I> argument may be either <B>items</B>
+or <B>selection</B>. The <I>args</I> follow the rules of either an entry
+or list widget depending on the <I>component</I> value.
+</DL>
+<DL>
+<DT> <I>pathName <B>selectitem</B>
+</I></B>
+<DD> Replace the selection entry field contents with the currently
+selected items value.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>childsite</B>
+Class: <B>Frame</B>
+</pre>
+<UL>
+The childsite component is the user child site for the selection box. See
+the "frame" widget manual entry for details on the childsite component item.
+</UL>
+<P>
+<pre>
+Name: <B>items</B>
+Class: <B>Scrolledlistbox</B>
+</pre>
+<UL>
+The items component provides the scrolled list box of items for the selection
+box. See the "scrolledlistbox" widget manual entry for details on the
+items component item.
+</UL>
+<P>
+<pre>
+Name: <B>selection</B>
+Class: <B>Entryfield</B>
+</pre>
+<UL>
+The selection component provides the entry field in the selection box for
+display of the selected item in the items component. See the "entryfield"
+widget manual entry for details on the selection component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ option add *textBackground white
+
+ selectionbox .sb -items {Hello {Out There} World}
+ pack .sb -padx 10 -pady 10 -fill both -expand yes
+
+ set cs [label [.sb childsite].label -text "Child Site"]
+ pack $cs -fill x -padx 10 -pady 10
+
+ .sb insert items 2 {Cruel Cruel}
+
+ .sb selection set 1
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+selectionbox, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/selectiondialog.n.html b/itcl/iwidgets3.0.0/demos/html/selectiondialog.n.html
index 73139ab0a35..4a829574e12 100644
--- a/itcl/iwidgets3.0.0/demos/html/selectiondialog.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/selectiondialog.n.html
@@ -1,255 +1,314 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - selectiondialog</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - selectiondialog</H1>
-<HR>
-<PRE>
+<TITLE>selectiondialog - Create and manipulate a selection dialog widget</TITLE>
+<H1>selectiondialog - Create and manipulate a selection dialog widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>selectiondialog<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;- Selectiondialog
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+</td>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectForeground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeRelief</B><br>
+</td>
+<td valign=top>
+<B>elementBorderWidth</B><br>
+</td>
+<td valign=top>
+<B>jump</B><br>
+</td>
+<td valign=top>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> widget class manual entry for details on the above
+associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="scrolledlistbox.n.html"> "scrolledlistbox" </A> widget class manual entry for details on the above
+associated options.
+<B>childsitepos</B> <B>itemsCommand</B> <B>itemsLabel</B> <B>itemsOn</B>
+<B>selectionCommand</B> <B>selectionLabel</B> <B>selectionOn</B>
+</table>
+<P>
+See the <A HREF="selectionbox.n.html"> "selectionbox" </A> widget manual entry for details on the above
+associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>buttonBoxPadX</B><br>
+<B>padY</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPadY</B><br>
+<B>separator</B><br>
+</td>
+<td valign=top>
+<B>buttonBoxPos</B><br>
+<B>thickness</B><br>
+</td>
+<td valign=top>
+<B>padX</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="dialogshell.n.html"> "dialogshell" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>master</B><br>
+</td>
+<td valign=top>
+<B>modality</B><br>
+</td>
+<td valign=top>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" widget manual entry for details on the above
+inherited options.
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>selectiondialog</B> command creates a selection box similar to
+the OSF/Motif standard selection
+dialog composite widget. The selectiondialog is derived from the
+Dialog class and is composed of a selectionbox with commands
+to manipulate the dialog buttons.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>selectiondialog</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for selectiondialog widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childsite</B><br>
+<B>selectitem</B><br>
+</td>
+<td valign=top>
+<B>clear</B><br>
+</td>
+<td valign=top>
+<B>get</B><br>
+</td>
+<td valign=top>
+<B>insert</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="selectionbox.n.html"> "selectionbox" </A> widget manual entry for details on the above
+associated methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>curselection</B><br>
+<B>scan</B><br>
+</td>
+<td valign=top>
+<B>delete</B><br>
+<B>selection</B><br>
+</td>
+<td valign=top>
+<B>index</B><br>
+<B>size</B><br>
+</td>
+<td valign=top>
+<B>nearest</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/listbox.n.html"> "listbox" </A> widget manual entry for details on the above
+associated methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>add</B><br>
+<B>invoke</B><br>
+</td>
+<td valign=top>
+<B>buttonconfigure</B><br>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>default</B><br>
+</td>
+<td valign=top>
+<B>hide</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="buttonbox.n.html"> "buttonbox" </A> widget manual entry for details on the above
+inherited methods.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activate</B><br>
+</td>
+<td valign=top>
+<B>center</B><br>
+</td>
+<td valign=top>
+<B>deactivate</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "shell" widget manual entry for details on the above
+inherited methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>selectiondialog</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>selectiondialog</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>selectionbox</B>
+Class: <B>Selectionbox</B>
+</pre>
+<UL>
+The selectionbox component is the selection box for the selection
+dialog. See the "selectionbox" widget manual entry for details on the
+selectionbox component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ selectiondialog .sd
+ .sd activate
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+selectiondialog, selectionbox, dialog, dialogshell, shell, widget
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- selectiondialog - Create and manipulate a selection dialog
- widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>selectiondialog</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- Shell &lt;- Dialogshell &lt;- Dialog &lt;- Selec-
- tiondialog
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>background</STRONG> <STRONG>borderWidthcursor</STRONG>
- <STRONG>exportSelection</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThickness</STRONG>
- <STRONG>insertBackground</STRONG> <STRONG>insertBorderWidthinsertOffTimeinsertOnTime</STRONG>
- <STRONG>insertWidth</STRONG> <STRONG>relief</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
- <STRONG>selectBackground</STRONG> <STRONG>selectBorderWidthselectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG>
-
- See the "entryfield" widget manual entry for details on the
- above associated options.
-
- <STRONG>labelFont</STRONG> <STRONG>labelMargin</STRONG>
-
- See the "labeledwidget" widget manual entry for details on
- the above associated options.
-
- <STRONG>activeRelief</STRONG> <STRONG>elementBorderWidth</STRONG> <STRONG>jumptroughColor</STRONG>
-
- See the "scrollbar" widget class manual entry for details on
- the above associated options.
-
- <STRONG>hscrollMode</STRONG> <STRONG>items</STRONG> <STRONG>sbWidth</STRONG> <STRONG>scrollMargin</STRONG>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG> <STRONG>vscrollMode</STRONG>
-
- See the "scrolledlistbox" widget class manual entry for
- details on the above associated options.
- <STRONG>childsitepos</STRONG> <STRONG>itemsCommand</STRONG> <STRONG>itemsLabel</STRONG> <STRONG>itemsLabelPos</STRONG>
- <STRONG>itemsOn</STRONG> <STRONG>margin</STRONG> <STRONG>selectionCommandselectionLabel</STRONG>
- <STRONG>selectionLabelPos</STRONG> <STRONG>selectionOn</STRONG>
-
- See the "selectionbox" widget manual entry for details on
- the above associated options.
-
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>buttonBoxPadX</STRONG> <STRONG>buttonBoxPadY</STRONG> <STRONG>buttonBoxPos</STRONG> <STRONG>padX</STRONG>
- <STRONG>padY</STRONG> <STRONG>separator</STRONG> <STRONG>thickness</STRONG>
-
- See the "dialogshell" widget manual entry for details on
- the above inherited options.
-
- <STRONG>master</STRONG> <STRONG>modality</STRONG> <STRONG>title</STRONG>
-
- See the "shell" widget manual entry for details on the
- above inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>height</STRONG>
- Class: <STRONG>Height</STRONG>
- Command-Line Switch: <STRONG>-height</STRONG>
-
- Specifies the height of the selection dialog. The
- value may be specified in any of the forms acceptable
- to Tk_GetPixels. The default is 350 pixels.
-
- Name: <STRONG>width</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-width</STRONG>
-
- Specifies the width of the selection dialog. The value
- may be specified in any of the forms acceptable to
- Tk_GetPixels. The default is 300 pixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>selectiondialog</STRONG> command creates a selection box similar
- to the OSF/Motif standard selection dialog composite widget.
- The selectiondialog is derived from the Dialog class and is
- composed of a selectionbox with commands to manipulate the
- dialog buttons.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>selectiondialog</STRONG> command creates a new Tcl command whose
- name is <EM>pathName</EM>. This command may be used to invoke vari-
- ous operations on the widget. It has the following general
- form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for selectiondia-
- log widgets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>childsite</STRONG> <STRONG>clear</STRONG> <STRONG>get</STRONG> <STRONG>insert</STRONG>
- <STRONG>selectitem</STRONG>
-
- See the "selectionbox" widget manual entry for details on
- the above associated methods.
-
- <STRONG>curselection</STRONG> <STRONG>delete</STRONG> <STRONG>index</STRONG> <STRONG>nearest</STRONG>
- <STRONG>scan</STRONG> <STRONG>selection</STRONG> <STRONG>size</STRONG>
-
- See the "listbox" widget manual entry for details on the
- above associated methods.
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>add</STRONG> <STRONG>buttonconfigure</STRONG> <STRONG>defaulthide</STRONG>
- <STRONG>invoke</STRONG> <STRONG>show</STRONG>
-
- See the "buttonbox" widget manual entry for details on the
- above inherited methods.
-
- <STRONG>activate</STRONG> <STRONG>center</STRONG> <STRONG>deactivate</STRONG>
-
- See the "shell" widget manual entry for details on the above
- inherited methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>selectiondialog</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>selectiondialog</STRONG> command.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>sb</STRONG>
- Class: <STRONG>Selectionbox</STRONG>
-
- The sb component is the selection box for the selection
- dialog.
- See the "selectionbox" widget manual entry for details
- on the sb component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground GhostWhite
-
- selectiondialog .sd
- .sd activate
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- selectiondialog, selectionbox, dialog, dialogshell, shell,
- widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
diff --git a/itcl/iwidgets3.0.0/demos/html/shell.n.html b/itcl/iwidgets3.0.0/demos/html/shell.n.html
index 10eb5ea4406..9ff1b0f16b6 100644
--- a/itcl/iwidgets3.0.0/demos/html/shell.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/shell.n.html
@@ -1,195 +1,220 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - shell</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - shell</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- shell - Create and manipulate a shell widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>shell</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Toplevel &lt;- shell
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>master</STRONG>
- Class: <STRONG>Window</STRONG>
- Command-Line Switch: <STRONG>-master</STRONG>
-
- Defines the shell as being a transient window with the
- master window given by the master option. The master
- window should be either another existing toplevel win-
- dow or {} for no master. The default is {} for shells
- and "." for dialogs.
-
- Name: <STRONG>modality</STRONG>
- Class: <STRONG>Modality</STRONG>
- Command-Line Switch: <STRONG>-modality</STRONG>
-
- Allows the shell to grab control of the screen in one
- of three different ways: <STRONG>application</STRONG>, <STRONG>system</STRONG>, or <STRONG>none</STRONG>.
- Application modal prevents any other toplevel windows
- within the application which are direct children of '.'
- from gaining focus. System modal locks the screen and
- prevents all windows from gaining focus regardless of
- application. A modality of none performs no grabs at
- all. The default is none.
-
- Name: <STRONG>padX</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-padx</STRONG>
-
- Specifies a padding distance for the childsite in the
- X-direction in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. The default is 10.
-
- Name: <STRONG>padY</STRONG>
- Class: <STRONG>Pad</STRONG>
- Command-Line Switch: <STRONG>-pady</STRONG>
- Specifies a padding distance for the childsite in the
- Y-direction in any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>. The default is 10.
-
- Name: <STRONG>title</STRONG>
- Class: <STRONG>Title</STRONG>
- Command-Line Switch: <STRONG>-title</STRONG>
-
- String to be displayed in the title window decoration.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>shell</STRONG> command creates a shell which is a top level
- widget which supports modal operation.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>shell</STRONG> command create a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for shell widg-
- ets:
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>activate</STRONG>
- Display the shell and wait based on the modality. For
- application and system modal activations, perform a
- grab operation, and wait for the result. The result
- may be returned via an argument to the <STRONG>deactivate</STRONG>
- method.
-
- <EM>pathName</EM> <STRONG>center</STRONG> ?<EM>widget</EM>?
- Centers the shell with respect to another widget. The
- widget argument is optional. If provided, it should be
- the path of another widget with to center upon. If
- absent, then the shell will be centered on the screen
- as a whole.
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>shell</STRONG> command.
-
- <EM>pathName</EM> <STRONG>childsite</STRONG>
- Returns the pathname of the child site widget.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>shell</STRONG> command.
-
- <EM>pathName</EM> <STRONG>deactivate</STRONG> ?<EM>arg</EM>?
- Deactivate the display of the shell. The method takes
- an optional argument to be passed to the <STRONG>activate</STRONG>
- method which returns the value. The optional argument
- is only effective for application and system modal dia-
- logs.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>shellchildsite</STRONG>
- Class: <STRONG>frame</STRONG>
-
- The shellchildsite component is the user child site for
- the shell. See the "frame" widget manual entry for
- details on the shellchildsite component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- shell .sh -modality application -padx 20 -pady 20 -title Shell
-
- pack [label [.sh childsite].l -text SHELL]
-
- .sh center
- .sh activate
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Mark L. Ulferts
-
- Kris Raney
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- shell, widget
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>shell - Create and manipulate a shell widget</TITLE>
+<H1>shell - Create and manipulate a shell widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>shell<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Toplevel &lt;- shell
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>title</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "Toplevel" manual entry for details on the above inherited options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the shell. The value may be specified in
+any of the forms acceptable to <B>Tk_GetPixels</B>. A value of zero
+causes the height to be adjusted to the required value based on
+the size requests of the components placed in the childsite.
+Otherwise, the height is fixed. The default is zero. NOTE: This
+may cause some amount of flickering on slower machines. To prevent it
+simply set the width and height to a appropriate value.
+</UL>
+<P>
+<pre>
+Name: <B>master</B>
+Class: <B>Window</B>
+Command-Line Switch: <B>-master</B>
+</pre>
+<UL>
+Defines the shell as being a transient window with the master window
+given by the master option. The master window should be either another
+existing toplevel window or {} for no master. The default is {} for
+shells and "." for dialogs.
+</UL>
+<P>
+<pre>
+Name: <B>modality</B>
+Class: <B>Modality</B>
+Command-Line Switch: <B>-modality</B>
+</pre>
+<UL>
+Allows the shell to grab control of the screen in one of three different ways:
+<B>application</B>, <B>system</B>, or <B>none</B>.
+Application modal prevents any other toplevel windows within the application
+which are direct children of '.' from gaining focus. System modal locks
+the screen and prevents all windows from gaining focus regardless of
+application. A modality of none performs no grabs at all. The default
+is none.
+</UL>
+<P>
+<pre>
+Name: <B>padX</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-padx</B>
+</pre>
+<UL>
+Specifies a padding distance for the childsite in the X-direction in
+any of the forms acceptable to <B>Tk_GetPixels</B>. The default is 10.
+</UL>
+<P>
+<pre>
+Name: <B>padY</B>
+Class: <B>Pad</B>
+Command-Line Switch: <B>-pady</B>
+</pre>
+<UL>
+Specifies a padding distance for the childsite in the Y-direction in
+any of the forms acceptable to <B>Tk_GetPixels</B>. The default is 10.
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the shell. The value may be specified in
+any of the forms acceptable to <B>Tk_GetPixels</B>. A value of zero
+causes the width to be adjusted to the required value based on
+the size requests of the components placed in the childsite.
+Otherwise, the width is fixed. The default is zero. NOTE: This
+may cause some amount of flickering on slower machines. To prevent it
+simply set the width and height to a appropriate value.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>shell</B> command creates a shell which is a top
+level widget which supports modal operation.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>shell</B> command create a new Tcl command whose
+name is <I>pathName</I>. This command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for shell widgets:
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>activate</B>
+</I></B>
+<DD> Display the shell and wait based on the modality. For application
+and system modal activations, perform a grab operation, and wait
+for the result. The result may be returned via an argument to the
+<B>deactivate</B> method.
+</DL>
+<DL>
+<DT> <I>pathName <B>center</B> <I>?widget?</I>
+</I></B>
+<DD> Centers the shell with respect to another widget. The widget argument
+is optional. If provided, it should be the path of another widget with
+to center upon. If absent, then the shell will be centered on the screen
+as a whole.
+</DL>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>shell</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>childsite</B>
+</I></B>
+<DD> Returns the pathname of the child site widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>shell</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>deactivate</B> ?<I>arg</I>?
+</I></B>
+<DD> Deactivate the display of the shell. The method takes an optional
+argument to be passed to the <B>activate</B> method which returns the value.
+The optional argument is only effective for application and system
+modal dialogs.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>shellchildsite</B>
+Class: <B>frame</B>
+</pre>
+<UL>
+The shellchildsite component is the user child site for the shell. See
+the "frame" widget manual entry for details on the shellchildsite
+component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ shell .sh -modality application -padx 20 -pady 20 -title Shell
+
+ pack [label [.sh childsite].l -text SHELL]
+
+ .sh center
+ .sh activate
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre>
+Kris Raney
+<P>
+</pre><H2>KEYWORDS</H2>
+shell, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/spindate.n.html b/itcl/iwidgets3.0.0/demos/html/spindate.n.html
index 1409acc45f2..ffcc3eecd86 100644
--- a/itcl/iwidgets3.0.0/demos/html/spindate.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/spindate.n.html
@@ -1,303 +1,614 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - spindate</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - spindate</H1>
-<HR>
-<PRE>
+<TITLE>spindate - Create and manipulate time spinner widgets</TITLE>
+<H1>spindate - Create and manipulate time spinner widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>spindate<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Spindate
+
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>relief</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> manual entry for details on the above associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> manual entry for details on the above associated
+options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>arrowOrient</B><br>
+</td>
+<td valign=top>
+<B>repeatDelay</B><br>
+</td>
+<td valign=top>
+<B>repeatInterval</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="spinner.n.html"> "spinner" </A> manual entry for details on the above associated options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>dateMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-datemargin</B>
+</pre>
+<UL>
+Specifies the margin space between the month, day, and year spinners is
+any of the forms accpetable to <B>Tcl_GetPixels</B>. The default is 1 pixel.
+</UL>
+<P>
+<pre>
+Name: <B>dayLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-daylabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the day spinner. The default is
+"Day".
+</UL>
+<P>
+<pre>
+Name: <B>dayOn</B>
+Class: <B>dayOn</B>
+Command-Line Switch: <B>-dayon</B>
+</pre>
+<UL>
+Specifies whether or not to display the day spinner in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>dayWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-daywidth</B>
+</pre>
+<UL>
+Specifies the width of the day spinner in any of the forms acceptable to
+<B>Tcl_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>labelPos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-labelpos</B>
+</pre>
+<UL>
+Specifies the position of the label along the sides of the various
+spinners: <B>n</B>, <B>e</B>, <B>s</B>, or <B>w</B>. The default is w.
+</UL>
+<P>
+<pre>
+Name: <B>monthFormat</B>
+Class: <B>MonthFormat</B>
+Command-Line Switch: <B>-monthformat</B>
+</pre>
+<UL>
+Specifies the format of month display, <B>integer</B> (1-12) or <B>brief</B>
+strings (Jan - Dec), or <B>full</B> strings (January - December).
+</UL>
+<P>
+<pre>
+Name: <B>monthLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-monthlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the month spinner. The default is "Month".
+</UL>
+<P>
+<pre>
+Name: <B>monthOn</B>
+Class: <B>monthOn</B>
+Command-Line Switch: <B>-monthon</B>
+</pre>
+<UL>
+Specifies whether or not to display the month spinner in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>monthWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-monthwidth</B>
+</pre>
+<UL>
+Specifies the width of the month spinner in any of the forms acceptable to
+<B>Tcl_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>orient</B>
+Class: <B>Orient</B>
+Command-Line Switch: <B>-orient</B>
+</pre>
+<UL>
+Specifies the orientation of the month, day, and year spinners: <B>vertical</B> or <B>horizontal</B>. The default is horizontal.
+</UL>
+<P>
+<pre>
+Name: <B>yearDigits</B>
+Class: <B>YearDigits</B>
+Command-Line Switch: <B>-yeardigits</B>
+</pre>
+<UL>
+Specifies the number of digits to be displayed as the value for the year
+spinner. The valid values are 2 and 4. The default is 2.
+</UL>
+<P>
+<pre>
+Name: <B>yearLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-yearlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the year spinner. The default is
+"Year"
+</UL>
+<P>
+<pre>
+Name: <B>yearOn</B>
+Class: <B>yearOn</B>
+Command-Line Switch: <B>-yearon</B>
+</pre>
+<UL>
+Specifies whether or not to display the year spinner in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>yearWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-yearwidth</B>
+</pre>
+<UL>
+Specifies the width of the year spinner in any of the forms acceptable to
+<B>Tcl_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<table cellpadding=5>
+<td valign=top>
+</pre><HR><br>
+<B>spindate</B><br>
+set<br>
+use<br>
+entry.<br>
+an<br>
+year<br>
+<P><br>
+creates<br>
+command<br>
+<I>pathName</I>.<br>
+be<br>
+various<br>
+widget.<br>
+following<br>
+<I>pathName<br>
+...</I>?<br>
+the<br>
+exact<br>
+command.<br>
+are<br>
+widgets:<br>
+<DT><br>
+</I></B><br>
+current<br>
+configuration<br>
+<I>option</I>.<br>
+any<br>
+accepted<br>
+command.<br>
+<I>pathName</I><br>
+option<br>
+<DD><br>
+the<br>
+the<br>
+<I>option</I><br>
+a<br>
+of<br>
+for<br>
+for<br>
+format<br>
+If<br>
+with<br>
+the<br>
+list<br>
+named<br>
+will<br>
+the<br>
+the<br>
+no<br>
+If<br>
+<I>option-value</I><br>
+then<br>
+the<br>
+to<br>
+value(s);<br>
+the<br>
+empty<br>
+have<br>
+values<br>
+<B>spindate</B><br>
+<DT><br>
+</I></B><br>
+current<br>
+spindate<br>
+format<br>
+as<br>
+value<br>
+and<br>
+respectively.<br>
+by<br>
+clock<br>
+information<br>
+and<br>
+<DL><br>
+<I>date</I><br>
+the<br>
+to<br>
+the<br>
+date<br>
+either<br>
+an<br>
+or<br>
+Reference<br>
+for<br>
+obtaining<br>
+formats.<br>
+<table><br>
+<B>Spinner</B><br>
+</td>
+<td valign=top>
+</pre><H2>DESCRIPTION</H2><br>
+command<br>
+of<br>
+in<br>
+The<br>
+month,<br>
+spinner<br>
+The<br>
+a<br>
+whose<br>
+This<br>
+used<br>
+operations<br>
+It<br>
+general<br>
+option<br>
+</pre><br>
+<I>arg</I>s<br>
+behavior<br>
+The<br>
+possible<br>
+</pre><H2>WIDGET-SPECIFIC<br>
+<I>pathName<br>
+<DD><br>
+value<br>
+option<br>
+<I>Option</I><br>
+of<br>
+by<br>
+</DL><br>
+<B>configure</B><br>
+value<br>
+Query<br>
+configuration<br>
+widget.<br>
+is<br>
+list<br>
+the<br>
+<I>pathName</I><br>
+information<br>
+of<br>
+<I>option</I><br>
+no<br>
+command<br>
+describing<br>
+option<br>
+be<br>
+corresponding<br>
+value<br>
+<I>option</I><br>
+one<br>
+pairs<br>
+the<br>
+given<br>
+have<br>
+in<br>
+command<br>
+string.<br>
+any<br>
+accepted<br>
+command.<br>
+<I>pathName<br>
+<DD><br>
+contents<br>
+widget<br>
+of<br>
+an<br>
+using<br>
+<B>-clicks</B><br>
+The<br>
+string.<br>
+command<br>
+on<br>
+their<br>
+<DT><br>
+</I></B><br>
+currently<br>
+be<br>
+date<br>
+may<br>
+as<br>
+integer<br>
+the<br>
+the<br>
+more<br>
+dates<br>
+</DL><br>
+Name:<br>
+</td>
+<td valign=top>
+<P><br>
+creates<br>
+spinners<br>
+date<br>
+set<br>
+day,<br>
+widget.<br>
+<B>spindate</B><br>
+new<br>
+name<br>
+command<br>
+to<br>
+on<br>
+has<br>
+form:<br>
+</I>?<I>arg<br>
+<I>Option</I><br>
+determine<br>
+of<br>
+following<br>
+for<br>
+METHODS</H2><br>
+<B>cget</B><br>
+Returns<br>
+of<br>
+given<br>
+may<br>
+the<br>
+the<br>
+<DL><br>
+?<I>option</I>?<br>
+...</I>?<br>
+or<br>
+options<br>
+If<br>
+specified,<br>
+describing<br>
+available<br>
+(see<br>
+on<br>
+this<br>
+is<br>
+<I>value</I>,<br>
+returns<br>
+the<br>
+(this<br>
+identical<br>
+sublist<br>
+returned<br>
+is<br>
+or<br>
+are<br>
+command<br>
+widget<br>
+the<br>
+this<br>
+returns<br>
+<I>Option</I><br>
+of<br>
+by<br>
+</DL><br>
+<B>get</B><br>
+Returns<br>
+of<br>
+in<br>
+string<br>
+integer<br>
+the<br>
+format<br>
+default<br>
+Reference<br>
+for<br>
+obtaining<br>
+formats.<br>
+<I>pathName<br>
+<DD><br>
+displayed<br>
+that<br>
+argument.<br>
+be<br>
+a<br>
+clock<br>
+keyword<br>
+clock<br>
+information<br>
+and<br>
+</pre><H2>COMPONENTS</H2><br>
+<B>month</B><br>
+</td>
+<td valign=top>
+The<br>
+a<br>
+for<br>
+value<br>
+includes<br>
+and<br>
+</pre><H2>METHODS</H2><br>
+command<br>
+Tcl<br>
+is<br>
+may<br>
+invoke<br>
+the<br>
+the<br>
+<pre><br>
+arg<br>
+and<br>
+the<br>
+the<br>
+commands<br>
+spindate<br>
+<DL><br>
+<I>option</I><br>
+the<br>
+the<br>
+by<br>
+have<br>
+values<br>
+<B>spindate</B><br>
+<DT><br>
+?<I>value<br>
+</I></B><br>
+modify<br>
+of<br>
+no<br>
+returns<br>
+all<br>
+options<br>
+<B>Tk_ConfigureInfo</B><br>
+the<br>
+list).<br>
+specified<br>
+then<br>
+a<br>
+one<br>
+list<br>
+to<br>
+of<br>
+if<br>
+specified).<br>
+more<br>
+specified,<br>
+modifies<br>
+option(s)<br>
+given<br>
+case<br>
+an<br>
+may<br>
+the<br>
+the<br>
+<DL><br>
+?<B>format</B>?<br>
+the<br>
+the<br>
+a<br>
+or<br>
+clock<br>
+<B>-string</B><br>
+options<br>
+is<br>
+the<br>
+more<br>
+dates<br>
+</DL><br>
+<B>show</B><br>
+Changes<br>
+date<br>
+of<br>
+The<br>
+specified<br>
+string,<br>
+value<br>
+"now".<br>
+command<br>
+on<br>
+their<br>
+<P><br>
+Class:<br>
+</td>
+</table>
+<UL>
+The month spinner component is the month spinner of the date spinner.
+See the Spinner widget manual entry for details on the month component item.
+</UL>
+<P>
+<pre>
+Name: <B>day</B>
+Class: <B>Spinint</B>
+</pre>
+<UL>
+The day spinner component is the day spinner of the date spinner.
+See the SpinInt widget manual entry for details on the day component item.
+</UL>
+<P>
+<pre>
+Name: <B>year</B>
+Class: <B>Spinint</B>
+</pre>
+<UL>
+The year spinner component is the year spinner of the date spinner.
+See the SpinInt widget manual entry for details on the year component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+spindate .sd
+pack .sd -padx 10 -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:syockey@spd.dsccc.com">Sue Yockey</A>
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+spindate, spinint, spinner, entryfield, entry, widget
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- spindate - Create and manipulate time spinner widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>spindate</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Spindate
-
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG>
- <STRONG>highlightThickness</STRONG> <STRONG>relief</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG>
-
- See the "entryfield" manual entry for details on the above
- associated options.
-
- <STRONG>labelFont</STRONG> <STRONG>labelMargin</STRONG>
-
- See the "labeledwidget" manual entry for details on the
- above associated options.
-
- <STRONG>step</STRONG>
-
- See the "spinint" manual entry for details on the above
- associated options.
-
- <STRONG>arrowOrient</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
-
- See the "spinner" manual entry for details on the above
- associated options.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>dateMargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-datemargin</STRONG>
-
- Specifies the margin space between the month, day, and
- year spinners is any of the forms accpetable to
- <STRONG>Tcl_GetPixels</STRONG>. The default is 1 pixel.
-
-
- Name: <STRONG>dayLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-daylabel</STRONG>
-
- Specifies the text of the label for the day spinner.
- The default is "Day".
-
- Name: <STRONG>dayOn</STRONG>
- Class: <STRONG>dayOn</STRONG>
- Command-Line Switch: <STRONG>-dayon</STRONG>
-
- Specifies whether or not to display the day spinner in
- any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>dayWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-daywidth</STRONG>
-
- Specifies the width of the day spinner in any of the
- forms acceptable to <STRONG>Tcl_GetPixels</STRONG>. The default is 3
- pixels.
-
- Name: <STRONG>labelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-labelpos</STRONG>
-
- Specifies the position of the label along the sides of
- the various spinners: <STRONG>n</STRONG>, <STRONG>e</STRONG>, <STRONG>s</STRONG>, or <STRONG>w</STRONG>. The default is w.
-
- Name: <STRONG>monthFormat</STRONG>
- Class: <STRONG>MonthFormat</STRONG>
- Command-Line Switch: <STRONG>-monthformat</STRONG>
-
- Specifies the format of month display, <STRONG>integer</STRONG> (1-12)
- or <STRONG>string</STRONG> (Jan - Dec), or a user specified list of
- values.
-
- Name: <STRONG>monthLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-monthlabel</STRONG>
-
- Specifies the text of the label for the month spinner.
- The default is "Month".
-
- Name: <STRONG>monthOn</STRONG>
- Class: <STRONG>monthOn</STRONG>
- Command-Line Switch: <STRONG>-monthon</STRONG>
-
- Specifies whether or not to display the month spinner
- in any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>monthWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-monthwidth</STRONG>
-
- Specifies the width of the month spinner in any of the
- forms acceptable to <STRONG>Tcl_GetPixels</STRONG>. The default is 3
- pixels.
-
- Name: <STRONG>orient</STRONG>
- Class: <STRONG>Orient</STRONG>
- Command-Line Switch: <STRONG>-orient</STRONG>
-
- Specifies the orientation of the month, day, and year
- spinners: <STRONG>vertical</STRONG> or <STRONG>horizontal</STRONG>. The default is hor-
- izontal.
-
- Name: <STRONG>yearDigits</STRONG>
- Class: <STRONG>YearDigits</STRONG>
- Command-Line Switch: <STRONG>-yeardigits</STRONG>
-
- Specifies the number of digits to be displayed as the
- value for the year spinner. The valid values are 2 and
- 4. The default is 2.
-
- Name: <STRONG>yearLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-yearlabel</STRONG>
-
- Specifies the text of the label for the year spinner.
- The default is "Year"
-
- Name: <STRONG>yearOn</STRONG>
- Class: <STRONG>yearOn</STRONG>
- Command-Line Switch: <STRONG>-yearon</STRONG>
-
- Specifies whether or not to display the year spinner in
- any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>yearWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-yearwidth</STRONG>
-
- Specifies the width of the year spinner in any of the
- forms acceptable to <STRONG>Tcl_GetPixels</STRONG>. The default is 3
- pixels.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
-
- The <STRONG>spindate</STRONG> command creates a set of spinners for use in
- date value entry. The set includes an month, day, and year
- spinner widget.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>spindate</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for spindate widg-
- ets:
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>spindate</STRONG> command.
-
- <EM>pathName</EM> <STRONG>clear</STRONG>
- Delete the contents of all spinner components.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>spindate</STRONG> command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>component</EM> <EM>first</EM> ?<EM>last</EM>?
- Delete one or more characters of the specified <EM>com-</EM>
- <EM>ponent</EM>, where <EM>component</EM> can be <STRONG>month</STRONG>, <STRONG>day</STRONG>, or <STRONG>year</STRONG>.
- <EM>First</EM> is the index of the first character to delete,
- and <EM>last</EM> is the index of the character just after the
- last one to delete.
-
- <EM>pathName</EM> <STRONG>get</STRONG> ?<EM>component</EM>?
- Get returns the value for the speicifed component:
- <STRONG>month</STRONG>, <STRONG>day</STRONG>, or <STRONG>year</STRONG>. Without parameters the command
- returns the all three values as a list.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>component</EM> <EM>index</EM> <EM>string</EM>
- Inserts the characters of <EM>string</EM> just before the char-
- acter indicated by <EM>index</EM> in the <EM>component</EM>, where <EM>com-</EM>
- <EM>ponent</EM> can be <STRONG>month</STRONG>, <STRONG>day</STRONG>, or <STRONG>year</STRONG>.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>month</STRONG>
- Class: <STRONG>Spinner</STRONG>
-
- The month spinner component is the month spinner of the
- date spinner. See the Spinner widget manual entry for
- details on the month component item.
-
- Name: <STRONG>day</STRONG>
- Class: <STRONG>Spinint</STRONG>
-
- The day spinner component is the day spinner of the
- date spinner. See the SpinInt widget manual entry for
- details on the day component item.
-
- Name: <STRONG>year</STRONG>
- Class: <STRONG>Spinint</STRONG>
-
- The year spinner component is the year spinner of the
- date spinner. See the SpinInt widget manual entry for-
- details on the year component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- spindate .sd
- pack .sd -padx 10 -pady 10
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Sue Yockey
-
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- spindate, spinint, spinner, entryfield, entry, widget
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
diff --git a/itcl/iwidgets3.0.0/demos/html/spinint.n.html b/itcl/iwidgets3.0.0/demos/html/spinint.n.html
index e0c74ece501..1ba9b0eaa00 100644
--- a/itcl/iwidgets3.0.0/demos/html/spinint.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/spinint.n.html
@@ -1,203 +1,269 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - spinint</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - spinint</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- spinint - Create and manipulate a integer spinner widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>spinint</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- Spinner &lt;- Spinint
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>exportSelection</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessinsertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTimeinsertWidth</STRONG>
- <STRONG>justify</STRONG> <STRONG>relief</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG> <STRONG>textVariable</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>show</STRONG> <STRONG>state</STRONG>
-
- See the "entry" manual entry for details on the associated
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>command</STRONG> <STRONG>childSitePos</STRONG> <STRONG>fixed</STRONG> <STRONG>focusCommand</STRONG>
- <STRONG>invalid</STRONG> <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG> <STRONG>validate</STRONG>
- <STRONG>width</STRONG>
-
- See the "entryfield" widget manual entry for details on the
- above inherited options.
-
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" widget manual entry for details on
- the above inherited options.
-
- <STRONG>arroworient</STRONG> <STRONG>decrement</STRONG> <STRONG>increment</STRONG> <STRONG>repeatDelay</STRONG>
- <STRONG>repeatInterval</STRONG>
-
- See the "spinner" widget manual entry for details on the
- above inherited options.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>range</STRONG>
- Class: <STRONG>Range</STRONG>
- Command-Line Switch: <STRONG>-range</STRONG>
- Specifies a two element list of minimum and maximum
- integer values. The default is no range, {{} {}}.
-
- Name: <STRONG>step</STRONG>
- Class: <STRONG>Step</STRONG>
- Command-Line Switch: <STRONG>-step</STRONG>
-
- Specifies the increment/decrement value. The default
- is 1.
-
- Name: <STRONG>wrap</STRONG>
- Class: <STRONG>Wrap</STRONG>
- Command-Line Switch: <STRONG>-wrap</STRONG>
-
- Specifies whether to wrap the spinner value upon reach-
- ing the minimum or maximum value in any of the forms
- acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The default is true.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>spinint</STRONG> command creates a spinint widget. The spinint
- allows "spinning" of integer values within a specified range
- with wrap support. The spinner arrows may be drawn horizon-
- tally or vertically.
-
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>spinint</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for spinint widg-
- ets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>delete</STRONG> <STRONG>get</STRONG> <STRONG>icursor</STRONG> <STRONG>index</STRONG>
- <STRONG>insert</STRONG> <STRONG>peek</STRONG> <STRONG>scan</STRONG> <STRONG>selection</STRONG>
- <STRONG>xview</STRONG>
-
- See the "entry" manual entry for details on the associated
- methods.
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>childsite</STRONG> <STRONG>clear</STRONG>
-
-
- See the "entryfield" manual entry for details on the associ-
- ated methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>spinint</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>spinint</STRONG> command.
-
- <EM>pathName</EM> <STRONG>down</STRONG>
- Decrement the spinner value by the value given in the
- step option.
-
- <EM>pathName</EM> <STRONG>up</STRONG>
- Increment the spinner value by the value given in the
- step option.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- See the "Spinner" widget manual entry for details on
- the integer spinner component items.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground white
-
- spinint .si -labeltext "Temperature" -labelpos w \
- -fixed yes -width 5 -range {32 212}
-
- pack .si -pady 10
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Sue Yockey
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- spinint, widget
-</PRE>
-</BODY>
-</HTML>
+<TITLE>spinint - Create and manipulate a integer spinner widget</TITLE>
+<H1>spinint - Create and manipulate a integer spinner widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>spinint<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Spinner &lt;- Spinint
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>justify</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>relief</B><br>
+<B>textVariable</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>state</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>command</B><br>
+<B>invalid</B><br>
+<B>width</B><br>
+</td>
+<td valign=top>
+<B>childSitePos</B><br>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>fixed</B><br>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>focusCommand</B><br>
+<B>validate</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>arroworient</B><br>
+<B>repeatInterval</B><br>
+</td>
+<td valign=top>
+<B>decrement</B><br>
+</td>
+<td valign=top>
+<B>increment</B><br>
+</td>
+<td valign=top>
+<B>repeatDelay</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="spinner.n.html"> "spinner" </A> widget manual entry for details on the above
+inherited options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>range</B>
+Class: <B>Range</B>
+Command-Line Switch: <B>-range</B>
+</pre>
+<UL>
+Specifies a two element list of minimum and maximum integer values. The
+default is no range, {{} {}}.
+</UL>
+<P>
+<pre>
+Name: <B>step</B>
+Class: <B>Step</B>
+Command-Line Switch: <B>-step</B>
+</pre>
+<UL>
+Specifies the increment/decrement value. The default is 1.
+</UL>
+<P>
+<pre>
+Name: <B>wrap</B>
+Class: <B>Wrap</B>
+Command-Line Switch: <B>-wrap</B>
+</pre>
+<UL>
+Specifies whether to wrap the spinner value upon reaching the minimum
+or maximum value in any of the forms acceptable to <B>Tcl_GetBoolean</B>.
+The default is true.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>spinint</B> command creates a spinint widget. The spinint allows
+"spinning" of integer values within a specified range with wrap support.
+The spinner arrows may be drawn horizontally or vertically.
+</pre>
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>spinint</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for spinint widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>delete</B><br>
+<B>insert</B><br>
+<B>xview</B><br>
+</td>
+<td valign=top>
+<B>get</B><br>
+<B>peek</B><br>
+</td>
+<td valign=top>
+<B>icursor</B><br>
+<B>scan</B><br>
+</td>
+<td valign=top>
+<B>index</B><br>
+<B>selection</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+<B>clear</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> manual entry for details on the associated methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>spinint</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>spinint</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>down</B>
+</I></B>
+<DD> Decrement the spinner value by the value given in the step option.
+</DL>
+<DL>
+<DT> <I>pathName <B>up</B>
+</I></B>
+<DD> Increment the spinner value by the value given in the step option.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<UL>
+See the "Spinner" widget manual entry for details on the integer spinner
+component items.
+
+</UL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ option add *textBackground white
+
+ spinint .si -labeltext "Temperature" -labelpos w \\
+ -fixed yes -width 5 -range {32 212}
+
+ pack .si -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:syockey@spd.dsccc.com">Sue Yockey</A>
+</pre><H2>KEYWORDS</H2>
+spinint, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/spinner.n.html b/itcl/iwidgets3.0.0/demos/html/spinner.n.html
index 005ac298062..d37fa8fcab7 100644
--- a/itcl/iwidgets3.0.0/demos/html/spinner.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/spinner.n.html
@@ -1,258 +1,308 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - spinner</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - spinner</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- spinner - Create and manipulate a spinner widget
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>spinner</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Labeledwidget &lt;- Spinner
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>borderWidth</STRONG> <STRONG>cursor</STRONG> <STRONG>exportSelection</STRONG>
- <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG> <STRONG>highlightThicknessinsertBackground</STRONG>
- <STRONG>insertBorderWidth</STRONG> <STRONG>insertOffTime</STRONG> <STRONG>insertOnTimeinsertWidth</STRONG>
- <STRONG>justify</STRONG> <STRONG>relief</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG> <STRONG>textVariable</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>show</STRONG> <STRONG>state</STRONG>
-
- See the "entry" manual entry for details on the associated
- options.
-
-
-</PRE>
-<H2>INHERITED OPTIONS</H2><PRE>
- <STRONG>childSitePos</STRONG> <STRONG>command</STRONG> <STRONG>fixed</STRONG> <STRONG>focusCommand</STRONG>
- <STRONG>invalid</STRONG> <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG> <STRONG>validate</STRONG>
- <STRONG>width</STRONG>
-
- See the "entryfield" widget manual entry for details on the
- above inherited options.
-
- <STRONG>labelBitmap</STRONG> <STRONG>labelFont</STRONG> <STRONG>labelImage</STRONG> <STRONG>labelMargin</STRONG>
- <STRONG>labelPos</STRONG> <STRONG>labelText</STRONG> <STRONG>labelVariable</STRONG>
-
- See the "labeledwidget" widget manual entry for details on
- the above inherited options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>arrowOrient</STRONG>
- Class: <STRONG>Orient</STRONG>
- Command-Line Switch: <STRONG>-arroworient</STRONG>
-
- Specifies placement of arrow buttons: <STRONG>horizontal</STRONG> or
- <STRONG>vertical</STRONG>. The default is vertical.
-
- Name: <STRONG>decrement</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-decrement</STRONG>
- Tcl command to be executed when down arrow is pressed.
-
- Name: <STRONG>increment</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-increment</STRONG>
-
- Tcl command to be executed when up arrow is pressed.
-
- Name: <STRONG>repeatDelay</STRONG>
- Class: <STRONG>RepeatDelay</STRONG>
- Command-Line Switch: <STRONG>-repeatdelay</STRONG>
-
- Specifies the initial delay in milliseconds before the
- spinner repeat action on the arrow buttons engages.
- The default is 300 milliseconds.
-
- Name: <STRONG>repeatInterval</STRONG>
- Class: <STRONG>RepeatInterval</STRONG>
- Command-Line Switch: <STRONG>-repeatinterval</STRONG>
-
- Specifies the repeat delay in milliseconds between
- selections of the arrow buttons. A repeatinterval of 0
- disables button repeat. The default is 100 mil-
- liseconds.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>spinner</STRONG> command creates a spinner widget. The spinner
- is comprised of an entryfield plus up and down arrow but-
- tons. Arrows may be drawn horizontally or vertically.
-
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>spinner</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for spinner widg-
- ets:
-
-
-</PRE>
-<H2>ASSOCIATED METHODS</H2><PRE>
- <STRONG>delete</STRONG> <STRONG>get</STRONG> <STRONG>icursor</STRONG> <STRONG>index</STRONG>
- <STRONG>insert</STRONG> <STRONG>scan</STRONG> <STRONG>selection</STRONG> <STRONG>xview</STRONG>
-
- See the "entry" manual entry for details on the associated
- methods.
-
-
-</PRE>
-<H2>INHERITED METHODS</H2><PRE>
- <STRONG>childsite</STRONG> <STRONG>clear</STRONG> <STRONG>peek</STRONG>
-
- See the "entryfield" manual entry for details on the associ-
- ated methods.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>spinner</STRONG> command.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>spinner</STRONG> command.
-
- <EM>pathName</EM> <STRONG>down</STRONG>
- Derived classes may overload this method to specialize
- functionality.
-
- <EM>pathName</EM> <STRONG>up</STRONG>
- Derived classes may overload this method to specialize
- functionality.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>downarrow</STRONG>
- Class: <STRONG>Canvas</STRONG>
-
- The downarrow component is the downward pointing button
- of the spinner. See the "canvas" widget manual entry
- for details on the downarrow component item.
-
- Name: <STRONG>uparrow</STRONG>
- Class: <STRONG>Canvas</STRONG>
-
- The uparrow component is the upward pointing button of
- the spinner. See the "canvas" widget manual entry for
- details on the uparrow component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- option add *textBackground GhostWhite
-
- set months {January February March April May June July \
- August September October November December}
-
- proc blockInput {char} {
- return 0
- }
-
- proc spinMonth {step} {
- global months
-
- set index [expr [lsearch $months [.sm get]] + $step]
-
- if {$index &lt; 0} {set index 11}
- if {$index &gt; 11} {set index 0}
-
- .sm delete 0 end
- .sm insert 0 [lindex $months $index]
- }
-
- spinner .sm -labeltext "Month : " -width 10 -fixed 10 -validate blockInput \
- -decrement {spinMonth -1} -increment {spinMonth 1}
- .sm insert 0 January
-
- pack .sm -padx 10 -pady 10
-
-
-
-</PRE>
-<H2>ACKNOWLEDGEMENTS:</H2><PRE>
- Ken Copeland &lt;ken@hilco.com&gt;
-
- 10/18/95 - Added auto-repeat action to spinner arrow
- buttons.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Sue Yockey
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- spinner, widget
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>spinner - Create and manipulate a spinner widget</TITLE>
+<H1>spinner - Create and manipulate a spinner widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>spinner<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Labeledwidget &lt;- Spinner
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>insertBorderWidth</B><br>
+<B>justify</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>insertOffTime</B><br>
+<B>relief</B><br>
+<B>textVariable</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+<B>insertOnTime</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+<B>insertWidth</B><br>
+<B>selectBorderWidth</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>show</B><br>
+</td>
+<td valign=top>
+<B>state</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childSitePos</B><br>
+<B>invalid</B><br>
+<B>width</B><br>
+</td>
+<td valign=top>
+<B>command</B><br>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>fixed</B><br>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>focusCommand</B><br>
+<B>validate</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> widget manual entry for details on the above
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> widget manual entry for details on the above
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>arrowOrient</B>
+Class: <B>Orient</B>
+Command-Line Switch: <B>-arroworient</B>
+</pre>
+<UL>
+Specifies placement of arrow buttons: <B>horizontal</B> or <B>vertical</B>.
+The default is vertical.
+</UL>
+<P>
+<pre>
+Name: <B>decrement</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-decrement</B>
+</pre>
+<UL>
+Tcl command to be executed when down arrow is pressed.
+</UL>
+<P>
+<pre>
+Name: <B>increment</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-increment</B>
+</pre>
+<UL>
+Tcl command to be executed when up arrow is pressed.
+</UL>
+<P>
+<pre>
+Name: <B>repeatDelay</B>
+Class: <B>RepeatDelay</B>
+Command-Line Switch: <B>-repeatdelay</B>
+</pre>
+<UL>
+Specifies the initial delay in milliseconds before the spinner repeat action
+on the arrow buttons engages. The default is 300 milliseconds.
+</UL>
+<P>
+<pre>
+Name: <B>repeatInterval</B>
+Class: <B>RepeatInterval</B>
+Command-Line Switch: <B>-repeatinterval</B>
+</pre>
+<UL>
+Specifies the repeat delay in milliseconds between selections of the arrow
+buttons. A repeatinterval of 0 disables button repeat. The default is
+100 milliseconds.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>spinner</B> command creates a spinner widget. The spinner is
+comprised of an entryfield plus up and down arrow buttons.
+Arrows may be drawn horizontally or vertically.
+</pre>
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>spinner</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for spinner widgets:
+</pre><H2>ASSOCIATED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>delete</B><br>
+<B>insert</B><br>
+</td>
+<td valign=top>
+<B>get</B><br>
+<B>scan</B><br>
+</td>
+<td valign=top>
+<B>icursor</B><br>
+<B>selection</B><br>
+</td>
+<td valign=top>
+<B>index</B><br>
+<B>xview</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> manual entry for details on the associated methods.
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>childsite</B><br>
+</td>
+<td valign=top>
+<B>clear</B><br>
+</td>
+<td valign=top>
+<B>peek</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> manual entry for details on the associated methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>spinner</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>spinner</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>down</B>
+</I></B>
+<DD> Derived classes may overload this method to specialize functionality.
+</DL>
+<DL>
+<DT> <I>pathName <B>up</B>
+</I></B>
+<DD> Derived classes may overload this method to specialize functionality.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>downarrow</B>
+Class: <B>Canvas</B>
+</pre>
+<UL>
+The downarrow component is the downward pointing button of the spinner. See
+the "canvas" widget manual entry for details on the downarrow component item.
+</UL>
+<P>
+<pre>
+Name: <B>uparrow</B>
+Class: <B>Canvas</B>
+</pre>
+<UL>
+The uparrow component is the upward pointing button of the spinner. See
+the "canvas" widget manual entry for details on the uparrow component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ set months {January February March April May June July \\
+ August September October November December}
+
+ proc blockInput {char} {
+ return 0
+ }
+
+ proc spinMonth {step} {
+ global months
+
+ set index [expr [lsearch $months [.sm get]] + $step]
+
+ if {$index &lt; 0} {set index 11}
+ if {$index &gt; 11} {set index 0}
+
+ .sm delete 0 end
+ .sm insert 0 [lindex $months $index]
+ }
+
+ spinner .sm -labeltext "Month : " -width 10 -fixed 10 -validate blockInput \\
+ -decrement {spinMonth -1} -increment {spinMonth 1}
+ .sm insert 0 January
+
+ pack .sm -padx 10 -pady 10
+</pre>
+</pre><H2>ACKNOWLEDGEMENTS:</H2>
+<P>
+Ken Copeland &lt;ken@hilco.com&gt;
+<UL>
+10/18/95 - Added auto-repeat action to spinner arrow buttons.
+</UL>
+<P>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:syockey@spd.dsccc.com">Sue Yockey</A>
+</pre><H2>KEYWORDS</H2>
+spinner, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/spintime.n.html b/itcl/iwidgets3.0.0/demos/html/spintime.n.html
index 3e9a8b4613f..2cdd37a15bf 100644
--- a/itcl/iwidgets3.0.0/demos/html/spintime.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/spintime.n.html
@@ -1,301 +1,604 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - spintime</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - spintime</H1>
-<HR>
-<PRE>
+<TITLE>spintime - Create and manipulate time spinner widgets</TITLE>
+<H1>spintime - Create and manipulate time spinner widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>spintime<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Spintime
+
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>relief</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+<td valign=top>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="entryfield.n.html"> "entryfield" </A> manual entry for details on the above associated options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>labelFont</B><br>
+</td>
+<td valign=top>
+<B>labelMargin</B><br>
+</td>
+<td valign=top>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> manual entry for details on the above associated
+options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>arrowOrient</B><br>
+</td>
+<td valign=top>
+<B>repeatDelay</B><br>
+</td>
+<td valign=top>
+<B>repeatInterval</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the <A HREF="spinner.n.html"> "spinner" </A> manual entry for details on the above associated options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>labelPos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-labelpos</B>
+</pre>
+<UL>
+Specifies the position of the label along the sides of the various
+spinners: <B>n</B>, <B>e</B>, <B>s</B>, or <B>w</B>. The default is w.
+</UL>
+<P>
+<pre>
+Name: <B>hourLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-hourlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the hour spinner. The default is "Hour".
+</UL>
+<P>
+<pre>
+Name: <B>hourOn</B>
+Class: <B>hourOn</B>
+Command-Line Switch: <B>-houron</B>
+</pre>
+<UL>
+Specifies whether or not to display the hour spinner in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>hourWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-hourwidth</B>
+</pre>
+<UL>
+Specifies the width of the hour spinner in any of the forms acceptable to
+<B>Tcl_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>militaryOn</B>
+Class: <B>militaryOn</B>
+Command-Line Switch: <B>-militaryon</B>
+</pre>
+<UL>
+Specifies use of a 24 hour clock for hour display in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>minuteLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-minutelabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the minute spinner. The default is
+"Minute".
+</UL>
+<P>
+<pre>
+Name: <B>minuteOn</B>
+Class: <B>minuteOn</B>
+Command-Line Switch: <B>-minuteon</B>
+</pre>
+<UL>
+Specifies whether or not to display the minute spinner in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>minuteWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-minutewidth</B>
+</pre>
+<UL>
+Specifies the width of the minute spinner in any of the forms acceptable to
+<B>Tcl_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>orient</B>
+Class: <B>Orient</B>
+Command-Line Switch: <B>-orient</B>
+</pre>
+<UL>
+Specifies the orientation of the hour, minute, and second spinners: <B>vertical</B> or <B>horizontal</B>. The default is horizontal.
+</UL>
+<P>
+<pre>
+Name: <B>secondLabel</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-secondlabel</B>
+</pre>
+<UL>
+Specifies the text of the label for the second spinner. The default is
+"Second"
+</UL>
+<P>
+<pre>
+Name: <B>secondOn</B>
+Class: <B>secondOn</B>
+Command-Line Switch: <B>-secondon</B>
+</pre>
+<UL>
+Specifies whether or not to display the second spinner in any of the forms
+acceptable to <B>Tcl_GetBoolean</B>. The default is true.
+</UL>
+<P>
+<pre>
+Name: <B>secondWidth</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-secondwidth</B>
+</pre>
+<UL>
+Specifies the width of the second spinner in any of the forms acceptable to
+<B>Tcl_GetPixels</B>. The default is 3 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>timeMargin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-timemargin</B>
+</pre>
+<UL>
+Specifies the margin space between the hour, minute, and second spinners is
+any of the forms accpetable to <B>Tcl_GetPixels</B>. The default is 1 pixel.
+</UL>
+<P>
+<table cellpadding=5>
+<td valign=top>
+</pre><HR><br>
+<B>spintime</B><br>
+set<br>
+use<br>
+entry.<br>
+an<br>
+second<br>
+<P><br>
+creates<br>
+command<br>
+<I>pathName</I>.<br>
+be<br>
+various<br>
+widget.<br>
+following<br>
+<I>pathName<br>
+...</I>?<br>
+the<br>
+exact<br>
+command.<br>
+are<br>
+widgets:<br>
+<DT><br>
+</I></B><br>
+current<br>
+configuration<br>
+<I>option</I>.<br>
+any<br>
+accepted<br>
+command.<br>
+<I>pathName</I><br>
+option<br>
+<DD><br>
+the<br>
+the<br>
+<I>option</I><br>
+a<br>
+of<br>
+for<br>
+for<br>
+format<br>
+If<br>
+with<br>
+the<br>
+list<br>
+named<br>
+will<br>
+the<br>
+the<br>
+no<br>
+If<br>
+<I>option-value</I><br>
+then<br>
+the<br>
+to<br>
+value(s);<br>
+the<br>
+empty<br>
+have<br>
+values<br>
+<B>spintime</B><br>
+<DT><br>
+</I></B><br>
+current<br>
+spintime<br>
+format<br>
+as<br>
+value<br>
+and<br>
+respectively.<br>
+by<br>
+clock<br>
+information<br>
+and<br>
+<DL><br>
+<I>time</I><br>
+the<br>
+to<br>
+the<br>
+time<br>
+either<br>
+an<br>
+or<br>
+Reference<br>
+for<br>
+obtaining<br>
+format.<br>
+<table><br>
+<B>Spinint</B><br>
+</td>
+<td valign=top>
+</pre><H2>DESCRIPTION</H2><br>
+command<br>
+of<br>
+in<br>
+The<br>
+hour,<br>
+spinner<br>
+The<br>
+a<br>
+whose<br>
+This<br>
+used<br>
+operations<br>
+It<br>
+general<br>
+option<br>
+</pre><br>
+<I>arg</I>s<br>
+behavior<br>
+The<br>
+possible<br>
+</pre><H2>WIDGET-SPECIFIC<br>
+<I>pathName<br>
+<DD><br>
+value<br>
+option<br>
+<I>Option</I><br>
+of<br>
+by<br>
+</DL><br>
+<B>configure</B><br>
+value<br>
+Query<br>
+configuration<br>
+widget.<br>
+is<br>
+list<br>
+the<br>
+<I>pathName</I><br>
+information<br>
+of<br>
+<I>option</I><br>
+no<br>
+command<br>
+describing<br>
+option<br>
+be<br>
+corresponding<br>
+value<br>
+<I>option</I><br>
+one<br>
+pairs<br>
+the<br>
+given<br>
+have<br>
+in<br>
+command<br>
+string.<br>
+any<br>
+accepted<br>
+command.<br>
+<I>pathName<br>
+<DD><br>
+contents<br>
+widget<br>
+of<br>
+an<br>
+using<br>
+<B>-clicks</B><br>
+The<br>
+string.<br>
+command<br>
+on<br>
+its<br>
+<DT><br>
+</I></B><br>
+currently<br>
+be<br>
+time<br>
+may<br>
+as<br>
+integer<br>
+the<br>
+the<br>
+more<br>
+times<br>
+</DL><br>
+Name:<br>
+</td>
+<td valign=top>
+<P><br>
+creates<br>
+spinners<br>
+time<br>
+set<br>
+minute,<br>
+widget.<br>
+<B>spintime</B><br>
+new<br>
+name<br>
+command<br>
+to<br>
+on<br>
+has<br>
+form:<br>
+</I>?<I>arg<br>
+<I>Option</I><br>
+determine<br>
+of<br>
+following<br>
+for<br>
+METHODS</H2><br>
+<B>cget</B><br>
+Returns<br>
+of<br>
+given<br>
+may<br>
+the<br>
+the<br>
+<DL><br>
+?<I>option</I>?<br>
+...</I>?<br>
+or<br>
+options<br>
+If<br>
+specified,<br>
+describing<br>
+available<br>
+(see<br>
+on<br>
+this<br>
+is<br>
+<I>value</I>,<br>
+returns<br>
+the<br>
+(this<br>
+identical<br>
+sublist<br>
+returned<br>
+is<br>
+or<br>
+are<br>
+command<br>
+widget<br>
+the<br>
+this<br>
+returns<br>
+<I>Option</I><br>
+of<br>
+by<br>
+</DL><br>
+<B>get</B><br>
+Returns<br>
+of<br>
+in<br>
+string<br>
+integer<br>
+the<br>
+format<br>
+default<br>
+Reference<br>
+for<br>
+obtaining<br>
+formats.<br>
+<I>pathName<br>
+<DD><br>
+displayed<br>
+that<br>
+argument.<br>
+be<br>
+a<br>
+clock<br>
+keyword<br>
+clock<br>
+information<br>
+and<br>
+</pre><H2>COMPONENTS</H2><br>
+<B>hour</B><br>
+</td>
+<td valign=top>
+The<br>
+a<br>
+for<br>
+value<br>
+includes<br>
+and<br>
+</pre><H2>METHODS</H2><br>
+command<br>
+Tcl<br>
+is<br>
+may<br>
+invoke<br>
+the<br>
+the<br>
+<pre><br>
+arg<br>
+and<br>
+the<br>
+the<br>
+commands<br>
+spintime<br>
+<DL><br>
+<I>option</I><br>
+the<br>
+the<br>
+by<br>
+have<br>
+values<br>
+<B>spintime</B><br>
+<DT><br>
+?<I>value<br>
+</I></B><br>
+modify<br>
+of<br>
+no<br>
+returns<br>
+all<br>
+options<br>
+<B>Tk_ConfigureInfo</B><br>
+the<br>
+list).<br>
+specified<br>
+then<br>
+a<br>
+one<br>
+list<br>
+to<br>
+of<br>
+if<br>
+specified).<br>
+more<br>
+specified,<br>
+modifies<br>
+option(s)<br>
+given<br>
+case<br>
+an<br>
+may<br>
+the<br>
+the<br>
+<DL><br>
+?<B>format</B>?<br>
+the<br>
+the<br>
+a<br>
+or<br>
+clock<br>
+<B>-string</B><br>
+options<br>
+is<br>
+the<br>
+more<br>
+time<br>
+</DL><br>
+<B>show</B><br>
+Changes<br>
+time<br>
+of<br>
+The<br>
+specified<br>
+string,<br>
+value<br>
+"now".<br>
+command<br>
+on<br>
+its<br>
+<P><br>
+Class:<br>
+</td>
+</table>
+<UL>
+The hour component is the hour spinner of the time spinner. See the
+SpinInt widget manual entry for details on the hour component item.
+</UL>
+<P>
+<pre>
+Name: <B>minute</B>
+Class: <B>Spinint</B>
+</pre>
+<UL>
+The minute component is the minute spinner of the time spinner. See
+the SpinInt widget manual entry for details on the minute component item.
+</UL>
+<P>
+<pre>
+Name: <B>second</B>
+Class: <B>Spinint</B>
+</pre>
+<UL>
+The second component is the second spinner of the time spinner. See the
+SpinInt widget manual entry for details on the second component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+spintime .st
+pack .st -padx 10 -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:syockey@spd.dsccc.com">Sue Yockey</A>
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+spintime, spinint, spinner, entryfield, entry, widget
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- spintime - Create and manipulate time spinner widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>spintime</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- Spintime
-
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>cursor</STRONG> <STRONG>foreground</STRONG> <STRONG>highlightColor</STRONG>
- <STRONG>highlightThickness</STRONG> <STRONG>relief</STRONG> <STRONG>selectBackgroundselectBorderWidth</STRONG>
- <STRONG>selectForeground</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>ASSOCIATED OPTIONS</H2><PRE>
- <STRONG>textBackground</STRONG> <STRONG>textFont</STRONG>
-
- See the "entryfield" manual entry for details on the above
- associated options.
-
- <STRONG>labelFont</STRONG> <STRONG>labelMargin</STRONG>
-
- See the "labeledwidget" manual entry for details on the
- above associated options.
-
- <STRONG>step</STRONG>
-
- See the "spinint" manual entry for details on the above
- associated options.
-
- <STRONG>arrowOrient</STRONG> <STRONG>repeatDelay</STRONG> <STRONG>repeatInterval</STRONG>
-
- See the "spinner" manual entry for details on the above
- associated options.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>labelPos</STRONG>
- Class: <STRONG>Position</STRONG>
- Command-Line Switch: <STRONG>-labelpos</STRONG>
-
- Specifies the position of the label along the sides of
- the various spinners: <STRONG>n</STRONG>, <STRONG>e</STRONG>, <STRONG>s</STRONG>, or <STRONG>w</STRONG>. The default is w.
-
- Name: <STRONG>hourLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-hourlabel</STRONG>
-
- Specifies the text of the label for the hour spinner.
- The default is "Hour".
-
- Name: <STRONG>hourOn</STRONG>
- Class: <STRONG>hourOn</STRONG>
- Command-Line Switch: <STRONG>-houron</STRONG>
-
- Specifies whether or not to display the hour spinner in
- any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>hourWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-hourwidth</STRONG>
-
- Specifies the width of the hour spinner in any of the
- forms acceptable to <STRONG>Tcl_GetPixels</STRONG>. The default is 3
- pixels.
-
- Name: <STRONG>militaryOn</STRONG>
- Class: <STRONG>militaryOn</STRONG>
- Command-Line Switch: <STRONG>-militaryon</STRONG>
-
- Specifies use of a 24 hour clock for hour display in
- any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>minuteLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-minutelabel</STRONG>
-
- Specifies the text of the label for the minute spinner.
- The default is "Minute".
-
- Name: <STRONG>minuteOn</STRONG>
- Class: <STRONG>minuteOn</STRONG>
- Command-Line Switch: <STRONG>-minuteon</STRONG>
-
- Specifies whether or not to display the minute spinner
- in any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>minuteWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-minutewidth</STRONG>
-
- Specifies the width of the minute spinner in any of the
- forms acceptable to <STRONG>Tcl_GetPixels</STRONG>. The default is 3
- pixels.
-
- Name: <STRONG>orient</STRONG>
- Class: <STRONG>Orient</STRONG>
- Command-Line Switch: <STRONG>-orient</STRONG>
-
- Specifies the orientation of the hour, minute, and
- second spinners: <STRONG>vertical</STRONG> or <STRONG>horizontal</STRONG>. The default
- is horizontal.
-
- Name: <STRONG>secondLabel</STRONG>
- Class: <STRONG>Text</STRONG>
- Command-Line Switch: <STRONG>-secondlabel</STRONG>
-
- Specifies the text of the label for the second spinner.
- The default is "Second"
-
- Name: <STRONG>secondOn</STRONG>
- Class: <STRONG>secondOn</STRONG>
- Command-Line Switch: <STRONG>-secondon</STRONG>
-
- Specifies whether or not to display the second spinner
- in any of the forms acceptable to <STRONG>Tcl_GetBoolean</STRONG>. The
- default is true.
-
- Name: <STRONG>secondWidth</STRONG>
- Class: <STRONG>Width</STRONG>
- Command-Line Switch: <STRONG>-secondwidth</STRONG>
-
- Specifies the width of the second spinner in any of the
- forms acceptable to <STRONG>Tcl_GetPixels</STRONG>. The default is 3
- pixels.
-
- Name: <STRONG>timeMargin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-timemargin</STRONG>
-
- Specifies the margin space between the hour, minute,
- and second spinners is any of the forms accpetable to
- <STRONG>Tcl_GetPixels</STRONG>. The default is 1 pixel.
-
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>spintime</STRONG> command creates a set of spinners for use in
- time value entry. The set includes an hour, minute, and
- second spinner widget.
-
-
-
-</PRE>
-<H2>METHODS</H2><PRE>
- The <STRONG>spintime</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>Option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand. The following commands are possible for spintime widg-
- ets:
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>. <EM>Option</EM> may have any of the values
- accepted by the <STRONG>spintime</STRONG> command.
-
- <EM>pathName</EM> <STRONG>clear</STRONG>
- Delete the contents of all spinner components.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If <EM>option</EM> is specified with no <EM>value</EM>, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no <EM>option</EM> is
- specified). If one or more <EM>option</EM> - <EM>value</EM> pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any
- of the values accepted by the <STRONG>spintime</STRONG> command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>component</EM> <EM>first</EM> ?<EM>last</EM>?
- Delete one or more characters of the specified <EM>com-</EM>
- <EM>ponent</EM>, where <EM>component</EM> can be <STRONG>hour</STRONG>, <STRONG>minute</STRONG>, or <STRONG>second</STRONG>.
- <EM>First</EM> is the index of the first character to delete,
- and <EM>last</EM> is the index of the character just after the
- last one to delete.
-
- <EM>pathName</EM> <STRONG>get</STRONG> ?<EM>component</EM>?
- Get returns the value for the speicifed component:
- <STRONG>hour</STRONG>, <STRONG>minute</STRONG>, or <STRONG>second</STRONG>. Without parameters the com-
- mand returns the all three values as a list.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>component</EM> <EM>index</EM> <EM>string</EM>
- Inserts the characters of <EM>string</EM> just before the char-
- acter indicated by <EM>index</EM> in the <EM>component</EM>, where <EM>com-</EM>
- <EM>ponent</EM> can be <STRONG>hour</STRONG>, <STRONG>minute</STRONG>, or <STRONG>second</STRONG>.
-
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Name: <STRONG>hour</STRONG>
- Class: <STRONG>Spinint</STRONG>
- The hour component is the hour spinner of the time
- spinner. See the SpinInt widget manual entry for
- details on the hour component item.
-
- Name: <STRONG>minute</STRONG>
- Class: <STRONG>Spinint</STRONG>
-
- The minute component is the minute spinner of the time
- spinner. See the SpinInt widget manual entry for
- details on the minute component item.
-
- Name: <STRONG>second</STRONG>
- Class: <STRONG>Spinint</STRONG>
-
- The second component is the second spinner of the time
- spinner. See the SpinInt widget manual entry for
- details on the second component item.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- spintime .st
- pack .st -padx 10 -pady 10
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Sue Yockey
-
- Mark L. Ulferts
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- spintime, spinint, spinner, entryfield, entry, widget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
diff --git a/itcl/iwidgets3.0.0/demos/html/tabnotebook.n.html b/itcl/iwidgets3.0.0/demos/html/tabnotebook.n.html
index c900fff8685..97064a914dc 100644
--- a/itcl/iwidgets3.0.0/demos/html/tabnotebook.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/tabnotebook.n.html
@@ -1,770 +1,860 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - tabnotebook</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - tabnotebook</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- tabnotebook - create and manipulate tabnotebook widgets
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>tabnotebook</STRONG> <EM>pathName</EM>? <EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- tabnotebook
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>disabledForeground</STRONG> <STRONG>foregroundscrollCommand</STRONG>
- <STRONG>cursor</STRONG> <STRONG>font</STRONG> <STRONG>height</STRONG> <STRONG>width</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>angle</STRONG>
- Class: <STRONG>Angle</STRONG>
- Command-Line Switch: <STRONG>-angle</STRONG>
-
- Specifes the angle of slope from the inner edge to the
- outer edge of the tab. An angle of 0 specifies square
- tabs. Valid ranges are 0 to 45 degrees inclusive.
- Default is 15 degrees. If <STRONG>tabPos</STRONG> is e or w, this option
- is ignored.
-
- Name: <STRONG>auto</STRONG>
- Class: <STRONG>Auto</STRONG>
- Command-Line Switch: <STRONG>-auto</STRONG>
-
- Specifies whether to use the automatic
- packing/unpacking algorithm of the notebook. A value of
- true indicates that page frames will be unpacked and
- packed acoording to the algorithm described in the
- select command. A value of <STRONG>false</STRONG> leaves the current
- page packed and subsequent <STRONG>selects</STRONG>, <STRONG>next</STRONG>, or <STRONG>previous</STRONG>
- commands do not switch pages automatically. In either
- case the page's associated command (see the <STRONG>add</STRONG>
- command's description of the command option) is
- invoked. The value may have any of the forms accepted
- by the <STRONG>Tcl_GetBoolean</STRONG>, such as <STRONG>true</STRONG>, <STRONG>false</STRONG>, <STRONG>0</STRONG>, <STRONG>1</STRONG>, <STRONG>yes</STRONG>,
- or <STRONG>no</STRONG>.
-
- Name: <STRONG>backdrop</STRONG>
- Class: <STRONG>Backdrop</STRONG>
- Command-Line Switch: <STRONG>-backdrop</STRONG>
-
- Specifies a background color to use when filling in the
- backdrop area behind the tabs.
-
- Name: <STRONG>background</STRONG>
- Class: <STRONG>Background</STRONG>
- Command-Line Switch: <STRONG>-background</STRONG>
-
- Specifies a background color to use for displaying a
- page and its associated tab. This can be thought of as
- the selected tab background color, since the tab asso-
- ciated with the selected page is the selected tab.
-
- Name: <STRONG>bevelAmount</STRONG>
- Class: <STRONG>BevelAmount</STRONG>
- Command-Line Switch: <STRONG>-bevelamount</STRONG>
-
- Specifes the size of tab corners. A value of 0 with
- <STRONG>angle</STRONG> set to 0 results in square tabs. A <STRONG>bevelAmount</STRONG> of
- 4, means that the tab will be drawn with angled corners
- that cut in 4 pixels from the edge of the tab. The
- default is 0.
-
- Name: <STRONG>borderWidth</STRONG>
- Class: <STRONG>BorderWidth</STRONG>
- Command-Line Switch: <STRONG>-borderwidth</STRONG>
-
- Specifies the width of shadowed border to place around
- the notebook area of the tabnotebook. The default value
- is 2.
-
- Name: <STRONG>disabledForeground</STRONG>
- Class: <STRONG>DisabledForeground</STRONG>
- Command-Line Switch: <STRONG>-disabledforeground</STRONG>
-
- Specifies a foreground color to use for displaying a
- tab's label when its <STRONG>state</STRONG> is disabled.
-
- Name: <STRONG>equalTabs</STRONG>
- Class: <STRONG>EqualTabs</STRONG>
- Command-Line Switch: <STRONG>-equaltabs</STRONG>
-
- Specifies whether to force tabs to be equal sized or
- not. A value of <STRONG>true</STRONG> means constrain tabs to be equal
- sized. A value of <STRONG>false</STRONG> allows each tab to size based
- on the text label size. The value may have any of the
- forms accepted by the <STRONG>Tcl_GetBoolean</STRONG>, such as <STRONG>true</STRONG>,
- <STRONG>false</STRONG>, <STRONG>0</STRONG>, <STRONG>1</STRONG>, <STRONG>yes</STRONG>, or <STRONG>no</STRONG>.
-
- For horizontally positioned tabs (<STRONG>tabpos</STRONG> is either <STRONG>s</STRONG> or
- <STRONG>n</STRONG>), <STRONG>true</STRONG> forces all tabs to be equal width (the width
- being equal to the longest label plus any <STRONG>padX</STRONG> speci-
- fied). Horizontal tabs are always equal in height.
-
- For vertically positioned tabs (<STRONG>tabpos</STRONG> is either <STRONG>w</STRONG> or
- <STRONG>e</STRONG>), <STRONG>true</STRONG> forces all tabs to be equal height (the height
- being equal to the height of the label with the largest
- font). Vertically oriented tabs are always equal in
- width.
-
- Name: <STRONG>foreground</STRONG>
- Class: <STRONG>Foreground</STRONG>
- Command-Line Switch: <STRONG>-foreground</STRONG>
-
- Specifies a foreground color to use for displaying a
- page and its associated tab label. This can be thought
- of as the selected tab background color, since the tab
- associated with the selected page is the selected tab.
-
- Name: <STRONG>gap</STRONG>
- Class: <STRONG>Gap</STRONG>
- Command-Line Switch: <STRONG>-gap</STRONG>
-
- Specifies the amount of pixel space to place between
- each tab. Value may be any pixel offset value. In addi-
- tion, a special keyword <STRONG>overlap</STRONG> can be used as the
- value to achieve a standard overlap of tabs. This value
- may have any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>margin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-Bmargin</STRONG>
-
- Specifies the amount of space to place between the out-
- side edge of the tabnotebook and the outside edge of
- its tabs. If <STRONG>tabPos</STRONG> is <STRONG>s</STRONG>, this is the amount of space
- between the bottom edge of the tabnotebook and the bot-
- tom edge of the set of tabs. If <STRONG>tabPos</STRONG> is <STRONG>n</STRONG>, this is
- the amount of space between the top edge of the tab-
- notebook and the top edge of the set of tabs. If <STRONG>tabPos</STRONG>
- is <STRONG>e</STRONG>, this is the amount of space between the right
- edge of the tabnotebook and the right edge of the set
- of tabs. If <STRONG>tabPos</STRONG> is <STRONG>w</STRONG>, this is the amount of space
- between the left edge of the tabnotebook and the left
- edge of the set of tabs. This value may have any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>padX</STRONG>
- Class: <STRONG>PadX</STRONG>
- Command-Line Switch: <STRONG>-padx</STRONG>
-
- Specifies a non-negative value indicating how much
- extra space to request for a tab around its label in
- the X-direction. When computing how large a window it
- needs, the tab will add this amount to the width it
- would normally need The tab will end up with extra
- internal space to the left and right of its text label.
- This value may have any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>padY</STRONG>
- Class: <STRONG>PadY</STRONG>
- Command-Line Switch: <STRONG>-pady</STRONG>
-
- Specifies a non-negative value indicating how much
- extra space to request for a tab around its label in
- the Y-direction. When computing how large a window it
- needs, the tab will add this amount to the height it
- would normally need The tab will end up with extra
- internal space to the top and bottom of its text label.
- This value may have any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>raiseSelect</STRONG>
- Class: <STRONG>RaiseSelect</STRONG>
- Command-Line Switch: <STRONG>-raiseselect</STRONG>
-
- Specifes whether to slightly raise the selected tab
- from the rest of the tabs. The selected tab is drawn 2
- pixels closer to the outside of the tabnotebook than
- the unselected tabs. A value of <STRONG>true</STRONG> says to raise
- selected tabs, a value of <STRONG>false</STRONG> turns this feature off.
- The default is <STRONG>false</STRONG>. The value may have any of the
- forms accepted by the <STRONG>Tcl_GetBoolean</STRONG>, such as <STRONG>true</STRONG>,
- <STRONG>false</STRONG>, <STRONG>0</STRONG>, <STRONG>1</STRONG>, <STRONG>yes</STRONG>, or <STRONG>no</STRONG>.
-
- Name: <STRONG>start</STRONG>
- Class: <STRONG>Start</STRONG>
- Command-Line Switch: <STRONG>-start</STRONG>
-
- Specifies the amount of space to place between the left
- or top edge of the tabnotebook and the starting edge of
- its tabs. For horizontally positioned tabs, this is the
- amount of space between the left edge of the notebook
- and the left edge of the first tab. For vertically
- positioned tabs, this is the amount of space between
- the top of the notebook and the top of the first tab.
- This value may change if the user performs a MButton-2
- scroll on the tabs. This value may have any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>state</STRONG>
- Class: <STRONG>State</STRONG>
- Command-Line Switch: <STRONG>-state</STRONG>
-
- Sets the active state of the tabnotebook. Specifying
- <STRONG>normal</STRONG> allows all pages to be selectable. Specifying
- <STRONG>disabled</STRONG> disables the notebook causing all page tabs to
- be drawn in the <STRONG>disabledForeground</STRONG> color.
-
- Name: <STRONG>tabBackground</STRONG>
- Class: <STRONG>TabBackground</STRONG>
- Command-Line Switch: <STRONG>-tabbackground</STRONG>
-
- Specifies a background color to use for displaying tab
- backgrounds when they are in their unselected state.
- This is the background associated with tabs on all
- pages other than the selected page.
-
- Name: <STRONG>tabBorders</STRONG>
- Class: <STRONG>TabBorders</STRONG>
- Command-Line Switch: <STRONG>-tabborders</STRONG>
-
- Specifies whether to draw the borders of tabs that are
- not selected. Specifying <STRONG>true</STRONG> (the default) draws these
- borders, specifying <STRONG>false</STRONG> draws only the border around
- the selected tab. The value may have any of the forms
- accepted by the <STRONG>Tcl_GetBoolean</STRONG>, such as <STRONG>true</STRONG>, <STRONG>false</STRONG>, <STRONG>0</STRONG>,
- <STRONG>1</STRONG>, <STRONG>yes</STRONG>, or <STRONG>no</STRONG>.
-
- Name: <STRONG>tabForeground</STRONG>
- Class: <STRONG>TabForeground</STRONG>
- Command-Line Switch: <STRONG>-tabforeground</STRONG>
-
- Specifies a foreground color to use for displaying tab
- labels when they are in their unselected state. This is
- the foreground associated with tabs on all pages other
- than the selected page.
-
- Name: <STRONG>tabPos</STRONG>
- Class: <STRONG>TabPos</STRONG>
- Command-Line Switch: <STRONG>-tabpos</STRONG>
-
- Specifies the location of the set of tabs in relation
- to the notebook area. Must be n, s, e, or w. Defaults
- to s.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>tabnotebook</STRONG> command creates a new window (given by the
- pathName argument) and makes it into a <STRONG>tabnotebook</STRONG> widget.
- Additional options, described above may be specified on the
- command line or in the option database to configure aspects
- of the tabnotebook such as its colors, font, and text. The
- tabnotebook command returns its pathName argument. At the
- time this command is invoked, there must not exist a window
- named pathName, but pathName's parent must exist.
-
- A <STRONG>tabnotebook</STRONG> is a widget that contains a set of tabbed
- pages. It displays one page from the set as the selected
- page. A Tab displays the label for the page to which it is
- attached and serves as a page selector. When a page's tab is
- selected, the page's contents are displayed in the page
- area. The selected tab has a three-dimensional effect to
- make it appear to float above the other tabs. The tabs are
- displayed as a group along either the left, top, right, or
- bottom edge. When first created a tabnotebook has no pages.
- Pages may be added or deleted using widget commands
- described below.
-
- A special option may be provided to the tabnotebook. The
- <STRONG>-auto</STRONG> option specifies whether the tabnotebook will automat-
- ically handle the unpacking and packing of pages when pages
- are selected. A value of true signifies that the notebook
- will automatically manage it. This is the default value. A
- value of false signifies the notebook will not perform
- automatic switching of pages.
-
-
-</PRE>
-<H2>NOTEBOOK PAGES</H2><PRE>
- A tabnotebook's pages area contains a single child site
- frame. When a new page is created it is a child of this
- frame. The page's child site frame serves as a geometry con-
- tainer for applications to pack widgets into. It is this
- frame that is automatically unpacked or packed when the auto
- option is true. This creates the effect of one page being
- visible at a time. When a new page is selected, the previ-
- ously selected page's child site frame is automatically
- unpacked from the tabnotebook's child site frame and the
- newly selected page's child site is packed into the
- tabnotebook's child site frame.
-
- However, sometimes it is desirable to handle page changes in
- a different manner. By specifying the <STRONG>auto</STRONG> option as <STRONG>false</STRONG>,
- child site packing can be disabled and done differently. For
- example, all widgets might be packed into the first page's
- child site <STRONG>frame</STRONG>. Then when a new page is selected, the
- application can reconfigure the widgets and give the appear-
- ance that the page was flipped.
-
- In both cases the command option for a page specifies a Tcl
- Command to execute when the page is selected. In the case of
- <STRONG>auto</STRONG> being <STRONG>true</STRONG>, it is between the unpacking of the previ-
- ously selected page and the packing of the newly selected
- page.
-
- Notebook pages can also be controlled with scroll bars or
- other widgets that obey the <STRONG>scrollcommand</STRONG> protocol. By giv-
- ing a scrollbar a <STRONG>-command</STRONG> to call the tabnotebook's <STRONG>select</STRONG>
- method, the tabnotebook can be controlled with a scrollbar.
-
- The notebook area is implemented with the notebook mega
- widget.
-
-
-
-</PRE>
-<H2>TABS</H2><PRE>
- Tabs appear along the edge of the notebook area. Tabs are
- drawn to appear attached to their associated page. When a
- tab is clicked on, the associated page is selected and the
- tab is drawn as raised above all other tabs and as a seam-
- less part of its notebook page. Tabs can be controlled in
- their location along the edges, the angle tab sides are
- drawn with, gap between tabs, starting margin of tabs,
- internal padding around text labels in a tab, the font, and
- its label.
-
- The Tab area is implemented with the <STRONG>tabset</STRONG> mega widget. See
- <STRONG>tabset(1)</STRONG>. Tabs may be oriented along either the north,
- south, east, or west sides with the <STRONG>tabPos</STRONG> option. North and
- south tabs may appear as angled, square, or bevelled. West
- and east tabs may appear as square or bevelled. By changing
- tab gaps, tab angles, bevelling, orientations, colors,
- fonts, start locations, and margins; tabs may appear in a
- wide variety of styles. For example, it is possible to
- implement Microsoft-style tabs, Borland property tab styles,
- or Borland Delphi style tabs all with the same tabnotebook.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- The <STRONG>tabnotebook</STRONG> command creates a new Tcl command whose name
- is <EM>pathName</EM>. This command may be used to invoke various
- operations on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- Many of the widget commands for a notebook take as one argu-
- ment an indicator of which page of the notebook to operate
- on. These indicators are called indexes and may be specified
- in any of the following forms:
-
- <EM>number</EM>
- Specifies the page numerically, where 0 corresponds to
- the first page in the notebook, 1 to the second, and so
- on.
-
- <STRONG>select</STRONG>
- Specifies the currently selected page's index. If no
- page is currently selected, the value -1 is returned.
-
- <STRONG>end</STRONG> Specifes the last page in the tabnotebook's index. If
- the notebook is empty this will return -1.
-
- <EM>pattern</EM>
- If the index doesn't satisfy any of the above forms,
- then this form is used. Pattern is pattern-matched
- against the label of each page in the notebook, in
- order from the first to the last page, until a matching
- entry is found. The rules of Tcl_StringMatch are used.
- The following commands are possible for tabnotebook
- widgets:
-
- <EM>pathName</EM> <STRONG>add</STRONG> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Add a new page at the end of the tabnotebook. A new
- child site frame is created. Returns the child site
- pathName. If additional arguments are present, they
- specify any of the following options:
-
- <STRONG>-angle</STRONG> <EM>value</EM>
- Specifes the angle of slope from the inner edge to
- the outer edge of the tab. An angle of 0 specifies
- square tabs. Valid ranges are 0 to 45 degrees
- inclusive. Default is 15 degrees. If this option
- is specified as an empty string (the default),
- then the angle option for the overall tabnotebook
- is used. This is generally only set at the tab-
- notebook level. Tabs normally will want to share
- the same angle value.
-
- <STRONG>-background</STRONG> <EM>value</EM>
- Specifies a background color to use for displaying
- tabs when they are selected and for displaying the
- current page. If this option is specified as an
- empty string (the default), then the background
- option for the overall tabnotebook is used.
-
- <STRONG>-bevelamount</STRONG> <EM>value</EM>
- Specifes the size of tab corners. A value of 0
- with angle set to 0 results in square tabs. A
- bevelAmount of 4, means that the tab will be drawn
- with angled corners that cut in 4 pixels from the
- edge of the tab. The default is 0. This is gen-
- erally only set at the tabnotebook level. Tabs
- normally will want to share the same bevelAmount.
-
- <STRONG>-bitmap</STRONG> <EM>value</EM>
- If label is a non-empty string, specifies a bitmap
- to display in this page's tab. Bitmap may be of
- any of the forms accepted by Tk_GetPixmap.
-
- <STRONG>-command</STRONG> <EM>value</EM>
- Specifies a Tcl command to be executed when this
- page is selected. This allows the programmer a
- hook to reconfigure this page's widgets or any
- other page's widgets.
-
- If the tabnotebook has the auto option set to
- true, when a page is selected this command will be
- called immediately after the previously selected
- page is unpacked and immediately before this page
- is selected. The index value select is valid dur-
- ing this Tcl command. `index select' will return
- this page's page number.
-
- If the auto option is set to false, when a page is
- selected the unpack and pack calls are bypassed.
- This Tcl command is still called.
-
- <STRONG>-disabledforeground</STRONG> <EM>value</EM>
- Specifies a foreground color to use for displaying
- tab labels when tabs are in their disable state.
- If this option is specified as an empty string
- (the default), then the disabledforeground option
- for the overall tabnotebook is used.
-
- <STRONG>-font</STRONG> <EM>value</EM>
- Specifies the font to use when drawing a text
- label on a page tab. If this option is specified
- as an empty string then the font option for the
- overall tabnotebook is used..
-
- <STRONG>-foreground</STRONG> <EM>value</EM>
- Specifies a foreground color to use for displaying
- tab labels when they are selected. If this option
- is specified as an empty string (the default),
- then the foreground option for the overall tab-
- notebook is used.
-
- <STRONG>-label</STRONG> <EM>value</EM>
- Specifies a string to display as an identifying
- label for a notebook page. This label serves as an
- additional identifier used to reference the page.
- This label may be used for the index value in
- widget commands.
-
- <STRONG>-tabbackground</STRONG> <EM>value</EM>
- Specifies a background color to use for displaying
- a tab when it is not elected. If this option is
- specified as an empty string (the default), then
- the tabBackground option for the overall tabnote-
- book is used.
-
- <STRONG>-tabforeground</STRONG> <EM>value</EM>
- Specifies a foreground color to use for displaying
- the tab's text label when it is not selected. If
- this option is specified as an empty string (the
- default), then the tabForeground option for the
- overall tabnotebook is used.
-
- <STRONG>-padx</STRONG> <EM>value</EM>
- Specifies a non-negative value indicating how much
- extra space to request for a tab around its label
- in the X-direction. When computing how large a
- window it needs, the tab will add this amount to
- the width it would normally need The tab will end
- up with extra internal space to the left and right
- of its text label. This value may have any of the
- forms acceptable to Tk_GetPixels. If this option
- is specified as an empty string (the default),
- then the padX option for the overall tabnotebook
- is used
-
- <STRONG>-pady</STRONG> <EM>value</EM>
- Specifies a non-negative value indicating how much
- extra space to request for a tab around its label
- in the Y-direction. When computing how large a
- window it needs, the tab will add this amount to
- the height it would normally need The tab will end
- up with extra internal space to the top and bottom
- of its text label. This value may have any of the
- forms acceptable to Tk_GetPixels. If this option
- is specified as an empty string (the default),
- then the padY option for the overall tabnotebook
- is used
-
- <STRONG>-state</STRONG> <EM>value</EM>
- Specifies one of two states for the page: normal
- or disabled. In normal state unselected tabs are
- displayed using the tabforeground and tabback-
- ground option from the tabnotebook or the page.
- Selected tabs and pages are displayed using the
- foreground and background option from the tabnote-
- book or the page. The disabled state means that
- the page and its tab is insensitive: it doesn't
- respond to mouse button presses or releases. In
- this state the entry is displayed according to its
- disabledForeground option for the tabnotebook and
- the background/tabbackground option from the page
- or the tabnotebook.
-
- <EM>pathName</EM> <STRONG>childSite</STRONG> ?<EM>index</EM>?
- If passed no arguments, returns a list of pathNames for
- all the pages in the tabnotebook. If the tab notebook
- is empty, an empty list is returned
-
- If <EM>index</EM> is passed, it returns the <EM>pathName</EM> for the
- page's child site <STRONG>frame</STRONG> specified by <EM>index</EM>. Widgets
- that are created with this <EM>pathName</EM> will be displayed
- when the associated page is selected. If <EM>index</EM> is not a
- valid index, an empty string is returned.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>pathName</EM>
- (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the format of
- this list). If option is specified with no value, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no option is
- specified). If one or more option-value pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string. <EM>Option</EM> may have any of
- the values accepted by the tabnotebook command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>index1</EM> ?<EM>index2</EM>?
- Delete all of the pages between <EM>index1</EM> and <EM>index2</EM>
- inclusive. If <EM>index2</EM> is omitted then it defaults to
- <EM>index1</EM>. Returns an empty string.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the numerical index corresponding to <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>index</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Insert a new page in the tabnotebook before the page
- specified by <EM>index</EM>. A new child site <STRONG>frame</STRONG> is created.
- The additional arguments are the same as for the <STRONG>add</STRONG>
- command. Returns the child site <EM>pathName</EM>.
-
- <EM>pathName</EM> <STRONG>next</STRONG>
- Advances the selected page to the next page (order is
- determined by insertion order). If the currently
- selected page is the last page in the notebook, the
- selection wraps around to the first page in the note-
- book. It behaves as if the user selected the new page.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>true</STRONG> the current page's
- child site is unpacked from the notebook's child site
- frame. Then the next page's child site is packed into
- the notebook's child site frame. The Tcl command given
- with the command option will be invoked between these
- two operations.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>false</STRONG> the Tcl command
- given with the command option will be invoked.
-
- <EM>pathName</EM> <STRONG>pageconfigure</STRONG> <EM>index</EM> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- This command is similar to the <STRONG>configure</STRONG> command,
- except that it applies to the options for an individual
- page, whereas configure applies to the options for the
- tabnotebook as a whole. <EM>Options</EM> may have any of the
- values accepted by the add widget command. If options
- are specified, options are modified as indicated in the
- command and the command returns an empty string. If no
- options are specified, returns a list describing the
- current options for page index (see <STRONG>Tk_ConfigureInfo</STRONG>
- for information on the format of this list).
-
- <EM>pathName</EM> <STRONG>prev</STRONG>
- Moves the selected page to the previous page (order is
- determined by insertion order). If the currently
- selected page is the first page in the notebook, the
- selection wraps around to the last page in the note-
- book. It behaves as if the user selected the new page.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>true</STRONG> the current page's
- child site is unpacked from the notebook's child site
- <STRONG>frame</STRONG>. Then the previous page's child site is packed
- into the notebook's child site frame. The Tcl command
- given with the command option will be invoked between
- these two operations.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>false</STRONG> the Tcl command
- given with the command option will be invoked.
-
- <EM>pathName</EM> <STRONG>select</STRONG> <EM>index</EM>
- Selects the page specified by <EM>index</EM> as the currently
- selected page. It behaves as if the user selected the
- new page.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>true</STRONG> the current page's
- child site is unpacked from the notebook's child site
- frame. Then the <EM>index</EM> page's child site is packed into
- the notebook's child site frame. The Tcl command given
- with the command option will be invoked between these
- two operations.
-
- For notebooks with <STRONG>auto</STRONG> set to <STRONG>false</STRONG> the Tcl command
- given with the command option will be invoked.
-
- <EM>pathName</EM> <STRONG>view</STRONG>
- Returns the currently selected page. This command is
- for compatibility with the <STRONG>scrollbar</STRONG> widget.
-
- <EM>pathName</EM> <STRONG>view</STRONG> <EM>index</EM>
- Selects the page specified by <EM>index</EM> as the currently
- selected page. This command is for compatibility with
- the <STRONG>scrollbar</STRONG> widget.
-
- <EM>pathName</EM> <STRONG>view</STRONG> <STRONG>moveto</STRONG> <EM>fraction</EM>
- Uses the <EM>fraction</EM> value to determine the corresponding
- page to move to. This command is for compatibility with
- the <STRONG>scrollbar</STRONG> widget.
-
- <EM>pathName</EM> <STRONG>view</STRONG> <STRONG>scroll</STRONG> <EM>num</EM> <EM>what</EM>
- Uses the <EM>num</EM> value to determine how many pages to move
- forward or backward (<EM>num</EM> can be negative or positive).
- The <EM>what</EM> argument is ignored. This command is for com-
- patibility with the <STRONG>scrollbar</STRONG> widget.
-
-
-</PRE>
-<H2>COMPONENTS</H2><PRE>
- Generally all behavior of the internal components, <STRONG>tabset</STRONG>
- and <STRONG>notebook</STRONG> are controlled via the <STRONG>pageconfigure</STRONG> method.
- The following section documents these two components.
-
- Name: <STRONG>tabset</STRONG>
- Class: <STRONG>Tabset</STRONG>
-
- This is the tabset component. It implements the tabs
- that are associated with the notebook component.
-
- See the "<STRONG>Tabset</STRONG>" widget manual entry for details on the
- <STRONG>tabset</STRONG> component item.
-
- Name: <STRONG>notebook</STRONG>
- Class: <STRONG>Notebook</STRONG>
-
- This is the notebook component. It implements the note-
- book that contains the pages of the tabnotebook.
-
- See the "<STRONG>Notebook</STRONG>" widget manual entry for details on
- the <STRONG>notebook</STRONG> component item.
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- Following is an example that creates a tabnotebook with two
- pages.
-
- # Create the tabnotebook widget and pack it.
- tabnotebook .tn -width 100 -height 100
- pack .tn \
- -anchor nw \
- -fill both \
- -expand yes \
- -side left \
- -padx 10 \
- -pady 10
-
- # Add two pages to the tabnotebook,
- # labelled "Page One" and "Page Two"
- .tn add -label "Page One"
- .tn add -label "Page Two"
-
- # Get the child site frames of these two pages.
- set page1CS [.tn childsite 0]
- set page2CS [.tn childsite "Page Two"]
-
- # Create buttons on each page of the tabnotebook.
- button $page1CS.b -text "Button One"
- pack $page1CS.b
- button $page2CS.b -text "Button Two"
- pack $page2CS.b
-
- # Select the first page of the tabnotebook.
- .tn select 0
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Bill W. Scott
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- tab tabset notebook tabnotebook page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>tabnotebook - create and manipulate tabnotebook widgets</TITLE>
+<H1>tabnotebook - create and manipulate tabnotebook widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>tabnotebook</B> <I>pathName</I>? <I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- tabnotebook
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>font</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+<B>height</B><br>
+</td>
+<td valign=top>
+<B>scrollCommand</B><br>
+<B>width</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>angle</B>
+Class: <B>Angle</B>
+Command-Line Switch: <B>-angle</B>
+</pre>
+<UL>
+Specifes the angle of slope from the inner edge to the outer edge of the tab.
+An angle of 0 specifies square tabs. Valid ranges are 0 to 45 degrees
+inclusive. Default is 15 degrees. If <B>tabPos</B> is e or w, this option
+is ignored.
+</UL>
+<P>
+<pre>
+Name: <B>auto</B>
+Class: <B>Auto</B>
+Command-Line Switch: <B>-auto</B>
+</pre>
+<UL>
+Specifies whether to use the automatic packing/unpacking algorithm of the
+notebook. A value of true indicates that page frames will be unpacked and
+packed acoording to the algorithm described in the select command. A value
+of <B>false</B> leaves the current page packed and
+subsequent <B>selects</B>, <B>next</B>, or <B>previous</B> commands do not
+switch pages automatically. In either case the page's associated
+command (see the <B>add</B> command's description of the command option) is
+invoked. The value may have any of the forms accepted by
+the <B>Tcl_GetBoolean</B>, such as <B>true</B>, <B>false</B>, <B>0</B>,
+<B>1</B>, <B>yes</B>, or <B>no</B>.
+</UL>
+<P>
+<pre>
+Name: <B>backdrop</B>
+Class: <B>Backdrop</B>
+Command-Line Switch: <B>-backdrop</B>
+</pre>
+<UL>
+Specifies a background color to use when filling in the backdrop area
+behind the tabs.
+</UL>
+<P>
+<pre>
+Name: <B>background</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-background</B>
+</pre>
+<UL>
+Specifies a background color to use for displaying a page and its associated
+tab. This can be thought of as the selected tab background color, since the
+tab associated with the selected page is the selected tab.
+</UL>
+<P>
+<pre>
+Name: <B>bevelAmount</B>
+Class: <B>BevelAmount</B>
+Command-Line Switch: <B>-bevelamount</B>
+</pre>
+<UL>
+Specifes the size of tab corners. A value of 0 with <B>angle</B> set to
+0 results in square tabs. A <B>bevelAmount</B> of 4, means that the tab will
+be drawn with angled corners that cut in 4 pixels from the edge of
+the tab. The default is 0.
+</UL>
+<P>
+<pre>
+Name: <B>borderWidth</B>
+Class: <B>BorderWidth</B>
+Command-Line Switch: <B>-borderwidth</B>
+</pre>
+<UL>
+Specifies the width of shadowed border to place around the notebook area of
+the tabnotebook. The default value is 2.
+</UL>
+<P>
+<pre>
+Name: <B>disabledForeground</B>
+Class: <B>DisabledForeground</B>
+Command-Line Switch: <B>-disabledforeground</B>
+</pre>
+<UL>
+Specifies a foreground color to use for displaying a tab's label when
+its <B>state</B> is disabled.
+</UL>
+<P>
+<pre>
+Name: <B>equalTabs</B>
+Class: <B>EqualTabs</B>
+Command-Line Switch: <B>-equaltabs</B>
+</pre>
+<UL>
+Specifies whether to force tabs to be equal sized or not. A value
+of <B>true</B> means constrain tabs to be equal sized. A value
+of <B>false</B> allows each tab to size based on the text label size. The
+value may have any of the forms accepted by the <B>Tcl_GetBoolean</B>, such
+as <B>true</B>, <B>false</B>, <B>0</B>, <B>1</B>, <B>yes</B>, or <B>no</B>.
+</UL>
+<UL>
+For horizontally positioned tabs (<B>tabpos</B> is either <B>s</B> or <B>n</B>),
+<B>true</B> forces all tabs to be equal width (the width being equal to
+the longest label plus any <B>padX</B> specified). Horizontal tabs are
+always equal in height.
+</UL>
+<UL>
+For vertically positioned tabs (<B>tabpos</B> is either <B>w</B> or <B>e</B>),
+<B>true</B> forces all tabs to be equal height (the height being equal to the
+height of the label with the largest font). Vertically oriented tabs
+are always equal in width.
+</UL>
+<P>
+<pre>
+Name: <B>foreground</B>
+Class: <B>Foreground</B>
+Command-Line Switch: <B>-foreground</B>
+</pre>
+<UL>
+Specifies a foreground color to use for displaying a page and its associated
+tab label. This can be thought of as the selected tab background color,
+since the tab associated with the selected page is the selected tab.
+</UL>
+<P>
+<pre>
+Name: <B>gap</B>
+Class: <B>Gap</B>
+Command-Line Switch: <B>-gap</B>
+</pre>
+<UL>
+Specifies the amount of pixel space to place between each tab. Value may
+be any pixel offset value. In addition, a special keyword <B>overlap</B>
+can be used as the value to achieve a standard overlap of tabs. This value
+may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>margin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-Bmargin</B>
+</pre>
+<UL>
+Specifies the amount of space to place between the outside edge of the
+tabnotebook and the outside edge of its tabs. If <B>tabPos</B> is <B>s</B>,
+this is the amount of space between the bottom edge of the tabnotebook and
+the bottom edge of the set of tabs. If <B>tabPos</B> is <B>n</B>, this is
+the amount of space between the top edge of the tabnotebook and the top
+edge of the set of tabs. If <B>tabPos</B> is <B>e</B>, this is the amount of
+space between the right edge of the tabnotebook and the right edge of the
+set of tabs. If <B>tabPos</B> is <B>w</B>, this is the amount of space
+between the left edge of the tabnotebook and the left edge of the set
+of tabs. This value may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>padX</B>
+Class: <B>PadX</B>
+Command-Line Switch: <B>-padx</B>
+</pre>
+<UL>
+Specifies a non-negative value indicating how much extra space to request
+for a tab around its label in the X-direction. When computing how large
+a window it needs, the tab will add this amount to the width it would
+normally need The tab will end up with extra internal space to the left
+and right of its text label. This value may have any of the forms acceptable
+to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>padY</B>
+Class: <B>PadY</B>
+Command-Line Switch: <B>-pady</B>
+</pre>
+<UL>
+Specifies a non-negative value indicating how much extra space to request for
+a tab around its label in the Y-direction. When computing how large a
+window it needs, the tab will add this amount to the height it would normally
+need The tab will end up with extra internal space to the top and bottom of
+its text label. This value may have any of the forms acceptable
+to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>raiseSelect</B>
+Class: <B>RaiseSelect</B>
+Command-Line Switch: <B>-raiseselect</B>
+</pre>
+<UL>
+Specifes whether to slightly raise the selected tab from the rest of the
+tabs. The selected tab is drawn 2 pixels closer to the outside of the
+tabnotebook than the unselected tabs. A value of <B>true</B> says to
+raise selected tabs, a value of <B>false</B> turns this feature off. The
+default is <B>false</B>. The value may have any of the forms accepted
+by the <B>Tcl_GetBoolean</B>, such as <B>true</B>, <B>false</B>, <B>0</B>,
+<B>1</B>, <B>yes</B>, or <B>no</B>.
+</UL>
+<P>
+<pre>
+Name: <B>start</B>
+Class: <B>Start</B>
+Command-Line Switch: <B>-start</B>
+</pre>
+<UL>
+Specifies the amount of space to place between the left or top edge of the
+tabnotebook and the starting edge of its tabs. For horizontally positioned
+tabs, this is the amount of space between the left edge of the notebook and
+the left edge of the first tab. For vertically positioned tabs, this is the
+amount of space between the top of the notebook and the top of the first
+tab. This value may change if the user performs a MButton-2 scroll on the
+tabs. This value may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Sets the active state of the tabnotebook. Specifying <B>normal</B> allows
+all pages to be selectable. Specifying <B>disabled</B> disables the notebook
+causing all page tabs to be drawn in the <B>disabledForeground</B> color.
+</UL>
+<P>
+<pre>
+Name: <B>tabBackground</B>
+Class: <B>TabBackground</B>
+Command-Line Switch: <B>-tabbackground</B>
+</pre>
+<UL>
+Specifies a background color to use for displaying tab backgrounds when
+they are in their unselected state. This is the background associated with
+tabs on all pages other than the selected page.
+</UL>
+<P>
+<pre>
+Name: <B>tabBorders</B>
+Class: <B>TabBorders</B>
+Command-Line Switch: <B>-tabborders</B>
+</pre>
+<UL>
+Specifies whether to draw the borders of tabs that are not selected.
+Specifying <B>true</B> (the default) draws these borders,
+specifying <B>false</B> draws only the border around the selected tab. The
+value may have any of the forms accepted by the <B>Tcl_GetBoolean</B>,
+such as <B>true</B>, <B>false</B>, <B>0</B>, <B>1</B>,<B> yes</B>, or <B>no</B>.
+</UL>
+<P>
+<pre>
+Name: <B>tabForeground</B>
+Class: <B>TabForeground</B>
+Command-Line Switch: <B>-tabforeground</B>
+</pre>
+<UL>
+Specifies a foreground color to use for displaying tab labels when they
+are in their unselected state. This is the foreground associated with tabs
+on all pages other than the selected page.
+</UL>
+<P>
+<pre>
+Name: <B>tabPos</B>
+Class: <B>TabPos</B>
+Command-Line Switch: <B>-tabpos</B>
+</pre>
+<UL>
+Specifies the location of the set of tabs in relation to the notebook
+area. Must be n, s, e, or w. Defaults to s.
+</UL>
+</pre><HR>
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>tabnotebook</B> command creates a new window (given by the pathName
+argument) and makes it into a <B>tabnotebook</B> widget. Additional options,
+described above may be specified on the command line or in the option
+database to configure aspects of the tabnotebook such as its colors, font,
+and text. The tabnotebook command returns its pathName argument. At the
+time this command is invoked, there must not exist a window named
+pathName, but pathName's parent must exist.
+<P>
+A <B>tabnotebook</B> is a widget that contains a set of tabbed pages. It
+displays one page from the set as the selected page. A Tab displays the
+label for the page to which it is attached and serves as a page
+selector. When a page's tab is selected, the page's contents are displayed
+in the page area. The selected tab has a three-dimensional effect to make
+it appear to float above the other tabs. The tabs are displayed as a group
+along either the left, top, right, or bottom edge. When first created a
+tabnotebook has no pages. Pages may be added or deleted using widget
+commands described below.
+<P>
+A special option may be provided to the tabnotebook. The <B>-auto</B>
+option specifies whether the tabnotebook will automatically handle the
+unpacking and packing of pages when pages are selected. A value of
+true signifies that the notebook will automatically manage it. This is the
+default value. A value of false signifies the notebook will not perform
+automatic switching of pages.
+</pre><H2>NOTEBOOK PAGES</H2>
+A tabnotebook's pages area contains a single child site frame. When a
+new page is created it is a child of this frame. The page's child site
+frame serves as a geometry container for applications to pack widgets
+into. It is this frame that is automatically unpacked or packed when
+the auto option is true. This creates the effect of one page being visible
+at a time. When a new page is selected, the previously selected page's
+child site frame is automatically unpacked from the tabnotebook's child
+site frame and the newly selected page's child site is packed into the
+tabnotebook's child site frame.
+<P>
+However, sometimes it is desirable to handle page changes in a different
+manner. By specifying the <B>auto</B> option as <B>false</B>, child site
+packing can be disabled and done differently. For example, all widgets
+might be packed into the first page's child site <B>frame</B>. Then when
+a new page is selected, the application can reconfigure the widgets
+and give the appearance that the page was flipped.
+<P>
+In both cases the command option for a page specifies a Tcl Command
+to execute when the page is selected. In the case of <B>auto</B>
+being <B>true</B>, it is between the unpacking of the previously selected
+page and the packing of the newly selected page.
+<P>
+Notebook pages can also be controlled with scroll bars or other widgets
+that obey the <B>scrollcommand</B> protocol. By giving a scrollbar
+a <B>-command</B> to call the tabnotebook's <B>select</B> method, the
+tabnotebook can be controlled with a scrollbar.
+<P>
+The notebook area is implemented with the notebook mega widget.
+</pre><H2>TABS</H2>
+Tabs appear along the edge of the notebook area. Tabs are drawn to appear
+attached to their associated page. When a tab is clicked on, the associated
+page is selected and the tab is drawn as raised above all other tabs and as
+a seamless part of its notebook page. Tabs can be controlled in their
+location along the edges, the angle tab sides are drawn with, gap between
+tabs, starting margin of tabs, internal padding around text labels in
+a tab, the font, and its label.
+<P>
+The Tab area is implemented with the <B>tabset</B> mega widget.
+See <B>tabset(1)</B>. Tabs may be oriented along either the north, south,
+east, or west sides with the <B>tabPos</B> option. North and south tabs
+may appear as angled, square, or bevelled. West and east tabs may appear
+as square or bevelled. By changing tab gaps, tab angles, bevelling,
+orientations, colors, fonts, start locations, and margins; tabs may appear
+in a wide variety of styles. For example, it is possible to implement
+Microsoft-style tabs, Borland property tab styles, or Borland Delphi
+style tabs all with the same tabnotebook.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<P>
+The <B>tabnotebook</B> command creates a new Tcl command whose name
+is <I>pathName</I>. This command may be used to invoke various operations
+on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for a notebook take as one argument an
+indicator of which page of the notebook to operate on. These indicators are
+called indexes and may be specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the page numerically, where 0 corresponds to the first page
+in the notebook, 1 to the second, and so on.
+</DL>
+<DL>
+<DT> <B>select</B>
+</I></B>
+<DD> Specifies the currently selected page's index. If no page is currently
+selected, the value -1 is returned.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Specifes the last page in the tabnotebook's index. If the notebook is empty
+this will return -1.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy any of the above forms, then this form is
+used. Pattern is pattern-matched against the label of each page in the
+notebook, in order from the first to the last page, until a matching entry
+is found. The rules of Tcl_StringMatch are used.
+'.............................................................................
+The following commands are possible for tabnotebook widgets:
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>add</B> ?<I>option</I> <I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> Add a new page at the end of the tabnotebook. A new child site frame is
+created. Returns the child site pathName. If additional arguments are
+present, they specify any of the following options:
+</DL>
+<UL>
+<DL>
+<DT> <B>-angle</B> <I>value</I>
+</I></B>
+<DD> Specifes the angle of slope from the inner edge to the outer edge of the
+tab. An angle of 0 specifies square tabs. Valid ranges are 0 to 45 degrees
+inclusive. Default is 15 degrees. If this option is specified as an empty
+string (the default), then the angle option for the overall tabnotebook
+is used. This is generally only set at the tabnotebook level. Tabs normally
+will want to share the same angle value.
+</DL>
+<DL>
+<DT> <B>-background</B> <I>value</I>
+</I></B>
+<DD> Specifies a background color to use for displaying tabs when they are
+selected and for displaying the current page. If this option is specified
+as an empty string (the default), then the background option for the
+overall tabnotebook is used.
+</DL>
+<DL>
+<DT> <B>-bevelamount</B> <I>value</I>
+</I></B>
+<DD> Specifes the size of tab corners. A value of 0 with angle set to 0
+results in square tabs. A bevelAmount of 4, means that the tab will be
+drawn with angled corners that cut in 4 pixels from the edge of the tab.
+The default is 0. This is generally only set at the tabnotebook level.
+Tabs normally will want to share the same bevelAmount.
+</DL>
+<DL>
+<DT> <B>-bitmap</B> <I>value</I>
+</I></B>
+<DD> If label is a non-empty string, specifies a bitmap to display in this
+page's tab. Bitmap may be of any of the forms accepted by Tk_GetPixmap.
+</DL>
+<DL>
+<DT> <B>-command</B> <I>value</I>
+</I></B>
+<DD> Specifies a Tcl command to be executed when this page is selected. This
+allows the programmer a hook to reconfigure this page's widgets or any
+other page's widgets.
+<UL>
+If the tabnotebook has the auto option set to true, when a page is
+selected this command will be called immediately after the previously
+selected page is unpacked and immediately before this page is selected. The
+index value select is valid during this Tcl command. `index select' will
+return this page's page number.
+</UL>
+<UL>
+If the auto option is set to false, when a page is selected the unpack
+and pack calls are bypassed. This Tcl command is still called.
+</UL>
+</DL>
+<DL>
+<DT> <B>-disabledforeground</B> <I>value</I>
+</I></B>
+<DD> Specifies a foreground color to use for displaying tab labels when tabs
+are in their disable state. If this option is specified as an empty
+string (the default), then the disabledforeground option for the overall
+tabnotebook is used.
+</DL>
+<DL>
+<DT> <B>-font</B> <I>value</I>
+</I></B>
+<DD> Specifies the font to use when drawing a text label on a page tab. If
+this option is specified as an empty string then the font option for the
+overall tabnotebook is used..
+</DL>
+<DL>
+<DT> <B>-foreground</B> <I>value</I>
+</I></B>
+<DD> Specifies a foreground color to use for displaying tab labels when they are
+selected. If this option is specified as an empty string (the default),
+then the foreground option for the overall tabnotebook is used.
+</DL>
+<DL>
+<DT> <B>-label</B> <I>value</I>
+</I></B>
+<DD> Specifies a string to display as an identifying label for a notebook
+page. This label serves as an additional identifier used to reference the
+page. This label may be used for the index value in widget commands.
+</DL>
+<DL>
+<DT> <B>-tabbackground</B> <I>value</I>
+</I></B>
+<DD> Specifies a background color to use for displaying a tab when it is not
+elected. If this option is specified as an empty string (the default), then
+the tabBackground option for the overall tabnotebook is used.
+</DL>
+<DL>
+<DT> <B>-tabforeground</B> <I>value</I>
+</I></B>
+<DD> Specifies a foreground color to use for displaying the tab's text label
+when it is not selected. If this option is specified as an empty
+string (the default), then the tabForeground option for the overall
+tabnotebook is used.
+</DL>
+<DL>
+<DT> <B>-padx</B> <I>value</I>
+</I></B>
+<DD> Specifies a non-negative value indicating how much extra space to request
+for a tab around its label in the X-direction. When computing how large a
+window it needs, the tab will add this amount to the width it would
+normally need The tab will end up with extra internal space to the
+left and right of its text label. This value may have any of the forms
+acceptable to Tk_GetPixels. If this option is specified as an empty
+string (the default), then the padX option for the overall tabnotebook is used
+</DL>
+<DL>
+<DT> <B>-pady</B> <I>value</I>
+</I></B>
+<DD> Specifies a non-negative value indicating how much extra space to request
+for a tab around its label in the Y-direction. When computing how large
+a window it needs, the tab will add this amount to the height it would
+normally need The tab will end up with extra internal space to the top and
+bottom of its text label. This value may have any of the forms acceptable
+to Tk_GetPixels. If this option is specified as an empty string (the
+default), then the padY option for the overall tabnotebook is used
+</DL>
+<DL>
+<DT> <B>-state</B> <I>value</I>
+</I></B>
+<DD> Specifies one of two states for the page: normal or disabled. In normal state
+unselected tabs are displayed using the tabforeground and tabbackground
+option from the tabnotebook or the page. Selected tabs and pages are
+displayed using the foreground and background option from the tabnotebook or
+the page. The disabled state means that the page and its tab is
+insensitive: it doesn't respond to mouse button presses or releases. In this
+state the entry is displayed according to its disabledForeground option for
+the tabnotebook and the background/tabbackground option from the page or
+the tabnotebook.
+</DL>
+</UL>
+<DL>
+<DT> '&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
+</I></B>
+<DD> <I>pathName</I> <B>childSite</B> ?<I>index</I>?
+If passed no arguments, returns a list of pathNames for all the pages
+in the tabnotebook. If the tab notebook is empty, an empty list is returned
+<UL>
+If <I>index</I> is passed, it returns the <I>pathName</I> for the page's
+child site <B>frame</B> specified by <I>index</I>. Widgets that are created
+with this <I>pathName</I> will be displayed when the associated page is
+selected. If <I>index</I> is not a valid index, an empty string is returned.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> Query or modify the configuration options of the widget. If no <I>option</I>
+is specified, returns a list describing all of the available options
+for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for information on the
+format of this list). If option is specified with no value, then the
+command returns a list describing the one named option (this list will be
+identical to the corresponding sublist of the value returned if no option
+is specified). If one or more option-value pairs are specified, then the
+command modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string. <I>Option</I> may have any
+of the values accepted by the tabnotebook command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>delete</B> <I>index1</I> ?<I>index2</I>?
+</I></B>
+<DD> Delete all of the pages between <I>index1</I> and <I>index2</I> inclusive.
+If <I>index2</I> is omitted then it defaults to <I>index1</I>. Returns an
+empty string.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>index</B> <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>insert</B> <I>index</I> ?<I>option</I> <I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> Insert a new page in the tabnotebook before the page specified
+by <I>index</I>. A new child site <B>frame</B> is created. The additional
+arguments are the same as for the <B>add</B> command. Returns the
+child site <I>pathName</I>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>next</B>
+</I></B>
+<DD> Advances the selected page to the next page (order is determined by
+insertion order). If the currently selected page is the last page in
+the notebook, the selection wraps around to the first page in the
+notebook. It behaves as if the user selected the new page.
+<UL>
+For notebooks with <B>auto</B> set to <B>true</B> the current page's
+child site is unpacked from the notebook's child site frame. Then the next
+page's child site is packed into the notebook's child site frame. The
+Tcl command given with the command option will be invoked between these
+two operations.
+</UL>
+<UL>
+For notebooks with <B>auto</B> set to <B>false</B> the Tcl command given
+with the command option will be invoked.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>pageconfigure</B> <I>index</I> ?<I>option</I>? ?<I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> This command is similar to the <B>configure</B> command, except that it
+applies to the options for an individual page, whereas configure applies
+to the options for the tabnotebook as a whole. <I>Options</I> may have
+any of the values accepted by the add widget command. If options are
+specified, options are modified as indicated in the command and the
+command returns an empty string. If no options are specified, returns a
+list describing the current options for page index (see <B>Tk_ConfigureInfo</B>
+for information on the format of this list).
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>prev</B>
+</I></B>
+<DD> Moves the selected page to the previous page (order is determined by
+insertion order). If the currently selected page is the first page in
+the notebook, the selection wraps around to the last page in the notebook. It
+behaves as if the user selected the new page.
+<UL>
+For notebooks with <B>auto</B> set to <B>true</B> the current page's
+child site is unpacked from the notebook's child site <B>frame</B>. Then the
+previous page's child site is packed into the notebook's child site frame.
+The Tcl command given with the command option will be invoked between these
+two operations.
+</UL>
+<UL>
+For notebooks with <B>auto</B> set to <B>false</B> the Tcl command given
+with the command option will be invoked.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>select</B> <I>index</I>
+</I></B>
+<DD> Selects the page specified by <I>index</I> as the currently selected page.
+It behaves as if the user selected the new page.
+<UL>
+For notebooks with <B>auto</B> set to <B>true</B> the current page's child
+site is unpacked from the notebook's child site frame. Then the <I>index</I>
+page's child site is packed into the notebook's child site frame. The
+Tcl command given with the command option will be invoked between these two
+operations.
+</UL>
+<UL>
+For notebooks with <B>auto</B> set to <B>false</B> the Tcl command given
+with the command option will be invoked.
+</UL>
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B>
+</I></B>
+<DD> Returns the currently selected page. This command is for compatibility with
+the <B>scrollbar</B> widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B> <I>index</I>
+</I></B>
+<DD> Selects the page specified by <I>index</I> as the currently selected page.
+This command is for compatibility with the <B>scrollbar</B> widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B> <B>moveto</B> <I>fraction</I>
+</I></B>
+<DD> Uses the <I>fraction</I> value to determine the corresponding page to move to.
+This command is for compatibility with the <B>scrollbar</B> widget.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>view</B> <B>scroll</B> <I>num</I> <I>what</I>
+</I></B>
+<DD> Uses the <I>num</I> value to determine how many pages to move forward or
+backward (<I>num</I> can be negative or positive). The <I>what</I> argument
+is ignored. This command is for compatibility with the <B>scrollbar</B> widget.
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+Generally all behavior of the internal components, <B>tabset</B>
+and <B>notebook</B> are controlled via the <B>pageconfigure</B> method.
+The following section documents these two components.
+<P>
+<pre>
+Name: <B>tabset</B>
+Class: <B>Tabset</B>
+</pre>
+<UL>
+This is the tabset component. It implements the tabs that are associated
+with the notebook component.
+</UL>
+<UL>
+See the "<B>Tabset</B>" widget manual entry for details on
+the <B>tabset</B> component item.
+</UL>
+<P>
+<pre>
+Name: <B>notebook</B>
+Class: <B>Notebook</B>
+</pre>
+<UL>
+This is the notebook component. It implements the notebook that contains the
+pages of the tabnotebook.
+</UL>
+<UL>
+See the "<B>Notebook</B>" widget manual entry for details on
+the <B>notebook</B> component item.
+</UL>
+</table>
+</pre><H2>EXAMPLE</H2>
+<P>
+Following is an example that creates a tabnotebook with two pages.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<UL><br>
+the<br>
+pack<br>
+-width<br>
+pack<br>
+nw<br>
+\\<br>
+-side<br>
+10<br>
+<UL><br>
+pages<br>
+#<br>
+and<br>
+add<br>
+.tn<br>
+Two"<br>
+Get<br>
+frames<br>
+pages.<br>
+childsite<br>
+[.tn<br>
+</UL><br>
+buttons<br>
+of<br>
+$page1CS.b<br>
+pack<br>
+-text<br>
+$page2CS.b<br>
+Select<br>
+of<br>
+select<br>
+</td>
+<td valign=top>
+</UL><br>
+tabnotebook<br>
+it.<br>
+100<br>
+.tn<br>
+\\<br>
+-expand<br>
+left<br>
+\\<br>
+#<br>
+to<br>
+labelled<br>
+"Page<br>
+-label<br>
+add<br>
+</UL><br>
+the<br>
+of<br>
+set<br>
+0]<br>
+childsite<br>
+<UL><br>
+on<br>
+the<br>
+-text<br>
+$page1CS.b<br>
+"Button<br>
+</UL><br>
+the<br>
+the<br>
+0<br>
+</td>
+<td valign=top>
+#<br>
+widget<br>
+tabnotebook<br>
+-height<br>
+\\<br>
+-fill<br>
+yes<br>
+\\<br>
+-pady<br>
+Add<br>
+the<br>
+"Page<br>
+Two"<br>
+"Page<br>
+-label<br>
+<UL><br>
+child<br>
+these<br>
+page1CS<br>
+set<br>
+"Page<br>
+#<br>
+each<br>
+tabnotebook.<br>
+"Button<br>
+button<br>
+Two"<br>
+<UL><br>
+first<br>
+tabnotebook.<br>
+</UL><br>
+</td>
+<td valign=top>
+Create<br>
+and<br>
+.tn<br>
+100<br>
+-anchor<br>
+both<br>
+\\<br>
+-padx<br>
+10<br>
+two<br>
+tabnotebook,<br>
+One"<br>
+.tn<br>
+One"<br>
+"Page<br>
+#<br>
+site<br>
+two<br>
+[.tn<br>
+page2CS<br>
+Two"]<br>
+Create<br>
+page<br>
+button<br>
+One"<br>
+$page2CS.b<br>
+pack<br>
+#<br>
+page<br>
+.tn<br>
+</td>
+</table>
+</pre><H2>AUTHOR</H2>
+Bill W. Scott
+</pre><H2>KEYWORDS</H2>
+tab tabset notebook tabnotebook page
diff --git a/itcl/iwidgets3.0.0/demos/html/tabset.n.html b/itcl/iwidgets3.0.0/demos/html/tabset.n.html
index 2ecaf36745a..90e6f7b856c 100644
--- a/itcl/iwidgets3.0.0/demos/html/tabset.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/tabset.n.html
@@ -1,559 +1,681 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - tabset</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - tabset</H1>
-<HR>
-<PRE>
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- tabset - create and manipulate tabs as as set
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>tabset</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>INHERITANCE</H2><PRE>
- itk::Widget &lt;- tabset
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>background</STRONG> <STRONG>font</STRONG> <STRONG>selectBackgroundcursor</STRONG>
- <STRONG>foreground</STRONG> <STRONG>selectForeground</STRONG> <STRONG>disabledForegroundheight</STRONG>
- <STRONG>width</STRONG>
-
- See the "options" manual entry for details on the standard
- options.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>angle</STRONG>
- Class: <STRONG>Angle</STRONG>
- Command-Line Switch: <STRONG>-angle</STRONG>
-
- Specifes the angle of slope from the inner edge to the
- outer edge of the tab. An angle of 0 specifies square
- tabs. Valid ranges are 0 to 45 degrees inclusive.
- Default is 15 degrees. If tabPos is e or w, this option
- is ignored.
-
- Name: <STRONG>backdrop</STRONG>
- Class: <STRONG>Backdrop</STRONG>
- Command-Line Switch: <STRONG>-backdrop</STRONG>
-
- Specifies a background color to use when filling in the
- area behind the tabs.
-
- Name: <STRONG>bevelAmount</STRONG>
- Class: <STRONG>BevelAmount</STRONG>
- Command-Line Switch: <STRONG>-bevelamount</STRONG>
-
- Specifes the size of tab corners. A value of 0 with
- angle set to 0 results in square tabs. A <STRONG>bevelAmount</STRONG> of
- 4, means that the tab will be drawn with angled corners
- that cut in 4 pixels from the edge of the tab. The
- default is 0.
-
- Name: <STRONG>command</STRONG>
- Class: <STRONG>Command</STRONG>
- Command-Line Switch: <STRONG>-command</STRONG>
- Specifes the prefix of a Tcl command to invoke to change the view in the
- widget associated with the tabset. When a user selects a tab, a Tcl command
- is invoked. The actual command consists of this option followed by a space
- and a number. The number is the numerical index of the tab that has been
- selected.
-
- Name: <STRONG>equalTabs</STRONG>
- Class: <STRONG>EqualTabs</STRONG>
- Command-Line Switch: <STRONG>-equaltabs</STRONG>
-
- Specifies whether to force tabs to be equal sized or
- not. A value of <STRONG>true</STRONG> means constrain tabs to be equal
- sized. A value of <STRONG>false</STRONG> allows each tab to size based
- on the text label size. The value may have any of the
- forms accepted by the <STRONG>Tcl_GetBoolean</STRONG>, such as <STRONG>true</STRONG>,
- <STRONG>false</STRONG>, <STRONG>0</STRONG>, <STRONG>1</STRONG>, <STRONG>yes</STRONG>, or <STRONG>no</STRONG>.
-
- For horizontally positioned tabs (<STRONG>tabPos</STRONG> is either <STRONG>s</STRONG> or
- <STRONG>n</STRONG>), <STRONG>true</STRONG> forces all tabs to be equal width (the width
- being equal to the longest label plus any padX speci-
- fied). Horizontal tabs are always equal in height.
-
- For vertically positioned tabs (<STRONG>tabPos</STRONG> is either <STRONG>w</STRONG> or
- <STRONG>e</STRONG>), <STRONG>true</STRONG> forces all tabs to be equal height (the height
- being equal to the height of the label with the largest
- font). Vertically oriented tabs are always equal in
- width.
-
- Name: <STRONG>gap</STRONG>
- Class: <STRONG>Gap</STRONG>
- Command-Line Switch: <STRONG>-gap</STRONG>
-
- Specifies the amount of pixel space to place between
- each tab. Value may be any pixel offset value. In addi-
- tion, a special keyword <STRONG>overlap</STRONG> can be used as the
- value to achieve a standard overlap of tabs. This value
- may have any of the forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>margin</STRONG>
- Class: <STRONG>Margin</STRONG>
- Command-Line Switch: <STRONG>-margin</STRONG>
-
- Specifies the amount of space to place between the out-
- side edge of the tabset and the outside edge of its
- tabs. If <STRONG>tabPos</STRONG> is <STRONG>s</STRONG>, this is the amount of space
- between the bottom edge of the tabset and the bottom
- edge of the set of tabs. If <STRONG>tabPos</STRONG> is <STRONG>n</STRONG>, this is the
- amount of space between the top edge of the tabset and
- the top edge of the set of tabs. If <STRONG>tabPos</STRONG> is <STRONG>e</STRONG>, this
- is the amount of space between the right edge of the
- tabset and the right edge of the set of tabs. If <STRONG>tabPos</STRONG>
- is <STRONG>w</STRONG>, this is the amount of space between the left edge
- of the tabset and the left edge of the set of tabs.
- This value may have any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>padX</STRONG>
- Class: <STRONG>PadX</STRONG>
- Command-Line Switch: <STRONG>-padx</STRONG>
-
- Specifies a non-negative value indicating how much
- extra space to request for a tab around its label in
- the X-direction. When computing how large a window it
- needs, the tab will add this amount to the width it
- would normally need The tab will end up with extra
- internal space to the left and right of its text label.
- This value may have any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>padY</STRONG>
- Class: <STRONG>PadY</STRONG>
- Command-Line Switch: <STRONG>-pady</STRONG>
-
- Specifies a non-negative value indicating how much
- extra space to request for a tab around its label in
- the Y-direction. When computing how large a window it
- needs, the tab will add this amount to the height it
- would normally need The tab will end up with extra
- internal space to the top and bottom of its text label.
- This value may have any of the forms acceptable to
- <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>raiseSelect</STRONG>
- Class: <STRONG>RaiseSelect</STRONG>
- Command-Line Switch: <STRONG>-raiseselect</STRONG>
-
- Specifes whether to slightly raise the selected tab
- from the rest of the tabs. The selected tab is drawn 2
- pixels closer to the outside edge of the tabset than
- the unselected tabs. A value of true says to raise
- selected tabs, a value of false turns this off. The
- default is false. The value may have any of the forms
- accepted by the <STRONG>Tcl_GetBoolean</STRONG>, such as <STRONG>true</STRONG>, <STRONG>false</STRONG>, <STRONG>0</STRONG>,
- <STRONG>1</STRONG>, <STRONG>yes</STRONG>, or <STRONG>no</STRONG>.
-
- Name: <STRONG>start</STRONG>
- Class: <STRONG>Start</STRONG>
- Command-Line Switch: <STRONG>-start</STRONG>
-
- Specifies the amount of space to place between the left
- or top edge of the tabset and the starting edge of its
- tabs. For horizontally positioned tabs, this is the
- amount of space between the left edge of the tabset and
- the left edge of the first tab. For vertically posi-
- tioned tabs, this is the amount of space between the
- top of the tabset and the top of the first tab. This
- value may change if the user performs a MButton-2
- scroll on the tabs. This value may have any of the
- forms acceptable to <STRONG>Tk_GetPixels</STRONG>.
-
- Name: <STRONG>state</STRONG>
- Class: <STRONG>State</STRONG>
- Command-Line Switch: <STRONG>-state</STRONG>
-
- Sets the active state of the tabset. Specifying <STRONG>normal</STRONG>
- allows all tabs to be selectable. Specifying <STRONG>disabled</STRONG>
- disables the tabset causing all tabs to be drawn in the
- disabledForeground color.
-
- Name: <STRONG>tabBorders</STRONG>
- Class: <STRONG>TabBorders</STRONG>
- Command-Line Switch: <STRONG>-tabborders</STRONG>
-
- Specifies whether to draw the borders of tabs that are
- not selected. Specifying true (the default) draws these
- borders, specifying false draws only the border around
- the selected tab. The value may have any of the forms
- accepted by the <STRONG>Tcl_GetBoolean</STRONG>, such as <STRONG>true</STRONG>, <STRONG>false,</STRONG> <STRONG>0</STRONG>,
- <STRONG>1</STRONG>, <STRONG>yes</STRONG>, or <STRONG>no</STRONG>.
-
- Name: <STRONG>tabPos</STRONG>
- Class: <STRONG>TabPos</STRONG>
- Command-Line Switch: <STRONG>-tabpos</STRONG>
-
- Specifies the location of the set of tabs in relation
- to another widget. Must be <STRONG>n</STRONG>, <STRONG>s</STRONG>, <STRONG>e</STRONG>, or <STRONG>w</STRONG>. Defaults to
- <STRONG>s</STRONG>. North tabs open downward, South tabs open upward.
- West tabs open to the right, east tabs open to the
- left.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>tabset</STRONG> command creates a new window (given by the path-
- Name argument) and makes it into a <STRONG>tabset</STRONG> widget. Additional
- <EM>options</EM>, described above may be specified on the command
- line or in the option database to configure aspects of the
- tabset such as its colors, font, and text. The <STRONG>tabset</STRONG> com-
- mand returns its <EM>pathName</EM> argument. At the time this command
- is invoked, there must not exist a window named <EM>pathName</EM>,
- but pathName's parent must exist.
-
- A <STRONG>tabset</STRONG> is a widget that contains a set of Tab buttons. It
- displays these tabs in a row or column depending on it tab-
- pos. When a tab is clicked on, it becomes the only tab in
- the tab set that is selected. All other tabs are deselected.
- The Tcl command prefix associated with this tab (through the
- command tab configure option) is invoked with the tab index
- number appended to its argument list. This allows the tabset
- to control another widget such as a Notebook.
-
-
-</PRE>
-<H2>TABS</H2><PRE>
- Tabs are drawn to appear attached to another widget. The
- tabset draws an edge boundary along one of its edges. This
- edge is known as the attachment edge. This edge location is
- dependent on the value of <STRONG>tabPos</STRONG>. For example, if <STRONG>tabPos</STRONG> is
- <STRONG>s</STRONG>, the attachment edge wil be on the top side of the tabset
- (in order to attach to the bottom or south side of its
- attached widget). The selected tab is draw with a 3d relief
- to appear above the other tabs. This selected tab "opens"
- toward attachment edge.
-
- Tabs can be controlled in their location along the edges,
- the angle that tab sides are drawn with, gap between tabs,
- starting margin of tabs, internal padding around labels in a
- tab, the font, and its text or bitmap.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- The <STRONG>tabset</STRONG> command creates a new Tcl command whose name is
- <EM>pathName</EM>. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- <EM>option</EM> and the <EM>arg</EM>s determine the exact behavior of the com-
- mand.
-
- Many of the widget commands for a tabset take as one argu-
- ment an indicator of which tab of the tabset to operate on.
- These indicators are called indexes and may be specified in
- any of the following forms:
-
- <EM>number</EM>
- Specifies the tab numerically, where 0 corresponds to
- the first tab in the tab set, 1 to the second, and so
- on.
-
- <STRONG>select</STRONG>
- Specifies the currently selected tab's index. If no tab
- is currently selected, the value -1 is returned.
-
- <STRONG>end</STRONG> Specifes the last tab in the tabset's index. If the
- tabset is empty this will return -1.
-
- <EM>pattern</EM>
- If the index doesn't satisfy any of the above forms,
- then this form is used. Pattern is pattern-matched
- against the label of each tab in the tabset, in order
- from the first to the last tab, until a matching entry
- is found. The rules of Tcl_StringMatch are used.
-
- The following commands are possible for tabset widgets:
-
- <EM>pathName</EM> <STRONG>add</STRONG> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Add a new tab at the end of the tabset. Returns
- the child site <EM>pathName</EM>. If additional arguments
- are present, they specify any of the following
- options:
-
- <STRONG>-angle</STRONG> <EM>value</EM>
- Specifes the angle of slope from the inner
- edge to the outer edge of the tab. An angle
- of 0 specifies square tabs. Valid ranges are
- 0 to 45 degrees inclusive. Default is 15
- degrees. If this option is specified as an
- empty string (the default), then the angle
- option for the overall tabset is used.
-
- <STRONG>-background</STRONG> <EM>value</EM>
- Specifies a background color to use for
- displaying tabs when they are in their normal
- state (unselected). If this option is speci-
- fied as an empty string (the default), then
- the background option for the overall tabset
- is used.
-
- <STRONG>-bevelamount</STRONG> <EM>value</EM>
- Specifes the size of tab corners. A value of
- 0 with angle set to 0 results in square tabs.
- A bevelAmount of 4, means that the tab will
- be drawn with angled corners that cut in 4
- pixels from the edge of the tab. The default
- is 0. This is generally only set at the tab-
- set configuration level. Tabs normally will
- want to share the same bevelAmount.
-
- <STRONG>-bitmap</STRONG> <EM>value</EM>
- If label is a non-empty string, specifies a
- bitmap to display in the tab. Bitmap may be
- of any of the forms accepted by Tk_GetBitmap.
-
- <STRONG>-disabledforeground</STRONG> <EM>value</EM>
- Specifies a foreground color to use for
- displaying tab labels when tabs are in their
- disable state. If this option is specified as
- an empty string (the default), then the disa-
- bledforeground option for the overall tabset
- is used.
-
- <STRONG>-font</STRONG> <EM>value</EM>
- Specifies the font to use when drawing the
- label on a tab. If this option is specified
- as an empty string then the font option for
- the overall tabset is used.
-
- <STRONG>-foreground</STRONG> <EM>value</EM>
- Specifies a foreground color to use for
- displaying tab labels when tabs are in their
- normal unselected state. If this option is
- specified as an empty string (the default),
- then the foreground option for the overall
- tabset is used.
-
- <STRONG>-image</STRONG> <EM>value</EM>
- If label is a non-empty string, specifies an
- image to display in the tab. Image must have
- been created with the image create command.
- Typically, if the image option is specified
- then it overrides other options that specify
- a bitmap or textual value to display in the
- widget; the image option may be reset to an
- empty string to re-enable a bitmap or text
- display.
-
- <STRONG>-label</STRONG> <EM>value</EM>
- Specifies a text string to be placed in the
- tabs label. If this value is set, the bitmap
- option is overridden and this option is used
- instead. This label serves as an additional
- identifier used to reference the tab. This
- label may be used for the index value in
- widget commands.
-
- <STRONG>-selectbackground</STRONG> <EM>value</EM>
- Specifies a background color to use for
- displaying the selected tab. If this option
- is specified as an empty string (the
- default), then the selectBackground option
- for the overall tabset is used.
-
- <STRONG>-selectforeground</STRONG> <EM>value</EM>
- Specifies a foreground color to use for
- displaying the selected tab. If this option
- is specified as an empty string (the
- default), then the selectForeground option
- for the overall tabset is used.
-
- <STRONG>-padx</STRONG> <EM>value</EM>
- Specifies a non-negative value indicating how
- much extra space to request for a tab around
- its label in the X-direction. When computing
- how large a window it needs, the tab will add
- this amount to the width it would normally
- need The tab will end up with extra internal
- space to the left and right of its text
- label. This value may have any of the forms
- acceptable to Tk_GetPixels. If this option is
- specified as an empty string (the default),
- then the padX option for the overall tabset
- is used
-
- <STRONG>-pady</STRONG> <EM>value</EM>
- Specifies a non-negative value indicating how
- much extra space to request for a tab around
- its label in the Y-direction. When computing
- how large a window it needs, the tab will add
- this amount to the height it would normally
- need The tab will end up with extra internal
- space to the top and bottom of its text
- label. This value may have any of the forms
- acceptable to Tk_GetPixels. If this option is
- specified as an empty string (the default),
- then the padY option for the overall tabset
- is used
-
- <STRONG>-state</STRONG> <EM>value</EM>
- Sets the state of the tab. Specifying normal
- allows this tab to be selectable. Specifying
- disabled disables the this tab causing its
- tab label to be drawn in the disabledFore-
- ground color. The tab will not respond to
- events until the state is set back to normal.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM>? ?<EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for <EM>path-</EM>
- <EM>Name</EM> (see <STRONG>Tk_ConfigureInfo</STRONG> for information on the
- format of this list). If option is specified with
- no value, then the command returns a list describ-
- ing the one named option (this list will be ident-
- ical to the corresponding sublist of the value
- returned if no option is specified). If one or
- more option-value pairs are specified, then the
- command modifies the given widget option(s) to
- have the given value(s); in this case the command
- returns an empty string. <EM>Option</EM> may have any of
- the values accepted by the tabset command.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>index1</EM> ?<EM>index2</EM>?
- Delete all of the tabs between <EM>index1</EM> and <EM>index2</EM>
- inclusive. If <EM>index2</EM> is omitted then it defaults
- to <EM>index1</EM>. Returns an empty string.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the numerical index corresponding to
- <EM>index</EM>.
-
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>index</EM> ?<EM>option</EM> <EM>value</EM> <EM>option</EM> <EM>value</EM> ...?
- Insert a new tab in the tabset before the tab
- specified by <EM>index</EM>. The additional arguments are
- the same as for the <STRONG>add</STRONG> command. Returns the tab's
- <EM>pathName</EM>.
-
- <EM>pathName</EM> <STRONG>next</STRONG>
- Advances the selected tab to the next tab (order
- is determined by insertion order). If the
- currently selected tab is the last tab in the tab-
- set, the selection wraps around to the first tab.
- It behaves as if the user selected the next tab.
-
- <EM>pathName</EM> <STRONG>tabconfigure</STRONG> <EM>index</EM> ?<EM>option</EM>? ?<EM>value</EM>?
- This command is similar to the <STRONG>configure</STRONG> command,
- except that it applies to the options for an indi-
- vidual tab, whereas configure applies to the
- options for the tabset as a whole. Options may
- have any of the values accepted by the <STRONG>add</STRONG> widget
- command. If options are specified, options are
- modified as indicated in the command and the com-
- mand returns an empty string. If no options are
- specified, returns a list describing the current
- options for tab index (see <STRONG>Tk_ConfigureInfo</STRONG> for
- information on the format of this list).
-
- <EM>pathName</EM> <STRONG>prev</STRONG>
- Moves the selected tab to the previous tab (order
- is determined by insertion order). If the
- currently selected tab is the first tab in the
- tabset, the selection wraps around to the last tab
- in the tabset. It behaves as if the user selected
- the previous tab.
-
- <EM>pathName</EM> <STRONG>select</STRONG> <EM>index</EM>
- Selects the tab specified by <EM>index</EM> as the
- currently selected tab. It behaves as if the user
- selected the new tab.
-
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- Following is an example that creates a tabset with two tabs
- and a list box that the tabset controls. In addition select-
- ing an item from the list also selects the corresponding
- tab.
-
- # Define a proc that knows how to select an item
- # from a list given an index from the tabset -command callback.
- proc selectItem { item } {
- .l selection clear [.l curselection]
- .l selection set $item
- .l see $item
-
- }
-
- # Define a proc that knows how to select a tab
- # given a y pixel coordinate from the list..
- proc selectTab { y } {
- set whichItem [.l nearest $y]
- .ts select $whichItem
- }
-
- # Create a listbox with two items (one and two)
- # and bind button 1 press to the selectTab procedure.
- listbox .l -selectmode single -exportselection false
- .l insert end one
- .l insert end two
- .l selection set 0
- pack .l
- bind .l &lt;ButtonPress-1&gt; { selectTab %y }
-
- # Create a tabset, set its -command to call selectItem
- # Add two labels to the tabset (one and two).
- tabset .ts -command selectItem
- .ts add -label 1
- .ts add -label 2
- .ts select 0
- pack .ts -fill x -expand no
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Bill W. Scott
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- tab tabset notebook tabnotebook
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>
+<TITLE>tabset - create and manipulate tabs as as set</TITLE>
+<H1>tabset - create and manipulate tabs as as set</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>tabset</B> <I>pathName</I> ?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- tabset
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>width</B><br>
+</td>
+<td valign=top>
+<B>font</B><br>
+<B>selectForeground</B><br>
+</td>
+<td valign=top>
+<B>selectBackground</B><br>
+<B>disabledForeground</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>height</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>angle</B>
+Class: <B>Angle</B>
+Command-Line Switch: <B>-angle</B>
+</pre>
+<UL>
+Specifes the angle of slope from the inner edge to the outer edge of the
+tab. An angle of 0 specifies square tabs. Valid ranges are 0 to 45 degrees
+inclusive. Default is 15 degrees. If tabPos is e or w, this option is ignored.
+</UL>
+<P>
+<pre>
+Name: <B>backdrop</B>
+Class: <B>Backdrop</B>
+Command-Line Switch: <B>-backdrop</B>
+</pre>
+<UL>
+Specifies a background color to use when filling in the area behind the tabs.
+</UL>
+<P>
+<pre>
+Name: <B>bevelAmount</B>
+Class: <B>BevelAmount</B>
+Command-Line Switch: <B>-bevelamount</B>
+</pre>
+<UL>
+Specifes the size of tab corners. A value of 0 with angle set to 0 results
+in square tabs. A <B>bevelAmount</B> of 4, means that the tab will be
+drawn with angled corners that cut in 4 pixels from the edge of the
+tab. The default is 0.
+</UL>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+Specifes the prefix of a Tcl command to invoke to change the view in the
+widget associated with the tabset. When a user selects a tab, a Tcl command
+is invoked. The actual command consists of this option followed by a space
+and a number. The number is the numerical index of the tab that has been
+selected.
+<P>
+<table>
+Name: <B>equalTabs</B>
+Class: <B>EqualTabs</B>
+Command-Line Switch: <B>-equaltabs</B>
+</pre>
+<UL>
+Specifies whether to force tabs to be equal sized or not. A value
+of <B>true</B> means constrain tabs to be equal sized. A value
+of <B>false</B> allows each tab to size based on the text label size. The
+value may have any of the forms accepted by the <B>Tcl_GetBoolean</B>, such
+as <B>true</B>, <B>false</B>, <B>0</B>, <B>1</B>, <B>yes</B>, or <B>no</B>.
+</UL>
+<UL>
+For horizontally positioned tabs (<B>tabPos</B> is either <B>s</B>
+or <B>n</B>), <B>true</B> forces all tabs to be equal width (the width being
+equal to the longest label plus any padX specified). Horizontal tabs are
+always equal in height.
+</UL>
+<UL>
+For vertically positioned tabs (<B>tabPos</B> is either <B>w</B> or <B>e</B>),
+<B>true</B> forces all tabs to be equal height (the height being equal to
+the height of the label with the largest font). Vertically oriented tabs are
+always equal in width.
+</UL>
+<P>
+<pre>
+Name: <B>gap</B>
+Class: <B>Gap</B>
+Command-Line Switch: <B>-gap</B>
+</pre>
+<UL>
+Specifies the amount of pixel space to place between each tab. Value may
+be any pixel offset value. In addition, a special keyword <B>overlap</B>
+can be used as the value to achieve a standard overlap of tabs. This value
+may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>margin</B>
+Class: <B>Margin</B>
+Command-Line Switch: <B>-margin</B>
+</pre>
+<UL>
+Specifies the amount of space to place between the outside edge of the
+tabset and the outside edge of its tabs. If <B>tabPos</B> is <B>s</B>, this
+is the amount of space between the bottom edge of the tabset and the
+bottom edge of the set of tabs. If <B>tabPos</B> is <B>n</B>, this is the
+amount of space between the top edge of the tabset and the top edge of the
+set of tabs. If <B>tabPos</B> is <B>e</B>, this is the amount of space between
+the right edge of the tabset and the right edge of the set of tabs.
+If <B>tabPos</B> is <B>w</B>, this is the amount of space between the left
+edge of the tabset and the left edge of the set of tabs. This value may
+have any of the forms acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>padX</B>
+Class: <B>PadX</B>
+Command-Line Switch: <B>-padx</B>
+</pre>
+<UL>
+Specifies a non-negative value indicating how much extra space to request for
+a tab around its label in the X-direction. When computing how large a
+window it needs, the tab will add this amount to the width it would normally
+need The tab will end up with extra internal space to the left and right of
+its text label. This value may have any of the forms acceptable
+to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>padY</B>
+Class: <B>PadY</B>
+Command-Line Switch: <B>-pady</B>
+</pre>
+<UL>
+Specifies a non-negative value indicating how much extra space to request
+for a tab around its label in the Y-direction. When computing how large a
+window it needs, the tab will add this amount to the height it would
+normally need The tab will end up with extra internal space to the top and
+bottom of its text label. This value may have any of the forms acceptable
+to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>raiseSelect</B>
+Class: <B>RaiseSelect</B>
+Command-Line Switch: <B>-raiseselect</B>
+</pre>
+<UL>
+Specifes whether to slightly raise the selected tab from the rest of the
+tabs. The selected tab is drawn 2 pixels closer to the outside edge of the
+tabset than the unselected tabs. A value of true says to raise selected
+tabs, a value of false turns this off. The default is false. The value may
+have any of the forms accepted by the <B>Tcl_GetBoolean</B>, such
+as <B>true</B>, <B>false</B>, <B>0</B>, <B>1</B>, <B>yes</B>, or <B>no</B>.
+</UL>
+<P>
+<pre>
+Name: <B>start</B>
+Class: <B>Start</B>
+Command-Line Switch: <B>-start</B>
+</pre>
+<UL>
+Specifies the amount of space to place between the left or top edge of the
+tabset and the starting edge of its tabs. For horizontally positioned tabs,
+this is the amount of space between the left edge of the tabset and the left
+edge of the first tab. For vertically positioned tabs, this is the amount
+of space between the top of the tabset and the top of the first tab. This
+value may change if the user performs a MButton-2 scroll on the tabs. This
+value may have any of the forms acceptable to <B>Tk_GetPixels</B>.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Sets the active state of the tabset. Specifying <B>normal</B> allows all
+tabs to be selectable. Specifying <B>disabled</B> disables the tabset
+causing all tabs to be drawn in the disabledForeground color.
+</UL>
+<P>
+<pre>
+Name: <B>tabBorders</B>
+Class: <B>TabBorders</B>
+Command-Line Switch: <B>-tabborders</B>
+</pre>
+<UL>
+Specifies whether to draw the borders of tabs that are not selected.
+Specifying true (the default) draws these borders, specifying false
+draws only the border around the selected tab. The value may have any
+of the forms accepted by the <B>Tcl_GetBoolean</B>, such
+as <B>true</B>, <B>false,</B> <B>0</B>, <B>1</B>, <B>yes</B>, or <B>no</B>.
+</UL>
+<P>
+<pre>
+Name: <B>tabPos</B>
+Class: <B>TabPos</B>
+Command-Line Switch: <B>-tabpos</B>
+</pre>
+<UL>
+Specifies the location of the set of tabs in relation to another widget. Must
+be <B>n</B>, <B>s</B>, <B>e</B>, or <B>w</B>. Defaults to <B>s</B>. North tabs
+open downward, South tabs open upward. West tabs open to the right, east
+tabs open to the left.
+</UL>
+</pre><HR>
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>tabset</B> command creates a new window (given by the pathName
+argument) and makes it into a <B>tabset</B> widget. Additional <I>options</I>,
+described above may be specified on the command line or in the option
+database to configure aspects of the tabset such as its colors, font, and
+text. The <B>tabset</B> command returns its <I>pathName</I> argument. At the
+time this command is invoked, there must not exist a window
+named <I>pathName</I>, but pathName's parent must exist.
+<P>
+A <B>tabset</B> is a widget that contains a set of Tab buttons. It displays
+these tabs in a row or column depending on it tabpos. When a tab is
+clicked on, it becomes the only tab in the tab set that is selected. All
+other tabs are deselected. The Tcl command prefix associated with this
+tab (through the command tab configure option) is invoked with the tab
+index number appended to its argument list. This allows the tabset to
+control another widget such as a Notebook.
+</pre><H2>TABS</H2>
+Tabs are drawn to appear attached to another widget. The tabset draws an
+edge boundary along one of its edges. This edge is known as the attachment
+edge. This edge location is dependent on the value of <B>tabPos</B>. For
+example, if <B>tabPos</B> is <B>s</B>, the attachment edge wil be on the
+top side of the tabset (in order to attach to the bottom or south side of
+its attached widget). The selected tab is draw with a 3d relief to appear
+above the other tabs. This selected tab "opens" toward attachment edge.
+<P>
+Tabs can be controlled in their location along the edges, the angle that
+tab sides are drawn with, gap between tabs, starting margin of tabs,
+internal padding around labels in a tab, the font, and its text or bitmap.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<P>
+The <B>tabset</B> command creates a new Tcl command whose name
+is <I>pathName</I>. This command may be used to invoke various operations on
+the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>option</I> and the <I>arg</I>s
+determine the exact behavior of the command.
+<P>
+Many of the widget commands for a tabset take as one argument an indicator
+of which tab of the tabset to operate on. These indicators are called indexes
+and may be specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the tab numerically, where 0 corresponds to the first tab in
+the tab set, 1 to the second, and so on.
+</DL>
+<DL>
+<DT> <B>select</B>
+</I></B>
+<DD> Specifies the currently selected tab's index. If no tab is currently
+selected, the value -1 is returned.
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Specifes the last tab in the tabset's index. If the tabset is empty this
+will return -1.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy any of the above forms, then this form is
+used. Pattern is pattern-matched against the label of each tab in the
+tabset, in order from the first to the last tab, until a matching entry is
+found. The rules of Tcl_StringMatch are used.
+</DL>
+<P>
+'.............................................................................
+The following commands are possible for tabset widgets:
+<UL>
+<DL>
+<DT> <I>pathName</I> <B>add</B> ?<I>option</I> <I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> Add a new tab at the end of the tabset. Returns the child
+site <I>pathName</I>. If additional arguments are present, they specify
+any of the following options:
+</DL>
+<UL>
+<DL>
+<DT> <B>-angle</B> <I>value</I>
+</I></B>
+<DD> Specifes the angle of slope from the inner edge to the outer edge of
+the tab. An angle of 0 specifies square tabs. Valid ranges are 0 to
+45 degrees inclusive. Default is 15 degrees. If this option is specified as
+an empty string (the default), then the angle option for the overall tabset
+is used.
+</DL>
+<DL>
+<DT> <B>-background</B> <I>value</I>
+</I></B>
+<DD> Specifies a background color to use for displaying tabs when they are in
+their normal state (unselected). If this option is specified as an empty
+string (the default), then the background option for the overall tabset is
+used.
+</DL>
+<DL>
+<DT> <B>-bevelamount</B> <I>value</I>
+</I></B>
+<DD> Specifes the size of tab corners. A value of 0 with angle set to 0 results
+in square tabs. A bevelAmount of 4, means that the tab will be drawn with
+angled corners that cut in 4 pixels from the edge of the tab. The default is
+0. This is generally only set at the tabset configuration level. Tabs
+normally will want to share the same bevelAmount.
+</DL>
+<DL>
+<DT> <B>-bitmap</B> <I>value</I>
+</I></B>
+<DD> If label is a non-empty string, specifies a bitmap to display in the
+tab. Bitmap may be of any of the forms accepted by Tk_GetBitmap.
+</DL>
+<DL>
+<DT> <B>-disabledforeground</B> <I>value</I>
+</I></B>
+<DD> Specifies a foreground color to use for displaying tab labels when tabs are
+in their disable state. If this option is specified as an empty
+string (the default), then the disabledforeground option for the overall
+tabset is used.
+</DL>
+<DL>
+<DT> <B>-font</B> <I>value</I>
+</I></B>
+<DD> Specifies the font to use when drawing the label on a tab. If this option
+is specified as an empty string then the font option for the overall
+tabset is used.
+</DL>
+<DL>
+<DT> <B>-foreground</B> <I>value</I>
+</I></B>
+<DD> Specifies a foreground color to use for displaying tab labels when tabs
+are in their normal unselected state. If this option is specified as an
+empty string (the default), then the foreground option for the overall
+tabset is used.
+</DL>
+<DL>
+<DT> <B>-image</B> <I>value</I>
+</I></B>
+<DD> If label is a non-empty string, specifies an image to display in the
+tab. Image must have been created with the image create command. Typically,
+if the image option is specified then it overrides other options that
+specify a bitmap or textual value to display in the widget; the image
+option may be reset to an empty string to re-enable a bitmap or text display.
+</DL>
+<DL>
+<DT> <B>-label</B> <I>value</I>
+</I></B>
+<DD> Specifies a text string to be placed in the tabs label. If this value is
+set, the bitmap option is overridden and this option is used instead. This
+label serves as an additional identifier used to reference the tab. This
+label may be used for the index value in widget commands.
+</DL>
+<DL>
+<DT> <B>-selectbackground</B> <I>value</I>
+</I></B>
+<DD> Specifies a background color to use for displaying the selected tab. If
+this option is specified as an empty string (the default), then the
+selectBackground option for the overall tabset is used.
+</DL>
+<DL>
+<DT> <B>-selectforeground</B> <I>value</I>
+</I></B>
+<DD> Specifies a foreground color to use for displaying the selected tab. If
+this option is specified as an empty string (the default), then the
+selectForeground option for the overall tabset is used.
+</DL>
+<DL>
+<DT> <B>-padx</B> <I>value</I>
+</I></B>
+<DD> Specifies a non-negative value indicating how much extra space to request
+for a tab around its label in the X-direction. When computing how large
+a window it needs, the tab will add this amount to the width it would
+normally need The tab will end up with extra internal space to the left
+and right of its text label. This value may have any of the forms acceptable
+to Tk_GetPixels. If this option is specified as an empty string (the
+default), then the padX option for the overall tabset is used
+</DL>
+<DL>
+<DT> <B>-pady</B> <I>value</I>
+</I></B>
+<DD> Specifies a non-negative value indicating how much extra space to request
+for a tab around its label in the Y-direction. When computing how large
+a window it needs, the tab will add this amount to the height it would
+normally need The tab will end up with extra internal space to the top
+and bottom of its text label. This value may have any of the forms
+acceptable to Tk_GetPixels. If this option is specified as an empty
+string (the default), then the padY option for the overall tabset is used
+</DL>
+<DL>
+<DT> <B>-state</B> <I>value</I>
+</I></B>
+<DD> Sets the state of the tab. Specifying normal allows this tab to be
+selectable. Specifying disabled disables the this tab causing its tab label
+to be drawn in the disabledForeground color. The tab will not respond to
+events until the state is set back to normal.
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> Query or modify the configuration options of the widget. If no <I>option</I>
+is specified, returns a list describing all of the available options
+for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for information on the
+format of this list). If option is specified with no value, then the
+command returns a list describing the one named option (this list will be
+identical to the corresponding sublist of the value returned if no option
+is specified). If one or more option-value pairs are specified, then the
+command modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string. <I>Option</I> may have any
+of the values accepted by the tabset command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>delete</B> <I>index1</I> ?<I>index2</I>?
+</I></B>
+<DD> Delete all of the tabs between <I>index1</I> and <I>index2</I> inclusive.
+If <I>index2</I> is omitted then it defaults to <I>index1</I>. Returns an
+empty string.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>index</B> <I>index</I>
+</I></B>
+<DD> Returns the numerical index corresponding to <I>index</I>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>insert</B> <I>index</I> ?<I>option</I> <I>value</I> <I>option</I> <I>value</I> ...?
+</I></B>
+<DD> Insert a new tab in the tabset before the tab specified by <I>index</I>. The
+additional arguments are the same as for the <B>add</B> command. Returns
+the tab's <I>pathName</I>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>next</B>
+</I></B>
+<DD> Advances the selected tab to the next tab (order is determined by insertion
+order). If the currently selected tab is the last tab in the tabset, the
+selection wraps around to the first tab. It behaves as if the user
+selected the next tab.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>tabconfigure</B> <I>index</I> ?<I>option</I>? ?<I>value</I>?
+</I></B>
+<DD> This command is similar to the <B>configure</B> command, except that it
+applies to the options for an individual tab, whereas configure applies to
+the options for the tabset as a whole. Options may have any of the values
+accepted by the <B>add</B> widget command. If options are specified, options
+are modified as indicated in the command and the command returns an empty
+string. If no options are specified, returns a list describing the current
+options for tab index (see <B>Tk_ConfigureInfo</B> for information on
+the format of this list).
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>prev</B>
+</I></B>
+<DD> Moves the selected tab to the previous tab (order is determined by insertion
+order). If the currently selected tab is the first tab in the tabset, the
+selection wraps around to the last tab in the tabset. It behaves as if
+the user selected the previous tab.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>select</B> <I>index</I>
+</I></B>
+<DD> Selects the tab specified by <I>index</I> as the currently selected tab. It
+behaves as if the user selected the new tab.
+
+</DL>
+</pre><H2>EXAMPLE </H2>
+<P>
+Following is an example that creates a tabset with two tabs and a list box
+that the tabset controls. In addition selecting an item from the list
+also selects the corresponding tab.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<UL><br>
+a<br>
+how<br>
+item<br>
+list<br>
+from<br>
+callback.<br>
+item<br>
+selection<br>
+.l<br>
+.l<br>
+<UL><br>
+proc<br>
+to<br>
+#<br>
+pixel<br>
+list..<br>
+y<br>
+whichItem<br>
+.ts<br>
+</UL><br>
+a<br>
+items<br>
+#<br>
+1<br>
+selectTab<br>
+-selectmode<br>
+.l<br>
+.l<br>
+.l<br>
+pack<br>
+&lt;ButtonPress-1&gt;<br>
+}<br>
+Create<br>
+its<br>
+selectItem<br>
+labels<br>
+(one<br>
+.ts<br>
+add<br>
+add<br>
+select<br>
+-fill<br>
+</UL><br>
+</td>
+<td valign=top>
+</UL><br>
+proc<br>
+to<br>
+#<br>
+given<br>
+the<br>
+proc<br>
+}<br>
+clear<br>
+selection<br>
+see<br>
+#<br>
+that<br>
+select<br>
+given<br>
+coordinate<br>
+proc<br>
+}<br>
+[.l<br>
+select<br>
+<UL><br>
+listbox<br>
+(one<br>
+and<br>
+press<br>
+procedure.<br>
+single<br>
+insert<br>
+insert<br>
+selection<br>
+.l<br>
+{<br>
+</UL><br>
+a<br>
+-command<br>
+#<br>
+to<br>
+and<br>
+-command<br>
+-label<br>
+-label<br>
+0<br>
+x<br>
+</td>
+<td valign=top>
+#<br>
+that<br>
+select<br>
+from<br>
+an<br>
+tabset<br>
+selectItem<br>
+{<br>
+[.l<br>
+set<br>
+$item<br>
+Define<br>
+knows<br>
+a<br>
+a<br>
+from<br>
+selectTab<br>
+{<br>
+nearest<br>
+$whichItem<br>
+#<br>
+with<br>
+and<br>
+bind<br>
+to<br>
+listbox<br>
+-exportselection<br>
+end<br>
+end<br>
+set<br>
+bind<br>
+selectTab<br>
+<UL><br>
+tabset,<br>
+to<br>
+Add<br>
+the<br>
+two).<br>
+selectItem<br>
+1<br>
+2<br>
+pack<br>
+-expand<br>
+</td>
+<td valign=top>
+Define<br>
+knows<br>
+an<br>
+a<br>
+index<br>
+-command<br>
+{<br>
+.l<br>
+curselection]<br>
+$item<br>
+}<br>
+a<br>
+how<br>
+tab<br>
+y<br>
+the<br>
+{<br>
+set<br>
+$y]<br>
+}<br>
+Create<br>
+two<br>
+two)<br>
+button<br>
+the<br>
+.l<br>
+false<br>
+one<br>
+two<br>
+0<br>
+.l<br>
+%y<br>
+#<br>
+set<br>
+call<br>
+two<br>
+tabset<br>
+tabset<br>
+.ts<br>
+.ts<br>
+.ts<br>
+.ts<br>
+no<br>
+</td>
+</table>
+</pre><H2>AUTHOR</H2>
+Bill W. Scott
+</pre><H2>KEYWORDS</H2>
+tab tabset notebook tabnotebook
diff --git a/itcl/iwidgets3.0.0/demos/html/timeentry.n.html b/itcl/iwidgets3.0.0/demos/html/timeentry.n.html
new file mode 100644
index 00000000000..f0bcdc4783f
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/timeentry.n.html
@@ -0,0 +1,256 @@
+<TITLE>timeentry - Create and manipulate a timeentry widget</TITLE>
+<H1>timeentry - Create and manipulate a timeentry widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>timeentry<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- LabeledWidget &lt;- Timefield &lt;- Timeentry
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>justify</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on these
+inherited options.
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>command</B><br>
+<B>textFont</B><br>
+</td>
+<td valign=top>
+<B>format</B><br>
+</td>
+<td valign=top>
+<B>seconds</B><br>
+</td>
+<td valign=top>
+<B>textBackground</B><br>
+</td>
+</table>
+<P>
+See the "timefield" class manual entry for details on these
+inherited options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>hourRadius</B><br>
+<B>pivotRadius</B><br>
+<B>clockColor</B><br>
+<B>watchWidth</B><br>
+</td>
+<td valign=top>
+<B>hourColor</B><br>
+<B>pivotColor</B><br>
+<B>clockStipple</B><br>
+</td>
+<td valign=top>
+<B>minuteRadius</B><br>
+<B>secondRadius</B><br>
+<B>tickColor</B><br>
+</td>
+<td valign=top>
+<B>minuteColor</B><br>
+<B>secondColor</B><br>
+<B>watchHeight</B><br>
+</td>
+</table>
+<P>
+See the "watch" manual entry for details on the associated options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>closeText</B>
+Class: <B>Text</B>
+Command-Line Switch: <B>-closetext</B>
+</pre>
+<UL>
+Specifies the text to be displayed on the close button of the watch
+popup. The default is Close.
+</UL>
+<P>
+<pre>
+Name: <B>grab</B>
+Class: <B>Grab</B>
+Command-Line Switch: <B>-grab</B>
+</pre>
+<UL>
+Specifies the grab level, <B>local</B> or <B>global</B>, to be obtained before
+bringing up the popup watch. The default is global. For more information
+concerning grab levels, consult the documentation for Tk's <B>grab</B> command.
+</UL>
+<P>
+<pre>
+Name: <B>icon</B>
+Class: <B>Icon</B>
+Command-Line Switch: <B>-icon</B>
+</pre>
+<UL>
+Specifies the watch icon image to be used in the timeentry.
+This image must have been created previously with
+the <B>image create</B> command. Should one not be provided,
+then one will be generated, pixmap if possible, bitmap otherwise.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specifies the state of the widget which may be <B>disabled</B> or
+<B>normal</B>. A disabled state prevents selection of the timefield
+or time icon button.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>timeentry</B> command creates a time entry field
+with a popup watch by combining the timefield and watch
+widgets together. This allows a user to enter the time via the
+keyboard or by using the mouse and selecting the watch icon
+which brings up a popup watch.
+</pre>
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>timeentry</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for timeentry widgets:
+</pre><H2>INHERITED METHODS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>get</B><br>
+</td>
+<td valign=top>
+<B>isvalid</B><br>
+</td>
+<td valign=top>
+<B>show</B><br>
+</td>
+<td valign=top>
+</td>
+</table>
+<P>
+See the "timefield" manual entry for details on the associated methods.
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>timeentry</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>timeentry</B>
+command.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>label</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The label component provides a label component to used to identify the time.
+See the "label" widget manual entry for details on the label component item.
+</UL>
+<P>
+<pre>
+Name: <B>iconbutton</B>
+Class: <B>Label</B>
+</pre>
+<UL>
+The iconbutton component provides a labelbutton component to act as a
+lightweight button
+displaying the watch icon. Upon pressing the labelbutton, the watch
+appears. See the "label" widget manual entry for details on the
+labelbutton component item.
+</UL>
+<P>
+<pre>
+Name: <B>time</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+The time component provides the entry field for time input and display.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the time component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ timeentry .te
+ pack .te
+</pre>
+</pre><H2>AUTHOR</H2>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+<P>
+</pre><H2>KEYWORDS</H2>
+timeentry, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/timefield.n.html b/itcl/iwidgets3.0.0/demos/html/timefield.n.html
new file mode 100644
index 00000000000..642c7bed3f9
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/timefield.n.html
@@ -0,0 +1,207 @@
+<TITLE>timefield - Create and manipulate a time field widget</TITLE>
+<H1>timefield - Create and manipulate a time field widget</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>timefield<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- LabeledWidget &lt;- timefield
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+<B>foreground</B><br>
+<B>justify</B><br>
+</td>
+<td valign=top>
+<B>borderWidth</B><br>
+<B>highlightColor</B><br>
+<B>relief</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+<B>highlightThickness</B><br>
+</td>
+<td valign=top>
+<B>exportSelection</B><br>
+<B>insertBackground</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>INHERITED OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>labelMargin</B><br>
+<B>state</B><br>
+</td>
+<td valign=top>
+<B>labelBitmap</B><br>
+<B>labelPos</B><br>
+</td>
+<td valign=top>
+<B>labelFont</B><br>
+<B>labelText</B><br>
+</td>
+<td valign=top>
+<B>labelImage</B><br>
+<B>labelVariable</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the
+inherited options.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>childSitePos</B>
+Class: <B>Position</B>
+Command-Line Switch: <B>-childsitepos</B>
+</pre>
+<UL>
+Specifies the position of the child site in the time field: <B>n</B>,
+<B>s</B>, <B>e</B>, or <B>w</B>. The default is e.
+</UL>
+<P>
+<pre>
+Name: <B>command</B>
+Class: <B>Command</B>
+Command-Line Switch: <B>-command</B>
+</pre>
+<UL>
+Specifies a Tcl command to be executed upon detection of a Return key
+press event.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specifies one of two states for the timefield: <B>normal</B> or <B>disabled</B>.
+If the timefield is disabled then input is not accepted. The default is
+normal.
+</UL>
+<P>
+<pre>
+Name: <B>textBackground</B>
+Class: <B>Background</B>
+Command-Line Switch: <B>-textbackground</B>
+</pre>
+<UL>
+Background color for inside textual portion of the entry field. The value
+may be given in any of the forms acceptable to <B>Tk_GetColor</B>.
+</UL>
+<P>
+<pre>
+Name: <B>textFont</B>
+Class: <B>Font</B>
+Command-Line Switch: <B>-textfont</B>
+</pre>
+<UL>
+Name of font to use for display of text in timefield. The value
+may be given in any of the forms acceptable to <B>Tk_GetFont</B>.
+</UL>
+<P>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+The <B>timefield</B> command creates an enhanced text entry widget for
+the purpose of time entry with various degrees of built-in intelligence.
+</pre>
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>timefield</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This
+command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for timefield widgets:
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>timefield</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>timefield</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B> ?<B>format</B>?
+</I></B>
+<DD> Returns the current contents of the timefield in a format of
+string or as an integer clock value using the <B>-string</B> and <B>-clicks</B>
+format options respectively. The default is by string. Reference the
+clock command for more information on obtaining times and their
+formats.
+</DL>
+<DL>
+<DT> <I>pathName <B>isvalid</B>
+</I></B>
+<DD> Returns a boolean indication of the validity of the currently
+displayed time value. For example, 12:59:59 is valid whereas
+25:59:59 is invalid.
+</DL>
+<DL>
+<DT> <I>pathName <B>show</B> <I>time</I>
+</I></B>
+<DD> Changes the currently displayed time to be that of the time
+argument. The time may be specified either as a string, an
+integer clock value or the keyword "now" (the default).
+Reference the clock command for more information on obtaining
+times and their formats.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>time</B>
+Class: <B>Entry</B>
+</pre>
+<UL>
+The time component provides the entry field for time input and display.
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/entry.n.html"> "entry" </A> widget manual entry for details on the time component item.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+ proc returnCmd {} {
+ puts [.tf get]
+ }
+
+ timefield .tf -command returnCmd
+ pack .tf -fill x -expand yes -padx 10 -pady 10
+</pre>
+</pre><H2>AUTHOR</H2>
+John A. Tucker
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+<P>
+</pre><H2>KEYWORDS</H2>
+timefield, widget
diff --git a/itcl/iwidgets3.0.0/demos/html/toolbar.n.html b/itcl/iwidgets3.0.0/demos/html/toolbar.n.html
index 4292c0ddeef..456fd675b61 100644
--- a/itcl/iwidgets3.0.0/demos/html/toolbar.n.html
+++ b/itcl/iwidgets3.0.0/demos/html/toolbar.n.html
@@ -1,348 +1,351 @@
-<HTML>
-<HEAD>
-<TITLE>iwidgets2.2.0 User Commands - toolbar</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<H1>iwidgets2.2.0 User Commands - toolbar</H1>
-<HR>
-<PRE>
+<TITLE><B>toolbar</B> - Create and manipulate a tool bar</TITLE>
+<H1><B>toolbar</B> - Create and manipulate a tool bar</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>toolbar</B> <I>pathName</I> ?<I>options</I>?
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>activeBackground</B><br>
+<B>activeForeground</B><br>
+<B>background</B><br>
+<B>borderWidth</B><br>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>disabledForeground</B><br>
+<B>font</B><br>
+<B>foreground</B><br>
+<B>highlightBackground</B><br>
+<B>highlightColor</B><br>
+</td>
+<td valign=top>
+<B>highlightThickness</B><br>
+<B>insertBackground</B><br>
+<B>insertForeground</B><br>
+<B>orient</B><br>
+<B>selectBackground</B><br>
+</td>
+<td valign=top>
+<B>selectBorderWidth</B><br>
+<B>selectColor</B><br>
+<B>selectForeground</B><br>
+<B>state</B><br>
+<B>troughColor</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options. For widgets
+added to the toolbar, these options will be propogated if the widget supports
+the option. For example, all widgets that support a font option will be changed
+if the the toolbar's font option is configured.
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>balloonBackground</B>
+Class: <B>BalloonBackground</B>
+Command-Line Switch: <B>-ballooonbackground</B>
+</pre>
+<UL>
+Specifies the background color of the balloon help displayed at the bottom
+center of a widget on the toolbar that has a non empty string for its
+balloonStr option. The default color is yellow.
+</UL>
+<P>
+<pre>
+Name: <B>balloonDelay1</B>
+Class: <B>BalloonDelay1</B>
+Command-Line Switch: <B>-balloondelay1</B>
+</pre>
+<UL>
+Specifies the length of time (in milliseconds) to wait before initially
+posting a balloon help hint window. This delay is in effect whenever 1)
+the mouse leaves the toolbar, or 2) a toolbar item is selected with the
+mouse button.
+</UL>
+<P>
+<pre>
+Name: <B>balloonDelay2</B>
+Class: <B>BalloonDelay2</B>
+Command-Line Switch: <B>-balloondelay2</B>
+</pre>
+<UL>
+Specifies the length of time (in milliseconds) to wait before continuing to
+post balloon help hint windows. This delay is in effect after the first
+time a balloon hint window is activated. It remains in effect until 1) the
+mouse leaves the toolbar, or 2) a toolbar item is selected with the mouse
+button.
+</UL>
+<P>
+<pre>
+Name: <B>balloonFont</B>
+Class: <B>BalloonFont</B>
+Command-Line Switch: <B>-balloonfont</B>
+</pre>
+<UL>
+Specifies the font of the balloon help text displayed at the bottom center
+of a widget on the toolbar that has a non empty string for its
+balloonStr option. The default font is 6x10.
+</UL>
+<P>
+<pre>
+Name: <B>balloonForeground</B>
+Class: <B>BalloonForeground</B>
+Command-Line Switch: <B>-ballooonforeground</B>
+</pre>
+<UL>
+Specifies the foreground color of the balloon help displayed at the
+bottom center of a widget on the toolbar that has a non empty string for
+its balloonStr option. The default color is black.
+</UL>
+<P>
+<pre>
+Name: <B>helpVariable</B>
+Class: <B>HelpVariable</B>
+Command-Line Switch: <B>-helpvariable</B>
+</pre>
+<UL>
+Specifies the global variable to update whenever the mouse is in motion
+over a toolbar widget. This global variable is updated with the current
+value of the active widget's helpStr. Other widgets can "watch" this
+variable with the trace command, or as is the case with entry or label
+widgets, they can set their textVariable to the same global variable. This
+allows for a simple implementation of a help status bar. Whenever the
+mouse leaves a menu entry, the helpVariable is set to the empty string {}.
+</UL>
+<P>
+<pre>
+Name: <B>orient</B>
+Class: <B>Orient</B>
+Command-Line Switch: <B>-orient</B>
+</pre>
+<UL>
+Specifies the orientation of the toolbar. Must be either horizontal or
+vertical.
+</UL>
+</pre><HR>
+</pre><H2>DESCRIPTION</H2>
+The <B>toolbar</B> command creates a new window (given by the pathName
+argument) and makes it into a <B>toolbar</B> widget. Additional options,
+described above may be specified on the command line or in the option
+database to configure aspects of the toolbar such as its colors, font,
+and orientation. The <B>toolbar</B> command returns its pathName argument. At
+the time this command is invoked, there must not exist a window named
+pathName, but pathName's parent must exist.
+<P>
+A <B>toolbar</B> is a widget that displays a collection of widgets arranged
+either in a row or a column (depending on the value of the -orient option).
+This collection of widgets is usually for user convenience to give access
+to a set of commands or settings. Any widget may be placed on a toolbar.
+However, command or value-oriented widgets (such as button, radiobutton,
+etc.) are usually the most useful kind of widgets to appear on a toolbar.
+<P>
+In addition, the toolbar adds two new options to all widgets that are added to
+it. These are the <B>helpStr</B> and <B>balloonStr</B> options. See the
+discussion for the widget command add below.
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<P>
+The toolbar command creates a new Tcl command whose name is pathName. This
+command may be used to invoke various operations on the widget. It has the
+following general form:
+<pre>
+<I>pathName</I> <I>option</I> <I>?arg arg ...?</I>
+</pre>
+Option and args determine the exact behavior of the command.
+<P>
+Many of the widget commands for a toolbar take as one argument an indicator of
+which widget item of the toolbar to operate on. The indicator is called
+an <B>index</B> and may be specified in any of the following forms:
+<DL>
+<DT> <I>number</I>
+</I></B>
+<DD> Specifies the widget numerically, where 0 corresponds to the first
+widget in the notebook, 1 to the second, and so on. (For horizontal, 0 is the
+leftmost; for vertical, 0 is the topmost).
+</DL>
+<DL>
+<DT> <B>end</B>
+</I></B>
+<DD> Specifes the last widget in the toolbar's index. If the toolbar is
+empty this will return -1.
+</DL>
+<DL>
+<DT> <B>last</B>
+</I></B>
+<DD> Same as end.
+</DL>
+<DL>
+<DT> <I>pattern</I>
+</I></B>
+<DD> If the index doesn't satisfy any of the above forms, then this form is
+used. Pattern is pattern-matched against the widgetName of each widget in the
+toolbar, in order from the first to the last widget, until a matching entry is
+found. An exact match must occur.
+</DL>
+<P>
+The following commands are possible for toolbar widgets:
+<DL>
+<DT> <I>pathName</I> <B>add</B> <I>widgetCommand</I> <I>widgetName</I> <I>?option value?</I>
+</I></B>
+<DD> Adds a widget with the command widgetCommand whose name is widgetName to the
+toolbar. If widgetCommand is radiobutton or checkbutton, its packing is
+slightly padded to match the geometry of button widgets. In addition, the
+indicatorOn option is false by default and the selectColor is that of the
+toolbar background by default. This allows Radiobutton and Checkbutton widgets
+to be added as icons by simply setting their bitmap or image options. If
+additional arguments are present, they are the set of available options
+that the widget type of <I>widgetCommand</I> supports. In addition they may
+also be one of the following options:
+</DL>
+<UL>
+<DL>
+<DT> <B>-helpstr</B> <I>value</I>
+</I></B>
+<DD> Specifes the help string to associate with the widget. When the mouse moves
+over the widget, the variable denoted by <B>helpVariable</B> is set
+to <B>helpStr</B>. Another widget can bind to the helpVariable and thus
+track status help.
+</DL>
+<DL>
+<DT> <B>-balloonstr</B> <I>value</I>
+</I></B>
+<DD> Specifes the string to display in a balloon window for this widget. A
+balloon window is a small popup window centered at the bottom of the
+widget. Usually the <B>balloonStr</B> value is the name of the item on the
+toolbar. It is sometimes known as a hint window.
+<UL>
+When the mouse moves into an item on the toolbar, a timer is set based on
+the value of <B>balloonDelay1</B>. If the mouse stays inside the item
+for <B>balloonDelay1</B>, the balloon window will pop up displaying
+the <B>balloonStr</B> value. Once the balloon window is posted, a new
+timer based on <B>balloonDelay2</B> is set. This is typically a shorter
+timer. If the mouse is moved to another item, the window is unposted and
+a new window will be posted over the item if the shorter delay time is
+satisfied.
+</UL>
+<UL>
+While the balloon window is posted, it can also be unposted if the item
+is selected. In this case the timer is reset to <B>balloonDelay1</B>.
+Whenever the mouse leaves the toolbar, the timer is also reset
+to <B>balloonDelay1</B>.
+</UL>
+<UL>
+This window posting/unposting model is the same model used in the
+Windows95 environment.
+</UL>
+</DL>
+</UL>
+<DL>
+<DT> <I>pathName</I> <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given by <I>option</I>.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I> <I>value</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget. If no <I>option</I> is
+specified, returns a list describing all of the available options for pathName
+(see Tk_ConfigureInfo for information on the format of this list). If
+<I>option</I> is specified with no value, then the command returns a
+list describing the one
+named option (this list will be identical to the corresponding sublist of the
+value returned if no option is specified). If one or more option-value pairs
+are specified, then the command modifies the given widget option(s) to have the
+given value(s); in this case the command returns an empty string.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>delete</B> <I>index</I> ?<I>index2</I>?
+</I></B>
+<DD> This command deletes all items between <I>index</I> and <I>index2</I>
+inclusive. If <I>index2</I> is omitted then it defaults to <I>index</I>.
+Returns an empty string.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>index</B> <I>index</I>
+</I></B>
+<DD> Returns the widget's numerical index for the entry corresponding
+to <I>index</I>. If <I>index</I> is not found, -1 is returned.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>insert</B> <I>beforeIndex</I> <I>widgetCommand</I> <I>widgetName</I> <I>?option value?</I>
+</DL>
+<DL>
+<DT> Insert a new item named <I>widgetName</I> with the
+</I></B>
+<DD> command <I>widgetCommand</I> before the item specified by <I>beforeIndex</I>.
+If <I>widgetCommand</I> is <B>radiobutton</B> or <B>checkbutton</B>, its
+packing is slightly padded to match the geometry of button widgets. In
+addition, the <B>indicatorOn</B> option is <B>false</B> by default and the
+<B>selectColor</B> is that of the toolbar background by default. This allows
+<B>Radiobutton</B> and <B>Checkbutton</B> widgets to be added as icons by
+simply setting their <B>bitmap</B> or <B>image</B> options. The set of
+available options is the same as specified in the <B>ad</B> command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>itemcget</B> <I>index</I> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given by <I>option</I> for
+index. The item type of <I>index</I> determines the valid available options.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>itemconfigure</B> <I>index</I> <I>?option value?</I>
+</I></B>
+<DD> Query or modify the configuration options of the widget of the toolbar
+specified by <I>index</I>. If no option is specified,
+returns a list describing all of
+the available options for <I>index</I>
+(see <B>Tk_ConfigureInfo</B> for information on the
+format of this list). If <I>option</I> is specified with no value,
+then the command
+returns a list describing the one named option (this list will be identical to
+the corresponding sublist of the value returned if no option is specified). If
+one or more option-value pairs are specified, then the command modifies the
+given widget option(s) to have the given value(s); in this case the command
+returns an empty string. The item type of <I>index</I> determines the valid
+available options. The set of available options is the same as specified
+in the <B>ad</B> command.
+</DL>
+</pre><H2>EXAMPLE</H2>
+<pre>
+ toolbar .tb -helpvariable statusVar
+
+ .tb add button item1 \\
+ -helpstr "Save It" -bitmap @./icons/Tool_32_box.xbm \\
+ -balloonstr "Save" -command {puts 1}
+ .tb add button item2 \\
+ -helpstr "Save It" -bitmap @./icons/Tool_32_brush.xbm \\
+ -balloonstr "Save" -command {puts 1}
+ .tb add button item3 \\
+ -helpstr "Save It" -bitmap @./icons/Tool_32_cut.xbm \\
+ -balloonstr "Save" -command {puts 1}
+ .tb add button item4 \\
+ -helpstr "Save It" -bitmap @./icons/Tool_32_draw.xbm \\
+ -balloonstr "Save" -command {puts 1}
+ .tb add button item5 \\
+ -bitmap @./icons/Tool_32_erase.xbm -helpstr "Play It" \\
+ -command {puts 2}
+ .tb add frame filler \\
+ -borderwidth 1 -width 10 -height 10
+ .tb add radiobutton item6 \\
+ -bitmap @./icons/Tool_32_oval.xbm -command {puts 4} \\
+ -variable result -value OPEN -helpstr "Radio Button # 1" \\
+ -balloonstr "Radio"
+ .tb add radiobutton item7 \\
+ -bitmap @./icons/Tool_32_line.xbm -command {puts 5} \\
+ -variable result -value CLOSED
+ .tb add checkbutton item8 \\
+ -bitmap @./icons/Tool_32_text.xbm -command {puts 6} \\
+ -variable checkit -onvalue yes -offvalue no
+ .tb add checkbutton check2 \\
+ -bitmap @./icons/Tool_32_points.xbm -command {puts 7} \\
+ -variable checkit2 -onvalue yes -offvalue no
+
+ pack .tb -side top -anchor nw
+</pre>
+</pre><H2>AUTHOR</H2>
+Bill Scott
+</pre><H2>KEYWORDS</H2>
+toolbar, button, radiobutton, checkbutton, iwidgets, widget
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>toolbar</STRONG> - Create and manipulate a tool bar
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>toolbar</STRONG> <EM>pathName</EM> ?<EM>options</EM>?
-
-
-</PRE>
-<H2>STANDARD OPTIONS</H2><PRE>
- <STRONG>activeBackground</STRONG> <STRONG>font</STRONG> <STRONG>insertForegroundselectForeground</STRONG>
- <STRONG>activeForeground</STRONG> <STRONG>foreground</STRONG> <STRONG>orientstate</STRONG>
- <STRONG>background</STRONG> <STRONG>highlightBackground</STRONG> <STRONG>relieftroughColor</STRONG>
- <STRONG>borderWidth</STRONG> <STRONG>highlightColor</STRONG> <STRONG>selectBackgroundcursor</STRONG>
- <STRONG>highlightThickness</STRONG> <STRONG>selectBorderWidthdisabledForegroundinsertBackground</STRONG>
- <STRONG>selectColor</STRONG>
-
- See the "options" manual entry for details on the standard
- options. For widgets added to the toolbar, these options
- will be propogated if the widget supports the option. For
- example, all widgets that support a font option will be
- changed if the the toolbar's font option is configured.
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC OPTIONS</H2><PRE>
- Name: <STRONG>balloonBackground</STRONG>
- Class: <STRONG>BalloonBackground</STRONG>
- Command-Line Switch: <STRONG>-ballooonbackground</STRONG>
-
- Specifies the background color of the balloon help
- displayed at the bottom center of a widget on the tool-
- bar that has a non empty string for its balloonStr
- option. The default color is yellow.
-
- Name: <STRONG>balloonDelay1</STRONG>
- Class: <STRONG>BalloonDelay1</STRONG>
- Command-Line Switch: <STRONG>-balloondelay1</STRONG>
-
- Specifies the length of time (in milliseconds) to wait
- before initially posting a balloon help hint window.
- This delay is in effect whenever 1) the mouse leaves
- the toolbar, or 2) a toolbar item is selected with the
- mouse button.
-
- Name: <STRONG>balloonDelay2</STRONG>
- Class: <STRONG>BalloonDelay2</STRONG>
- Command-Line Switch: <STRONG>-balloondelay2</STRONG>
-
- Specifies the length of time (in milliseconds) to wait
- before continuing to post balloon help hint windows.
- This delay is in effect after the first time a balloon
- hint window is activated. It remains in effect until 1)
- the mouse leaves the toolbar, or 2) a toolbar item is
- selected with the mouse button.
-
- Name: <STRONG>balloonFont</STRONG>
- Class: <STRONG>BalloonFont</STRONG>
- Command-Line Switch: <STRONG>-balloonfont</STRONG>
-
- Specifies the font of the balloon help text displayed
- at the bottom center of a widget on the toolbar that
- has a non empty string for its balloonStr option. The
- default font is 6x10.
-
- Name: <STRONG>balloonForeground</STRONG>
- Class: <STRONG>BalloonForeground</STRONG>
- Command-Line Switch: <STRONG>-ballooonforeground</STRONG>
-
- Specifies the foreground color of the balloon help
- displayed at the bottom center of a widget on the tool-
- bar that has a non empty string for its balloonStr
- option. The default color is black.
-
- Name: <STRONG>helpVariable</STRONG>
- Class: <STRONG>HelpVariable</STRONG>
- Command-Line Switch: <STRONG>-helpvariable</STRONG>
-
- Specifies the global variable to update whenever the
- mouse is in motion over a toolbar widget. This global
- variable is updated with the current value of the
- active widget's helpStr. Other widgets can "watch" this
- variable with the trace command, or as is the case with
- entry or label widgets, they can set their textVariable
- to the same global variable. This allows for a simple
- implementation of a help status bar. Whenever the mouse
- leaves a menu entry, the helpVariable is set to the
- empty string {}.
-
- Name: <STRONG>orient</STRONG>
- Class: <STRONG>Orient</STRONG>
- Command-Line Switch: <STRONG>-orient</STRONG>
-
- Specifies the orientation of the toolbar. Must be
- either horizontal or vertical.
-
-</PRE>
-<H2><HR ALIGN=LEFT WIDTH=70% SIZE=3></H2><PRE>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>toolbar</STRONG> command creates a new window (given by the path-
- Name argument) and makes it into a <STRONG>toolbar</STRONG> widget. Addi-
- tional options, described above may be specified on the com-
- mand line or in the option database to configure aspects of
- the toolbar such as its colors, font, and orientation. The
- <STRONG>toolbar</STRONG> command returns its pathName argument. At the time
- this command is invoked, there must not exist a window named
- pathName, but pathName's parent must exist.
-
-
- A <STRONG>toolbar</STRONG> is a widget that displays a collection of widgets
- arranged either in a row or a column (depending on the value
- of the -orient option). This collection of widgets is usu-
- ally for user convenience to give access to a set of com-
- mands or settings. Any widget may be placed on a toolbar.
- However, command or value-oriented widgets (such as button,
- radiobutton, etc.) are usually the most useful kind of widg-
- ets to appear on a toolbar.
-
- In addition, the toolbar adds two new options to all widgets
- that are added to it. These are the <STRONG>helpStr</STRONG> and <STRONG>balloonStr</STRONG>
- options. See the discussion for the widget command add
- below.
-
-
-
-</PRE>
-<H2>WIDGET-SPECIFIC METHODS</H2><PRE>
- The toolbar command creates a new Tcl command whose name is
- pathName. This command may be used to invoke various opera-
- tions on the widget. It has the following general form:
-
- <EM>pathName</EM> <EM>option</EM> ?<EM>arg</EM> <EM>arg</EM> ...?
-
- Option and args determine the exact behavior of the command.
-
- Many of the widget commands for a toolbar take as one argu-
- ment an indicator of which widget item of the toolbar to
- operate on. The indicator is called an <STRONG>index</STRONG> and may be
- specified in any of the following forms:
-
- <EM>number</EM>
- Specifies the widget numerically, where 0 corresponds
- to the first widget in the notebook, 1 to the second,
- and so on. (For horizontal, 0 is the leftmost; for
- vertical, 0 is the topmost).
-
- <STRONG>end</STRONG> Specifes the last widget in the toolbar's index. If the
- toolbar is empty this will return -1.
-
- <STRONG>last</STRONG> Same as end.
-
- <EM>pattern</EM>
- If the index doesn't satisfy any of the above forms,
- then this form is used. Pattern is pattern-matched
- against the widgetName of each widget in the toolbar,
- in order from the first to the last widget, until a
- matching entry is found. An exact match must occur.
-
- The following commands are possible for toolbar widgets:
-
- <EM>pathName</EM> <STRONG>add</STRONG> <EM>widgetCommand</EM> <EM>widgetName</EM> ?<EM>option</EM> <EM>value</EM>?
- Adds a widget with the command widgetCommand whose name
- is widgetName to the toolbar. If widgetCommand is
- radiobutton or checkbutton, its packing is slightly
- padded to match the geometry of button widgets. In
- addition, the indicatorOn option is false by default
- and the selectColor is that of the toolbar background
- by default. This allows Radiobutton and Checkbutton
- widgets to be added as icons by simply setting their
- bitmap or image options. If additional arguments are
- present, they are the set of available options that the
- widget type of <EM>widgetCommand</EM> supports. In addition they
- may also be one of the following options:
-
- <STRONG>-helpstr</STRONG> <EM>value</EM>
- Specifes the help string to associate with the
- widget. When the mouse moves over the widget, the
- variable denoted by <STRONG>helpVariable</STRONG> is set to
- <STRONG>helpStr</STRONG>. Another widget can bind to the helpVari-
- able and thus track status help.
-
- <STRONG>-balloonstr</STRONG> <EM>value</EM>
- Specifes the string to display in a balloon window
- for this widget. A balloon window is a small popup
- window centered at the bottom of the widget. Usu-
- ally the <STRONG>balloonStr</STRONG> value is the name of the item
- on the toolbar. It is sometimes known as a hint
- window.
-
- When the mouse moves into an item on the toolbar,
- a timer is set based on the value of <STRONG>balloonDe-</STRONG>
- <STRONG>lay1</STRONG>. If the mouse stays inside the item for <STRONG>bal-</STRONG>
- <STRONG>loonDelay1</STRONG>, the balloon window will pop up
- displaying the <STRONG>balloonStr</STRONG> value. Once the balloon
- window is posted, a new timer based on <STRONG>balloonDe-</STRONG>
- <STRONG>lay2</STRONG> is set. This is typically a shorter timer. If
- the mouse is moved to another item, the window is
- unposted and a new window will be posted over the
- item if the shorter delay time is satisfied.
-
- While the balloon window is posted, it can also be
- unposted if the item is selected. In this case the
- timer is reset to <STRONG>balloonDelay1</STRONG>. Whenever the
- mouse leaves the toolbar, the timer is also reset
- to <STRONG>balloonDelay1</STRONG>.
-
- This window posting/unposting model is the same
- model used in the Windows95 environment.
-
- <EM>pathName</EM> <STRONG>cget</STRONG> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM>.
-
- <EM>pathName</EM> <STRONG>configure</STRONG> ?<EM>option</EM> <EM>value</EM>?
- Query or modify the configuration options of the
- widget. If no <EM>option</EM> is specified, returns a list
- describing all of the available options for pathName
- (see Tk_ConfigureInfo for information on the format of
- this list). If <EM>option</EM> is specified with no value, then
- the command returns a list describing the one named
- option (this list will be identical to the correspond-
- ing sublist of the value returned if no option is
- specified). If one or more option-value pairs are
- specified, then the command modifies the given widget
- option(s) to have the given value(s); in this case the
- command returns an empty string.
-
- <EM>pathName</EM> <STRONG>delete</STRONG> <EM>index</EM> ?<EM>index2</EM>?
- This command deletes all items between <EM>index</EM> and <EM>index2</EM>
- inclusive. If <EM>index2</EM> is omitted then it defaults to
- <EM>index</EM>. Returns an empty string.
-
- <EM>pathName</EM> <STRONG>index</STRONG> <EM>index</EM>
- Returns the widget's numerical index for the entry
- corresponding to <EM>index</EM>. If <EM>index</EM> is not found, -1 is
- returned.
-
-
-</PRE>
-<H2>value?</H2><PRE>
- <EM>pathName</EM> <STRONG>insert</STRONG> <EM>beforeIndex</EM> <EM>widgetCommand</EM> <EM>widgetName</EM> ?<EM>option</EM>
-
- Insert a new item named <EM>widgetName</EM> with the
- command <EM>widgetCommand</EM> before the item specified by
- <EM>beforeIndex</EM>. If <EM>widgetCommand</EM> is <STRONG>radiobutton</STRONG> or <STRONG>check-</STRONG>
- <STRONG>button</STRONG>, its packing is slightly padded to match the
- geometry of button widgets. In addition, the <STRONG>indica-</STRONG>
- <STRONG>torOn</STRONG> option is <STRONG>false</STRONG> by default and the <STRONG>selectColor</STRONG> is
- that of the toolbar background by default. This allows
- <STRONG>Radiobutton</STRONG> and <STRONG>Checkbutton</STRONG> widgets to be added as
- icons by simply setting their <STRONG>bitmap</STRONG> or <STRONG>image</STRONG> options.
- The set of available options is the same as specified
- in the <STRONG>ad</STRONG> command.
-
- <EM>pathName</EM> <STRONG>itemcget</STRONG> <EM>index</EM> <EM>option</EM>
- Returns the current value of the configuration option
- given by <EM>option</EM> for index. The item type of <EM>index</EM>
- determines the valid available options.
-
- <EM>pathName</EM> <STRONG>itemconfigure</STRONG> <EM>index</EM> ?<EM>option</EM> <EM>value</EM>?
- Query or modify the configuration options of the widget
- of the toolbar specified by <EM>index</EM>. If no option is
- specified, returns a list describing all of the avail-
- able options for <EM>index</EM> (see <STRONG>Tk_ConfigureInfo</STRONG> for infor-
- mation on the format of this list). If <EM>option</EM> is speci-
- fied with no value, then the command returns a list
- describing the one named option (this list will be
- identical to the corresponding sublist of the value
- returned if no option is specified). If one or more
- option-value pairs are specified, then the command
- modifies the given widget option(s) to have the given
- value(s); in this case the command returns an empty
- string. The item type of <EM>index</EM> determines the valid
- available options. The set of available options is the
- same as specified in the <STRONG>ad</STRONG> command.
-
-
-</PRE>
-<H2>EXAMPLE</H2><PRE>
- toolbar .tb -helpvariable statusVar
-
- .tb add button item1 \
- -helpstr "Save It" -bitmap @./icons/Tool_32_box.xbm \
- -balloonstr "Save" -command {puts 1}
- .tb add button item2 \
- -helpstr "Save It" -bitmap @./icons/Tool_32_brush.xbm \
- -balloonstr "Save" -command {puts 1}
- .tb add button item3 \
- -helpstr "Save It" -bitmap @./icons/Tool_32_cut.xbm \
- -balloonstr "Save" -command {puts 1}
- .tb add button item4 \
- -helpstr "Save It" -bitmap @./icons/Tool_32_draw.xbm \
- -balloonstr "Save" -command {puts 1}
- .tb add button item5 \
- -bitmap @./icons/Tool_32_erase.xbm -helpstr "Play It" \
- -command {puts 2}
- .tb add frame filler \
- -borderwidth 1 -width 10 -height 10
- .tb add radiobutton item6 \
- -bitmap @./icons/Tool_32_oval.xbm -command {puts 4} \
- -variable result -value OPEN -helpstr "Radio Button # 1" \
- -balloonstr "Radio"
- .tb add radiobutton item7 \
- -bitmap @./icons/Tool_32_line.xbm -command {puts 5} \
- -variable result -value CLOSED
- .tb add checkbutton item8 \
- -bitmap @./icons/Tool_32_text.xbm -command {puts 6} \
- -variable checkit -onvalue yes -offvalue no
- .tb add checkbutton check2 \
- -bitmap @./icons/Tool_32_points.xbm -command {puts 7} \
- -variable checkit2 -onvalue yes -offvalue no
-
- pack .tb -side top -anchor nw
-
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Bill Scott
-
-
-</PRE>
-<H2>KEYWORDS</H2><PRE>
- toolbar, button, radiobutton, checkbutton, iwidgets, widget
-
-
-
-</PRE>
-</BODY>
-</HTML>
diff --git a/itcl/iwidgets3.0.0/demos/html/watch.n.html b/itcl/iwidgets3.0.0/demos/html/watch.n.html
new file mode 100644
index 00000000000..44178cf5db6
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/html/watch.n.html
@@ -0,0 +1,324 @@
+<TITLE>watch - Create and manipulate time with a watch widgets</TITLE>
+<H1>watch - Create and manipulate time with a watch widgets</H1>
+
+</pre><H2>SYNOPSIS</H2>
+<B>watch<I> <I>pathName </I>?<I>options</I>?
+</pre><H2>INHERITANCE</H2>
+itk::Widget &lt;- Watch
+
+</pre><H2>STANDARD OPTIONS</H2>
+<P>
+<table cellpadding=5>
+<td valign=top>
+<B>background</B><br>
+</td>
+<td valign=top>
+<B>cursor</B><br>
+</td>
+<td valign=top>
+<B>foreground</B><br>
+</td>
+<td valign=top>
+<B>relief</B><br>
+</td>
+</table>
+<P>
+See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
+</pre><H2>ASSOCIATED OPTIONS</H2>
+<P>
+See the "Canvas" manual entry for details on the above associated options.
+
+</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
+<P>
+<pre>
+Name: <B>clockColor</B>
+Class: <B>ColorfR
+Command-Line Switch: <B>-clockcolor</B>
+</pre>
+<UL>
+Fill color for the main oval encapsulating the watch, in any of the forms
+acceptable to <B>Tk_GetColor</B>. The default is "White".
+</UL>
+<table cellpadding=5>
+<td valign=top>
+<P><br>
+<B>BitmapfR<br>
+</td>
+<td valign=top>
+Name:<br>
+Command-Line<br>
+</td>
+<td valign=top>
+<B>clockStipple</B><br>
+Switch:<br>
+</td>
+<td valign=top>
+Class:<br>
+<B>-clockstipple</B><br>
+</td>
+</table>
+<UL>
+Bitmap for the main oval encapsulating the watch, in any of the forms
+acceptable to <B>Tk_GetBitmap</B>. The default is "".
+</UL>
+<P>
+<pre>
+Name: <B>height</B>
+Class: <B>Height</B>
+Command-Line Switch: <B>-height</B>
+</pre>
+<UL>
+Specifies the height of the watch widget in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default height is 175 pixels.
+</UL>
+<P>
+<pre>
+Name: <B>hourColor</B>
+Class: <B>ColorfR
+Command-Line Switch: <B>-hourcolor</B>
+</pre>
+<UL>
+Fill color for the hour hand, in any of the forms acceptable to <B>Tk_GetColor</B>.
+The default is "Red".
+</UL>
+<P>
+<pre>
+Name: <B>hourRadius</B>
+Class: <B>Radius</B>
+Command-Line Switch: <B>-hourradius</B>
+</pre>
+<UL>
+Specifies the radius of the hour hand as a percentage of the radius
+from the center to the out perimeter of the clock.
+The value must be a fraction &lt;= 1. The default is ".5".
+</UL>
+<P>
+<pre>
+Name: <B>minuteColor</B>
+Class: <B>ColorfR
+Command-Line Switch: <B>-minutecolor</B>
+</pre>
+<UL>
+Fill color for the minute hand, in any of the forms acceptable to <B>Tk_GetColor</B>.
+The default is "Yellow".
+</UL>
+<P>
+<pre>
+Name: <B>minuteRadius</B>
+Class: <B>Radius</B>
+Command-Line Switch: <B>-minuteradius</B>
+</pre>
+<UL>
+Specifies the radius of the minute hand as a percentage of the radius
+from the center to the out perimeter of the clock.
+The value must be a fraction &lt;= 1. The default is ".8".
+</UL>
+<P>
+<pre>
+Name: <B>pivotColor</B>
+Class: <B>ColorfR
+Command-Line Switch: <B>-pivotcolor</B>
+</pre>
+<UL>
+Fill color for the circle in which the watch hands rotate
+in any of the forms acceptable to <B>Tk_GetColor</B>.
+The default is "White".
+</UL>
+<P>
+<pre>
+Name: <B>pivotRadius</B>
+Class: <B>Radius</B>
+Command-Line Switch: <B>-pivotradius</B>
+</pre>
+<UL>
+Specifies the radius of the circle in which the watch hands rotate
+as a percentage of the radius. The value must be a fraction &lt;= 1.
+The default is ".1".
+</UL>
+<P>
+<pre>
+Name: <B>secondColor</B>
+Class: <B>ColorfR
+Command-Line Switch: <B>-secondcolor</B>
+</pre>
+<UL>
+Fill color for the second hand, in any of the forms acceptable to <B>Tk_GetColor</B>.
+The default is "Black".
+</UL>
+<P>
+<pre>
+Name: <B>secondRadius</B>
+Class: <B>Radius</B>
+Command-Line Switch: <B>-secondradius</B>
+</pre>
+<UL>
+Specifies the radius of the second hand as a percentage of the radius
+from the center to the out perimeter of the clock.
+The value must be a fraction &lt;= 1. The default is ".9".
+</UL>
+<P>
+<pre>
+Name: <B>showAmPm</B>
+Class: <B>ShosAmPm</B>
+Command-Line Switch: <B>-showampm</B>
+</pre>
+<UL>
+Specifies whether the AM/PM radiobuttons should be displayed, in any
+of the forms acceptable to <B>Tcl_GetBoolean</B>. The default is yes.
+</UL>
+<P>
+<pre>
+Name: <B>state</B>
+Class: <B>State</B>
+Command-Line Switch: <B>-state</B>
+</pre>
+<UL>
+Specifies the editable state for the hands on the watch. In a normal
+state, the user can select and move the hands via mouse button 1. The
+valid values are <B>normal</B>, and <B>disabled</B>. The defult is normal.
+</UL>
+<P>
+<pre>
+Name: <B>tickColor</B>
+Class: <B>ColorfR
+Command-Line Switch: <B>-tickcolor</B>
+</pre>
+<UL>
+Fill color for the 60 ticks around the perimeter of the watch,
+in any of the forms acceptable to <B>Tk_GetColor</B>. The default is "Black".
+</UL>
+<P>
+<pre>
+Name: <B>width</B>
+Class: <B>Width</B>
+Command-Line Switch: <B>-width</B>
+</pre>
+<UL>
+Specifies the width of the watch widget in any of the forms
+acceptable to <B>Tk_GetPixels</B>. The default height is 155 pixels.
+</UL>
+</pre><HR>
+
+</pre><H2>DESCRIPTION</H2>
+<P>
+
+The <B>watch</B> command creates a watch with hour, minute, and
+second hands modifying the time value.
+
+</pre><H2>METHODS</H2>
+<P>
+The <B>watch</B> command creates a new Tcl command whose
+name is <I>pathName</I>. This command may be used to invoke various
+operations on the widget. It has the following general form:
+<pre>
+<I>pathName option </I>?<I>arg arg ...</I>?
+</pre>
+<I>Option</I> and the <I>arg</I>s
+determine the exact behavior of the command. The following
+commands are possible for watch widgets:
+
+</pre><H2>WIDGET-SPECIFIC METHODS</H2>
+<DL>
+<DT> <I>pathName <B>cget</B> <I>option</I>
+</I></B>
+<DD> Returns the current value of the configuration option given
+by <I>option</I>.
+<I>Option</I> may have any of the values accepted by the <B>watch</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
+</I></B>
+<DD> Query or modify the configuration options of the widget.
+If no <I>option</I> is specified, returns a list describing all of
+the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
+information on the format of this list). If <I>option</I> is specified
+with no <I>value</I>, then the command returns a list describing the
+one named option (this list will be identical to the corresponding
+sublist of the value returned if no <I>option</I> is specified). If
+one or more <I>option-value</I> pairs are specified, then the command
+modifies the given widget option(s) to have the given value(s); in
+this case the command returns an empty string.
+<I>Option</I> may have any of the values accepted by the <B>watch</B>
+command.
+</DL>
+<DL>
+<DT> <I>pathName <B>get</B> ?<B>format</B>?
+</I></B>
+<DD> Returns the current time of the watch in a format of
+string or as an integer clock value using the <B>-string</B> and <B>-clicks</B>
+format options respectively. The default is by string. Reference the
+clock command for more information on obtaining time and its
+formats.
+</DL>
+<DL>
+<DT> <I>pathName <B>show</B> <I>time</I>
+</I></B>
+<DD> Changes the currently displayed time to be that of the time
+argument. The time may be specified either as a string, an
+integer clock value or the keyword "now". Reference the clock
+command for more information on obtaining time and its format.
+</DL>
+<DL>
+<DT> <I>pathName <B>watch</B> ?<B>args</B>?
+</I></B>
+<DD> Evaluates the specifieds <B>args</B> against the canvas component.
+
+</DL>
+</pre><H2>COMPONENTS</H2>
+<P>
+<pre>
+Name: <B>canvas</B>
+Class: <B>Canvas</B>
+</pre>
+<UL>
+The canvas component is the where the clock is drawn. See the
+Canvas widget manual entry for details.
+</UL>
+<P>
+<pre>
+Name: <B>frame</B>
+Class: <B>Frame</B>
+</pre>
+<UL>
+The frame component is the where the "AM" and "PM" radiobuttons are displayed.
+See the Frame widget manual entry for details.
+</UL>
+<P>
+<pre>
+Name: <B>am</B>
+Class: <B>Radiobutton</B>
+</pre>
+<UL>
+The am component indicates whether on not the time is relative to "AM".
+See the Radiobutton widget manual entry for details.
+</UL>
+<P>
+<pre>
+Name: <B>pm</B>
+Class: <B>Radiobutton</B>
+</pre>
+<UL>
+The pm component indicates whether on not the time is relative to "PM".
+See the Radiobutton widget manual entry for details.
+</UL>
+</table>
+
+</pre><H2>EXAMPLE</H2>
+<pre>
+watch .w -state disabled -showampm no -width 155 -height 155
+pack .w -padx 10 -pady 10 -fill both -expand yes
+
+while {1} {
+ after 1000
+ .w show
+ update
+}
+</pre>
+</pre><H2>AUTHOR</H2>
+John Tucker
+</pre>
+<A HREF="mailto:mulferts@spd.dsccc.com">Mark L. Ulferts</A>
+</pre><H2>KEYWORDS</H2>
+watch, hand, ticks, pivot, widget
+
diff --git a/itcl/iwidgets3.0.0/demos/mainwindow b/itcl/iwidgets3.0.0/demos/mainwindow
index b04934211a8..9cc9863f3e3 100644
--- a/itcl/iwidgets3.0.0/demos/mainwindow
+++ b/itcl/iwidgets3.0.0/demos/mainwindow
@@ -9,6 +9,7 @@ package require Iwidgets 3.0
#
# Demo script for the Mainwindow class
#
+wm withdraw .
iwidgets::mainwindow .mw
set imagedir [file join ${iwidgets::library} demos images]
@@ -33,7 +34,7 @@ set imagedir [file join ${iwidgets::library} demos images]
-helpstr "Close the file"
separator sep2
command exit -label "Exit" -underline 1 \
- -helpstr "Exit this application" -command ::exit
+ -helpstr "Exit this application"
}
#
@@ -78,39 +79,39 @@ set imagedir [file join ${iwidgets::library} demos images]
.mw toolbar add frame filler1 -width 108 -relief raised -borderwidth 2
.mw toolbar add button new \
- -image [image create photo new-img -file [file join $imagedir new.gif]] \
+ -image [image create photo -file [file join $imagedir new.gif]] \
-helpstr "Create a new file" \
-balloonstr "New"
.mw toolbar add button open \
- -image [image create photo open-img -file [file join $imagedir open.gif]] \
+ -image [image create photo -file [file join $imagedir open.gif]] \
-helpstr "Open an existing file" \
-balloonstr "Open"
.mw toolbar add button close \
- -image [image create photo close-img -file [file join $imagedir close.gif]] \
+ -image [image create photo -file [file join $imagedir close.gif]] \
-helpstr "Close the file" \
-balloonstr "Close"
.mw toolbar add frame filler2 -width 20 -relief raised -borderwidth 2
.mw toolbar add button cut \
- -image [image create photo cut-img -file [file join $imagedir cut.gif]] \
+ -image [image create photo -file [file join $imagedir cut.gif]] \
-helpstr "Cut the selection into the cut buffer" \
-balloonstr "Cut"
.mw toolbar add button copy \
- -image [image create photo copy-img -file [file join $imagedir copy.gif]] \
+ -image [image create photo -file [file join $imagedir copy.gif]] \
-helpstr "Copy the selection to the cut buffer" \
-balloonstr "Copy"
.mw toolbar add button paste \
- -image [image create photo paste-img -file [file join $imagedir paste.gif]] \
+ -image [image create photo -file [file join $imagedir paste.gif]] \
-helpstr "Paste the cut buffer to the current point" \
-balloonstr "Paste"
.mw toolbar add button clear \
- -image [image create photo clear-img -file [file join $imagedir clear.gif]] \
+ -image [image create photo -file [file join $imagedir clear.gif]] \
-helpstr "Clear the selection" \
-balloonstr "Clear"
@@ -120,28 +121,28 @@ set imagedir [file join ${iwidgets::library} demos images]
# Add items to the menubar.
#
.mw mousebar add button save \
- -image [image create photo save-img -file [file join $imagedir save.gif]] \
+ -image [image create photo -file [file join $imagedir save.gif]] \
-helpstr "Save the current file"
.mw mousebar add button print \
- -image [image create photo print-img -file [file join $imagedir print.gif]] \
+ -image [image create photo -file [file join $imagedir print.gif]] \
-helpstr "Print the file"
.mw mousebar add button find \
- -image [image create photo find-img -file [file join $imagedir find.gif]] \
+ -image [image create photo -file [file join $imagedir find.gif]] \
-helpstr "Search the text"
.mw mousebar add frame filler1 -height 20 -relief raised -borderwidth 2
.mw mousebar add button help \
- -image [image create photo help-img -file [file join $imagedir help.gif]] \
+ -image [image create photo -file [file join $imagedir help.gif]] \
-helpstr "Obtain help for this window"
.mw mousebar add frame filler2 -relief raised -borderwidth 2
.mw mousebar add button exit \
- -image [image create photo exit-img -file [file join $imagedir exit.gif]] \
- -helpstr "Exit this application" -command ::exit
+ -image [image create photo -file [file join $imagedir exit.gif]] \
+ -helpstr "Exit this application"
.mw mousebar add frame filler3 -height 5
@@ -163,3 +164,6 @@ pack [.mw childsite].st -fill both -expand yes
# Activate the main window.
#
.mw activate
+
+
+
diff --git a/itcl/iwidgets3.0.0/demos/scopedobject b/itcl/iwidgets3.0.0/demos/scopedobject
new file mode 100644
index 00000000000..e42884c6dad
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/scopedobject
@@ -0,0 +1,18 @@
+#!/bin/sh
+# \
+ exec itkwish -f "$0" ${1+"$@"}
+
+package require Iwidgets 3.0
+
+#
+# Demo script for the Scopedobject class
+#
+proc scopedobject_demo {} {
+ iwidgets::scopedobject #auto \
+ -exitscopecommand {puts "enter scopedobject_demo"} \
+ -exitscopecommand {puts "exit scopedobject_demo"}
+}
+
+scopedobject_demo
+
+
diff --git a/itcl/iwidgets3.0.0/demos/shell b/itcl/iwidgets3.0.0/demos/shell
new file mode 100644
index 00000000000..71ebb434bc3
--- /dev/null
+++ b/itcl/iwidgets3.0.0/demos/shell
@@ -0,0 +1,21 @@
+#!/bin/sh
+# \
+ exec itkwish -f "$0" ${1+"$@"}
+
+package require Iwidgets 3.0
+
+#
+# Demo script for the Shell class
+#
+
+iwidgets::shell .sh -modality none -padx 20 -pady 20 -title Shell
+
+pack [label [.sh childsite].l -text SHELL]
+
+.sh center
+.sh activate
+
+
+
+
+
diff --git a/itcl/iwidgets3.0.0/demos/watch b/itcl/iwidgets3.0.0/demos/watch
index 5875fda8810..c926d93dc77 100644
--- a/itcl/iwidgets3.0.0/demos/watch
+++ b/itcl/iwidgets3.0.0/demos/watch
@@ -12,7 +12,8 @@ iwidgets::watch .w -state disabled -showampm no -width 155 -height 155
pack .w -padx 10 -pady 10 -fill both -expand yes
proc fix_time {} {
+ if {! [winfo exists .w]} return
.w show
- after 1000 {catch fix_time}
+ after 1000 fix_time
}
fix_time
diff --git a/itcl/iwidgets3.0.0/doc/checkbox.n b/itcl/iwidgets3.0.0/doc/checkbox.n
index aa1b6a01d95..c3b8b763713 100755
--- a/itcl/iwidgets3.0.0/doc/checkbox.n
+++ b/itcl/iwidgets3.0.0/doc/checkbox.n
@@ -46,6 +46,16 @@ Command-Line Switch: \fB-command\fR
Specifies a Tcl command procedure to be evaluated following a change in
the current check box selection.
.LP
+.nf
+Name: \fBorient\fR
+Class: \fBOrient\fR
+Command-Line Switch: \fB-orient\fR
+Default Value: \fBvertical\fR
+.fi
+.IP
+Specifies the orientation of the checkbuttons within the checkbox. Valid
+values are either "horizontal" or "vertical".
+.LP
.BE
.SH DESCRIPTION
diff --git a/itcl/iwidgets3.0.0/doc/entryfield.n b/itcl/iwidgets3.0.0/doc/entryfield.n
index 6ced2148c0d..2392d49e983 100644
--- a/itcl/iwidgets3.0.0/doc/entryfield.n
+++ b/itcl/iwidgets3.0.0/doc/entryfield.n
@@ -115,6 +115,16 @@ Name of font to use for display of text in entryfield. The value
may be given in any of the forms acceptable to \fBTk_GetFont\fR.
.LP
.nf
+Name: \fBpasting\fR
+Class: \fBBehavior\fR
+Command-Line Switch: \fB-pasting\fR
+.fi
+.IP
+Option to enable/disable pasting into the entry component of the
+entryfield. Valid values are 0 (disabled) or 1 (enabled).
+Defaults to 1.
+.LP
+.nf
Name: \fBvalidate\fR
Class: \fBCommand\fR
Command-Line Switch: \fB-validate\fR
diff --git a/itcl/iwidgets3.0.0/doc/generateHtml.sh b/itcl/iwidgets3.0.0/doc/generateHtml.sh
new file mode 100644
index 00000000000..d49a60744d9
--- /dev/null
+++ b/itcl/iwidgets3.0.0/doc/generateHtml.sh
@@ -0,0 +1,10 @@
+#!/bin/ksh
+#
+
+manpages=`\ls *.n`
+
+for doc in $manpages
+do
+ echo "Generating html/$doc.html"
+ nroff -man $doc | rman -f html > html/$doc.html
+done
diff --git a/itcl/iwidgets3.0.0/doc/hierarchy.n b/itcl/iwidgets3.0.0/doc/hierarchy.n
index a03e392af47..650b87c4651 100644
--- a/itcl/iwidgets3.0.0/doc/hierarchy.n
+++ b/itcl/iwidgets3.0.0/doc/hierarchy.n
@@ -78,6 +78,17 @@ provided, then a folder icon will be generated, pixmap if possible,
bitmap otherwise.
.LP
.nf
+Name: \fBdblClickCommand\fR
+Class: \fBCommand\fR
+Command-Line Switch: \fB-dblclickcommand\fR
+.fi
+.IP
+Specifies a command to be executed upon user double clicking via mouse button
+one of the text label of an entry. If this command contains "%n", it is
+replaced with the name of the selected node. Should it contain "%s" then a
+boolean indicator of the node's current selection status is substituted.
+.LP
+.nf
Name: \fBexpanded\fR
Class: \fBExpanded\fR
Command-Line Switch: \fB-expanded\fR
@@ -124,6 +135,48 @@ it is replaced with the name of the node the icon belongs to. Should it
contain "%i" then the icon name is substituted.
.LP
.nf
+Name: \fBiconDblCommand\fR
+Class: \fBCommand\fR
+Command-Line Switch: \fB-icondblcommand\fR
+.fi
+.IP
+Specifies a command to be executed upon user double clicking via mouse button
+one of the icon of an entry. If this command contains "%n", it is replaced
+with the name of the node the icon belongs to. Should it contain "%i" then
+the icon name is substituted.
+.LP
+.nf
+Name: \fBimageCommand\fR
+Class: \fBCommand\fR
+Command-Line Switch: \fB-imagecommand\fR
+.fi
+.IP
+Specifies a command to be executed upon user selecting an image of an entry.
+If this command contains "%n", it is replaced with the name of the selected
+node. Should it contain "%s" then a boolean indicator of the node's current
+selection status is substituted.
+.LP
+.nf
+Name: \fBimageDblCommand\fR
+Class: \fBCommand\fR
+Command-Line Switch: \fB-imagedblcommand\fR
+.fi
+.IP
+Specifies a command to be executed upon user double clicking via mouse button
+one of the image of an entry. If this command contains "%n", it is replaced
+with the name of the node the icon belongs to. Should it contain "%i" then
+the icon name is substituted.
+.LP
+.nf
+Name: \fBimageMenuLoadCommand\fR
+Class: \fBCommand\fR
+Command-Line Switch: \fB-imagemenuloadcommand\fR
+.fi
+.IP
+Specifies a command to be executed upon user selection via mouse button three,
+on the image or icon, that will dynamically load the itemMenu for the widget.
+.LP
+.nf
Name: \fBmarkBackground\fR
Class: \fBForeground\fR
Command-Line Switch: \fB-markbackground\fR
@@ -263,6 +316,15 @@ Command-Line Switch: \fB-textfont\fR
Specifies the font to be used in the text portion of the hierarchy.
.LP
.nf
+Name: \fBtextMenuLoadCommand\fR
+Class: \fBCommand\fR
+Command-Line Switch: \fB-textmenuloadcommand\fR
+.fi
+.IP
+Specifies a command to be executed upon user selection via mouse button three,
+that will dynamically load the itemMenu for the widget.
+.LP
+.nf
Name: \fBvisibleitems\fR
Class: \fBVisibleItems\fR
Command-Line Switch: \fB-visibleitems\fR
@@ -308,6 +370,8 @@ the height causes the value given for the visibleitems option
to be applied which administers geometry constraints in a different
manner. The default width is zero.
.LP
+
+
.BE
.SH DESCRIPTION
@@ -396,6 +460,13 @@ Expands the hierarchy beneath the node with the specified unique id by
one level. Since this can take a moment for large hierarchies, the cursor
will be changed to a watch during the expansion.
.TP
+\fIpathName \fBexpanded\fR \fIuid\fR
+Returns the current state of expansion for the node with the specified unique
+id.
+.TP
+\fIpathName \fBexpState\fR
+Returns a list of all expanded nodes in the tree.
+.TP
\fIpathName \fBmark\fR \fIoption ?arg arg ...?\fR
This command is used to manipulate marks which is quite similar to
selection, adding a secondary means of hilighting an item in the
diff --git a/itcl/iwidgets3.0.0/doc/radiobox.n b/itcl/iwidgets3.0.0/doc/radiobox.n
index d6f2c4c4bb5..fe11c0d90c7 100644
--- a/itcl/iwidgets3.0.0/doc/radiobox.n
+++ b/itcl/iwidgets3.0.0/doc/radiobox.n
@@ -43,9 +43,19 @@ Class: \fBCommand\fR
Command-Line Switch: \fB-command\fR
.fi
.IP
-Specifies a Tcl command procedure to be evaluated following a change in
+Specifies a Tcl command procedure to be evaluated following a change in
the current radio box selection.
.LP
+.nf
+Name: \fBorient\fR
+Class: \fBOrient\fR
+Command-Line Switch: \fB-orient\fR
+Default Value: \fBvertical\fR
+.fi
+.IP
+Specifies the orientation of the radiobuttons within the radiobox. Valid
+values are either "horizontal" or "vertical".
+.LP
.BE
.SH DESCRIPTION
diff --git a/itcl/iwidgets3.0.0/doc/scrolledlistbox.n b/itcl/iwidgets3.0.0/doc/scrolledlistbox.n
index 24f44e0a798..b7eee5d5fda 100644
--- a/itcl/iwidgets3.0.0/doc/scrolledlistbox.n
+++ b/itcl/iwidgets3.0.0/doc/scrolledlistbox.n
@@ -30,7 +30,7 @@ See the "options" manual entry for details on the standard options.
.LP
.nf
.ta 4c 8c 12c
-\fBselectMode\fR
+\fBselectMode\fR \fBlistvariable\fR
.fi
.LP
See the "listbox" widget manual entry for details on the above
@@ -257,9 +257,9 @@ The following widget commands are possible for scrolledlistbox widgets:
.nf
.ta 4c 8c 12c
\fBactivate\fR \fBbbox\fR \fBcurselection\fR \fBdelete\fR
-\fBget\fR \fBindex\fR \fBinsert\fR \fBnearest\fR
-\fBscan\fR \fBsee\fR \fBselection\fR \fBsize\fR
-\fBxview\fR \fByview\fR
+\fBget\fR \fBindex\fR \fBinsert\fR \fBitemconfigure\fR
+\fBnearest\fR \fBscan\fR \fBsee\fR \fBselection\fR
+\fBsize\fR \fBxview\fR \fByview\fR
.fi
.LP
See the "listbox" manual entry for details on the associated methods.
diff --git a/itcl/iwidgets3.0.0/doc/scrolledtext.n b/itcl/iwidgets3.0.0/doc/scrolledtext.n
index 12292363117..2ea307a7ed1 100644
--- a/itcl/iwidgets3.0.0/doc/scrolledtext.n
+++ b/itcl/iwidgets3.0.0/doc/scrolledtext.n
@@ -193,9 +193,10 @@ commands are possible for scrolledtext widgets:
.nf
.ta 4c 8c 12c
\fBbbox\fR \fBcompare\fR \fBdebug\fR \fBdelete\fR
-\fBdlineinfo\fR \fBget\fR \fBindex\fR \fBinsert\fR
-\fBmark\fR \fBscan\fR \fBsearch\fR \fBsee\fR
-\fBtag\fR \fBwindow\fR \fBxview\fR \fByview\fR
+\fBdlineinfo\fR \fBget\fR \fBimage\fR \fBindex\fR
+\fBinsert\fR \fBmark\fR \fBscan\fR \fBsearch\fR
+\fBsee\fR \fBtag\fR \fBwindow\fR \fBxview\fR
+\fByview\fR
.fi
.LP
See the "text" manual entry for details on the standard methods.
diff --git a/itcl/iwidgets3.0.0/doc/toolbar.n b/itcl/iwidgets3.0.0/doc/toolbar.n
index da48f16f7a2..7f1e851ca40 100644
--- a/itcl/iwidgets3.0.0/doc/toolbar.n
+++ b/itcl/iwidgets3.0.0/doc/toolbar.n
@@ -20,7 +20,7 @@
.ta 4c 8c 12c
\fBactiveBackground\fR \fBfont\fR \fBinsertForeground\fR \fBselectForeground\fR
\fBactiveForeground\fR \fBforeground\fR \fBorient\fR \fBstate\fR
-\fBbackground\fR \fBhighlightBackground\fR \fBrelief\fR \fBtroughColor\fR
+\fBbackground\fR \fBhighlightBackground\fR \fBtroughColor\fR
\fBborderWidth\fR \fBhighlightColor\fR \fBselectBackground\fR \fBcursor\fR
\fBhighlightThickness\fR \fBselectBorderWidth\fR \fBdisabledForeground\fR \fBinsertBackground\fR
\fBselectColor\fR
diff --git a/itcl/iwidgets3.0.0/generic/calendar.itk b/itcl/iwidgets3.0.0/generic/calendar.itk
index 7c35487fbd1..a7b0363a7a8 100644
--- a/itcl/iwidgets3.0.0/generic/calendar.itk
+++ b/itcl/iwidgets3.0.0/generic/calendar.itk
@@ -378,7 +378,7 @@ configbody iwidgets::Calendar::buttonforeground {
-foreground $itk_option(-buttonforeground)
}
} else {
- $itk_option(-forwardimage) configure \
+ $itk_component(forward) configure \
-foreground $itk_option(-buttonforeground)
}
@@ -388,7 +388,7 @@ configbody iwidgets::Calendar::buttonforeground {
-foreground $itk_option(-buttonforeground)
}
} else {
- $itk_option(-backwardimage) configure \
+ $itk_component(-backward) configure \
-foreground $itk_option(-buttonforeground)
}
}
@@ -890,7 +890,7 @@ body iwidgets::Calendar::_select {date_} {
-width $itk_option(-selectthickness)
$itk_component(page) raise $date-sensor
} else {
- set $_time $time
+ set _time $time
_redraw
}
}
diff --git a/itcl/iwidgets3.0.0/generic/canvasprintbox.itk b/itcl/iwidgets3.0.0/generic/canvasprintbox.itk
index 20a566a5fab..64ced049bf4 100644
--- a/itcl/iwidgets3.0.0/generic/canvasprintbox.itk
+++ b/itcl/iwidgets3.0.0/generic/canvasprintbox.itk
@@ -239,6 +239,7 @@ configbody iwidgets::Canvasprintbox::pagesize {
if {[lsearch $lst $opt] == -1} {
error "bad option \"pagesize\": should be one of: [ezPaperInfo types]"
}
+ $itk_component(paperom) select "*[string range $opt 1 end]"
_update_canvas
}
diff --git a/itcl/iwidgets3.0.0/generic/checkbox.itk b/itcl/iwidgets3.0.0/generic/checkbox.itk
index 30fa700321f..d1498d15667 100755
--- a/itcl/iwidgets3.0.0/generic/checkbox.itk
+++ b/itcl/iwidgets3.0.0/generic/checkbox.itk
@@ -46,8 +46,7 @@ option add *Checkbox.relief groove widgetDefault
# Usual options.
#
itk::usual Checkbox {
- keep -background -borderwidth -cursor -disabledforeground \
- -foreground -labelfont -selectcolor
+ keep -background -borderwidth -cursor -foreground -labelfont
}
# ------------------------------------------------------------------
@@ -58,10 +57,7 @@ class iwidgets::Checkbox {
constructor {args} {}
- itk_option define -disabledforeground \
- disabledForeground DisabledForeground {}
- itk_option define -selectcolor selectColor Background {}
- itk_option define -command command Command {}
+ itk_option define -orient orient Orient vertical
public {
method add {tag args}
@@ -107,11 +103,26 @@ body iwidgets::Checkbox::constructor {args} {
# ------------------------------------------------------------------
# ------------------------------------------------------------------
-# OPTION: -command
+# OPTION: -orient
#
-# Specifies a command to be evaluated upon change in the checkbox
+# Allows the user to orient the checkbuttons either horizontally
+# or vertically. Added by Chad Smith (csmith@adc.com) 3/10/00.
# ------------------------------------------------------------------
-configbody iwidgets::Checkbox::command {}
+configbody iwidgets::Checkbox::orient {
+ if {$itk_option(-orient) == "horizontal"} {
+ foreach tag $_buttons {
+ pack $itk_component($tag) -side left -anchor nw -padx 4 -expand 1
+ }
+ } elseif {$itk_option(-orient) == "vertical"} {
+ foreach tag $_buttons {
+ pack $itk_component($tag) -side top -anchor w -padx 4 -expand 0
+ }
+ } else {
+ error "Bad orientation: $itk_option(-orient). Should be\
+ \"horizontal\" or \"vertical\"."
+ }
+}
+
# ------------------------------------------------------------------
# METHODS
@@ -168,10 +179,17 @@ body iwidgets::Checkbox::add {tag args} {
$args
} {
usual
+ keep -command -disabledforeground -selectcolor -state
ignore -highlightthickness -highlightcolor
rename -font -labelfont labelFont Font
}
- pack $itk_component($tag) -anchor w -padx 4
+
+ # Redraw the buttons with the proper orientation.
+ if {$itk_option(-orient) == "vertical"} {
+ pack $itk_component($tag) -side top -anchor w -padx 4 -expand 0
+ } else {
+ pack $itk_component($tag) -side left -anchor nw -expand 1
+ }
lappend _buttons $tag
@@ -233,6 +251,17 @@ body iwidgets::Checkbox::delete {index} {
# ------------------------------------------------------------------
body iwidgets::Checkbox::select {index} {
set tag [gettag $index]
+ #-----------------------------------------------------------
+ # BUG FIX: csmith (Chad Smith: csmith@adc.com), 3/30/99
+ #-----------------------------------------------------------
+ # This method should only invoke the checkbutton if it's not
+ # already selected. Check its associated variable, and if
+ # it's set, then just ignore and return.
+ #-----------------------------------------------------------
+ if {[set [scope buttonVar($this,$tag)]] ==
+ [[component $tag] cget -onvalue]} {
+ return
+ }
$itk_component($tag) invoke
}
@@ -310,4 +339,3 @@ body iwidgets::Checkbox::buttonconfigure {index args} {
body iwidgets::Checkbox::gettag {index} {
return [lindex $_buttons [index $index]]
}
-
diff --git a/itcl/iwidgets3.0.0/generic/combobox.itk b/itcl/iwidgets3.0.0/generic/combobox.itk
index 45b79b037b6..ab70ba98956 100644
--- a/itcl/iwidgets3.0.0/generic/combobox.itk
+++ b/itcl/iwidgets3.0.0/generic/combobox.itk
@@ -360,7 +360,7 @@ configbody iwidgets::Combobox::state {
must be normal or disabled"
}
}
- if {[info exists itk_component(arrowBtn)]} {
+ if {[winfo exists itk_component(arrowBtn)]} {
$itk_component(arrowBtn) configure -state $itk_option(-state)
}
}
@@ -435,6 +435,9 @@ body iwidgets::Combobox::curselection {} {
body iwidgets::Combobox::delete {component first {last {}}} {
switch -- $component {
entry {
+ if {$last == {}} {
+ set last [expr $first + 1]
+ }
iwidgets::Entryfield::delete $first $last
}
list {
@@ -656,7 +659,25 @@ body iwidgets::Combobox::_createComponents {} {
# --- build a dropdown combobox ---
# make the arrow childsite be on the right hand side
- configure -childsitepos e -command [code $this _addToList]
+
+ #-------------------------------------------------------------
+ # BUG FIX: csmith (Chad Smith: csmith@adc.com), 3/4/99
+ #-------------------------------------------------------------
+ # The following commented line of code overwrites the -command
+ # option when passed into the constructor. The order of calls
+ # in the constructor is:
+ # 1) eval itk_initalize $args (initializes -command)
+ # 2) _doLayout
+ # 3) _createComponents (overwrites -command)
+ # The solution is to only set the -command option if it hasn't
+ # already been set. The following 4 lines of code do this.
+ #-------------------------------------------------------------
+ # ** configure -childsitepos e -command [code $this _addToList]
+ #-------------------------------------------------------------
+ configure -childsitepos e
+ if ![llength [cget -command]] {
+ configure -command [code $this _addToList]
+ }
# arrow button to popup the list
itk_component add arrowBtn {
diff --git a/itcl/iwidgets3.0.0/generic/dateentry.itk b/itcl/iwidgets3.0.0/generic/dateentry.itk
index a6dff9eae03..5cf648c03b1 100644
--- a/itcl/iwidgets3.0.0/generic/dateentry.itk
+++ b/itcl/iwidgets3.0.0/generic/dateentry.itk
@@ -403,6 +403,5 @@ body iwidgets::Dateentry::_releaseGrab {} {
grab release $itk_component(popup)
$itk_component(iconbutton) configure -relief raised
destroy $itk_component(popup)
- unset itk_component(popup)
bind $itk_component(iconbutton) <Button-1> [code $this _popup]
}
diff --git a/itcl/iwidgets3.0.0/generic/disjointlistbox.itk b/itcl/iwidgets3.0.0/generic/disjointlistbox.itk
index 5f40399fa8e..1234eae70e6 100755
--- a/itcl/iwidgets3.0.0/generic/disjointlistbox.itk
+++ b/itcl/iwidgets3.0.0/generic/disjointlistbox.itk
@@ -50,9 +50,6 @@
#
# Default resources.
#
-
-set tk_strictMotif 1
-
option add *Disjointlistbox.lhsLabelText Available widgetDefault
option add *Disjointlistbox.rhsLabelText Current widgetDefault
option add *Disjointlistbox.lhsButtonLabel {Insert >>} widgetDefault
diff --git a/itcl/iwidgets3.0.0/generic/entryfield.itk b/itcl/iwidgets3.0.0/generic/entryfield.itk
index 065e6a56e16..bf3880086cf 100644
--- a/itcl/iwidgets3.0.0/generic/entryfield.itk
+++ b/itcl/iwidgets3.0.0/generic/entryfield.itk
@@ -56,6 +56,7 @@ class iwidgets::Entryfield {
itk_option define -fixed fixed Fixed 0
itk_option define -focuscommand focusCommand Command {}
itk_option define -invalid invalid Command {bell}
+ itk_option define -pasting pasting Behavior 1
itk_option define -validate validate Command {}
public {
@@ -192,6 +193,40 @@ configbody iwidgets::Entryfield::validate {
configbody iwidgets::Entryfield::invalid {}
# ------------------------------------------------------------------
+# OPTION: -pasting
+#
+# Allows the developer to enable and disable pasting into the entry
+# component of the entryfield. This is done to avoid potential stack
+# dumps when using the -validate configuration option. Plus, it's just
+# a good idea to have complete control over what you allow the user
+# to enter into the entryfield.
+# ------------------------------------------------------------------
+configbody iwidgets::Entryfield::pasting {
+ set oldtags [bindtags $itk_component(entry)]
+ set firsttag [lindex $oldtags 0]
+
+ if ($itk_option(-pasting)) {
+ if {$firsttag == "pastetag"} {
+ bindtags $itk_component(entry) [lreplace $oldtags 0 0]
+ }
+
+ } else {
+ if {$firsttag == "pastetag"} {
+ # Ignore this if it's already set.
+ return
+ }
+ bindtags $itk_component(entry) [linsert $oldtags 0 pastetag]
+ bind pastetag <ButtonRelease-2> {break}
+ bind pastetag <KeyPress> {
+ # Disable function keys > F9 and the 'Insert' key.
+ if {[regexp {^F[1,2][0-9]+$} "%K"] || "%K" == "Insert"} {
+ break
+ }
+ }
+ }
+}
+
+# ------------------------------------------------------------------
# OPTION: -fixed
#
# Restrict entry to 0 (unlimited) chars. The value is the maximum
@@ -475,10 +510,31 @@ body iwidgets::Entryfield::_keyPress {char sym state} {
# means a modifier was used such as a control, meta key, or control
# or meta key with numlock down.
#
- if {($char == "") || \
- ($state == 4) || ($state == 8) || \
- ($state == 36) || ($state == 40)} {
- return -code continue 1
+ #-----------------------------------------------------------
+ # BUG FIX: csmith (Chad Smith: csmith@adc.com), 3/15/99
+ #-----------------------------------------------------------
+ # The following conditional used to hardcode specific state values, such
+ # as "4" and "8". These values are used to detect <Ctrl>, <Shift>, etc.
+ # key combinations. On the windows platform, the <Alt> key is state
+ # 16, and on the unix platform, the <Alt> key is state 8. All <Ctrl>
+ # and <Alt> combinations should be masked out, regardless of the
+ # <NumLock> or <CapsLock> status, and regardless of platform.
+ #-----------------------------------------------------------
+ set CTRL 4
+ global tcl_platform
+ if {$tcl_platform(platform) == "unix"} {
+ set ALT 8
+ } elseif {$tcl_platform(platform) == "windows"} {
+ set ALT 16
+ } else {
+ # This is something other than UNIX or WINDOWS. Default to the
+ # old behavior (UNIX).
+ set ALT 8
+ }
+ # Thanks to Rolf Schroedter for the following elegant conditional. This
+ # masks out all <Ctrl> and <Alt> key combinations.
+ if {($char == "") || ($state & ($CTRL | $ALT))} {
+ return -code continue 1
}
#
diff --git a/itcl/iwidgets3.0.0/generic/extfileselectionbox.itk b/itcl/iwidgets3.0.0/generic/extfileselectionbox.itk
index 34c9ddbaec7..0b04fcf26d4 100644
--- a/itcl/iwidgets3.0.0/generic/extfileselectionbox.itk
+++ b/itcl/iwidgets3.0.0/generic/extfileselectionbox.itk
@@ -81,20 +81,17 @@ class iwidgets::Extfileselectionbox {
method filter {}
}
- public {
- method _selectDir {}
- method _dblSelectDir {}
- method _selectFile {}
- method _selectSelection {}
- method _selectFilter {}
- }
-
protected {
method _packComponents {{when later}}
method _updateLists {{when later}}
}
private {
+ method _selectDir {}
+ method _dblSelectDir {}
+ method _selectFile {}
+ method _selectSelection {}
+ method _selectFilter {}
method _setFilter {}
method _setSelection {}
method _setDirList {}
@@ -716,6 +713,8 @@ body iwidgets::Extfileselectionbox::_setSelection {} {
} else {
set selection [file join $_pwd ..]
}
+ } else {
+ set selection [file join $_pwd $selection]
}
#
diff --git a/itcl/iwidgets3.0.0/generic/feedback.itk b/itcl/iwidgets3.0.0/generic/feedback.itk
index 54c1f7b4d26..3e765bec3f8 100644
--- a/itcl/iwidgets3.0.0/generic/feedback.itk
+++ b/itcl/iwidgets3.0.0/generic/feedback.itk
@@ -109,7 +109,7 @@ proc ::iwidgets::feedback {pathName args} {
# ------------------------------------------------------------------
# CONSTRUCTOR
# ------------------------------------------------------------------
-body iwidgets::Feedback::constructor {args} {
+itcl::body iwidgets::Feedback::constructor {args} {
itk_component add trough {
frame $itk_interior.trough -relief sunken
} {
@@ -138,13 +138,15 @@ body iwidgets::Feedback::constructor {args} {
grid rowconfigure $itk_interior 1 -weight 1
grid columnconfigure $itk_interior 0 -weight 1
+ bind $itk_component(hull) <Configure> [itcl::code $this _display]
+
eval itk_initialize $args
}
# ------------------------------------------------------------------
# DESTRUCTOR
# ------------------------------------------------------------------
-body iwidgets::Feedback::destructor {} {
+itcl::body iwidgets::Feedback::destructor {} {
}
# ------------------------------------------------------------------
@@ -156,7 +158,7 @@ body iwidgets::Feedback::destructor {} {
#
# Set the total number of steps.
# ------------------------------------------------------------------
-configbody iwidgets::Feedback::steps {
+itcl::configbody iwidgets::Feedback::steps {
step 0
}
@@ -170,9 +172,12 @@ configbody iwidgets::Feedback::steps {
# Displays the bar in the trough with the width set using the current number
# of steps.
# -----------------------------------------------------------------------------
-body iwidgets::Feedback::_display {} {
+itcl::body iwidgets::Feedback::_display {} {
+ update idletasks
set troughwidth [winfo width $itk_component(trough)]
- set _barwidth [expr $troughwidth.0/$itk_option(-steps)]
+ set _barwidth [expr \
+ (1.0*$troughwidth-(2.0*[$itk_component(trough) cget -borderwidth])) / \
+ $itk_option(-steps)]
set fraction [expr int((1.0*$_stepval)/$itk_option(-steps)*100.0)]
$itk_component(percentage) config -text "$fraction%"
@@ -186,7 +191,7 @@ body iwidgets::Feedback::_display {} {
#
# Resets the status bar to 0
# ------------------------------------------------------------------
-body iwidgets::Feedback::reset {} {
+itcl::body iwidgets::Feedback::reset {} {
set _stepval 0
_display
}
@@ -196,7 +201,7 @@ body iwidgets::Feedback::reset {} {
#
# Increase the value of the status bar by inc. Default to 1
# ------------------------------------------------------------------
-body iwidgets::Feedback::step {{inc 1}} {
+itcl::body iwidgets::Feedback::step {{inc 1}} {
if {$_stepval >= $itk_option(-steps)} {
return
diff --git a/itcl/iwidgets3.0.0/generic/fileselectionbox.itk b/itcl/iwidgets3.0.0/generic/fileselectionbox.itk
index b41b29cdcdf..b164afbfd49 100644
--- a/itcl/iwidgets3.0.0/generic/fileselectionbox.itk
+++ b/itcl/iwidgets3.0.0/generic/fileselectionbox.itk
@@ -674,6 +674,8 @@ body iwidgets::Fileselectionbox::_setSelection {} {
} else {
set selection [file join $_pwd ..]
}
+ } else {
+ set selection [file join $_pwd $selection]
}
#
@@ -683,6 +685,7 @@ body iwidgets::Fileselectionbox::_setSelection {} {
regsub {^/(tmp_mnt|export)} $selection {} selection;
}
+ $itk_component(selection) delete 0 end
$itk_component(selection) insert 0 $selection
}
diff --git a/itcl/iwidgets3.0.0/generic/finddialog.itk b/itcl/iwidgets3.0.0/generic/finddialog.itk
index b237153ac32..894d0db4fff 100755
--- a/itcl/iwidgets3.0.0/generic/finddialog.itk
+++ b/itcl/iwidgets3.0.0/generic/finddialog.itk
@@ -251,7 +251,7 @@ body ::iwidgets::Finddialog::clear {} {
}
if {$itk_option(-clearcommand) != {}} {
- $itk_option(-clearcommand)
+ eval $itk_option(-clearcommand)
}
}
@@ -423,7 +423,7 @@ body ::iwidgets::Finddialog::find {} {
# If a match command is defined, then call it with the match point.
#
if {$itk_option(-matchcommand) != {}} {
- $itk_option(-matchcommand) $matchPoint
+ [subst $itk_option(-matchcommand)] $matchPoint
}
#
diff --git a/itcl/iwidgets3.0.0/generic/hierarchy.itk b/itcl/iwidgets3.0.0/generic/hierarchy.itk
index 79bad190b50..f315fd07b8a 100644
--- a/itcl/iwidgets3.0.0/generic/hierarchy.itk
+++ b/itcl/iwidgets3.0.0/generic/hierarchy.itk
@@ -80,12 +80,17 @@ class iwidgets::Hierarchy {
itk_option define -alwaysquery alwaysQuery AlwaysQuery 0
itk_option define -closedicon closedIcon Icon {}
+ itk_option define -dblclickcommand dblClickCommand Command {}
itk_option define -expanded expanded Expanded 0
itk_option define -filter filter Filter 0
itk_option define -font font Font \
-*-Courier-Medium-R-Normal--*-120-*-*-*-*-*-*
itk_option define -height height Height 0
itk_option define -iconcommand iconCommand Command {}
+ itk_option define -icondblcommand iconDblCommand Command {}
+ itk_option define -imagecommand imageCommand Command {}
+ itk_option define -imagedblcommand imageDblCommand Command {}
+ itk_option define -imagemenuloadcommand imageMenuLoadCommand Command {}
itk_option define -markbackground markBackground Foreground #a0a0a0
itk_option define -markforeground markForeground Background Black
itk_option define -nodeicon nodeIcon Icon {}
@@ -94,63 +99,77 @@ class iwidgets::Hierarchy {
itk_option define -selectcommand selectCommand Command {}
itk_option define -selectbackground selectBackground Foreground #c3c3c3
itk_option define -selectforeground selectForeground Background Black
+ itk_option define -textmenuloadcommand textMenuLoadCommand Command {}
itk_option define -visibleitems visibleItems VisibleItems 80x24
itk_option define -width width Width 0
- public method clear {}
- public method collapse {node}
- public method current {}
- public method draw {{when -now}}
- public method expand {node}
- public method mark {op args}
- public method prune {node}
- public method refresh {node}
- public method selection {op args}
- public method toggle {node}
-
- public method bbox {index}
- public method compare {index1 op index2}
- public method debug {args} {eval $args}
- public method delete {first {last {}}}
- public method dlineinfo {index}
- public method dump {args}
- public method get {index1 {index2 {}}}
- public method index {index}
- public method insert {args}
- public method scan {option args}
- public method search {args}
- public method see {index}
- public method tag {op args}
- public method window {option args}
- public method xview {args}
- public method yview {args}
-
- protected method _contents {uid}
- protected method _iconSelect {node icon}
- protected method _post {x y}
- protected method _drawLevel {node indent}
- protected method _select {x y}
- protected method _deselectSubNodes {uid}
- protected method _deleteNodeInfo {uid}
- protected method _getParent {uid}
- protected method _getHeritage {uid}
- protected method _isInternalTag {tag}
-
- private variable _filterCode "" ;# Compact view flag.
- private variable _hcounter 0 ;# Counter for hierarchy icons
- private variable _icons ;# Array of user icons by uid
- private variable _images ;# Array of our icons by uid
- private variable _indents ;# Array of indentation by uid
- private variable _marked ;# Array of marked nodes by uid
- private variable _markers "" ;# List of markers for level being drawn
- private variable _nodes ;# List of subnodes by uid
- private variable _pending "" ;# Pending draw flag
- private variable _posted "" ;# List of tags at posted menu position
- private variable _selected ;# Array of selected nodes by uid
- private variable _tags ;# Array of user tags by uid
- private variable _text ;# Array of displayed text by uid
- private variable _states ;# Array of selection state by uid
- private variable _ucounter 0 ;# Counter for user icons
+ public {
+ method clear {}
+ method collapse {node}
+ method current {}
+ method draw {{when -now}}
+ method expand {node}
+ method expanded {node}
+ method expState { }
+ method mark {op args}
+ method prune {node}
+ method refresh {node}
+ method selection {op args}
+ method toggle {node}
+
+ method bbox {index}
+ method compare {index1 op index2}
+ method debug {args} {eval $args}
+ method delete {first {last {}}}
+ method dlineinfo {index}
+ method dump {args}
+ method get {index1 {index2 {}}}
+ method index {index}
+ method insert {args}
+ method scan {option args}
+ method search {args}
+ method see {index}
+ method tag {op args}
+ method window {option args}
+ method xview {args}
+ method yview {args}
+ }
+
+ protected {
+ method _contents {uid}
+ method _post {x y}
+ method _drawLevel {node indent}
+ method _select {x y}
+ method _deselectSubNodes {uid}
+ method _deleteNodeInfo {uid}
+ method _getParent {uid}
+ method _getHeritage {uid}
+ method _isInternalTag {tag}
+ method _iconSelect {node icon}
+ method _iconDblSelect {node icon}
+ method _imageSelect {node}
+ method _imageDblClick {node}
+ method _imagePost {node image type x y}
+ method _double {x y}
+ }
+
+ private {
+ variable _filterCode "" ;# Compact view flag.
+ variable _hcounter 0 ;# Counter for hierarchy icons
+ variable _icons ;# Array of user icons by uid
+ variable _images ;# Array of our icons by uid
+ variable _indents ;# Array of indentation by uid
+ variable _marked ;# Array of marked nodes by uid
+ variable _markers "" ;# List of markers for level being drawn
+ variable _nodes ;# List of subnodes by uid
+ variable _pending "" ;# Pending draw flag
+ variable _posted "" ;# List of tags at posted menu position
+ variable _selected ;# Array of selected nodes by uid
+ variable _tags ;# Array of user tags by uid
+ variable _text ;# Array of displayed text by uid
+ variable _states ;# Array of selection state by uid
+ variable _ucounter 0 ;# Counter for user icons
+ }
}
#
@@ -275,6 +294,9 @@ body iwidgets::Hierarchy::constructor {args} {
bind $itk_component(list) <ButtonPress-1> \
[code $this _select %x %y]
+ bind $itk_component(list) <Double-1> \
+ [code $this _double %x %y]
+
bind $itk_component(list) <ButtonPress-3> \
[code $this _post %x %y]
@@ -407,6 +429,20 @@ configbody iwidgets::Hierarchy::selectcommand {
}
# ------------------------------------------------------------------
+# OPTION: -dblclickcommand
+#
+# Command executed to double click an item in the list. If this command
+# contains "%n", it is replaced with the name of the selected node.
+# If it contains a "%s", it is replaced with a boolean indicator of
+# the node's current selection status, where a value of 1 denotes
+# that the node is currently selected and 0 that it is not.
+#
+# Douglas R. Howard, Jr.
+# ------------------------------------------------------------------
+configbody iwidgets::Hierarchy::dblclickcommand {
+}
+
+# ------------------------------------------------------------------
# OPTION: -iconcommand
#
# Command executed upon selection of user icons. If this command
@@ -418,6 +454,44 @@ configbody iwidgets::Hierarchy::iconcommand {
}
# ------------------------------------------------------------------
+# OPTION: -icondblcommand
+#
+# Command executed upon double selection of user icons. If this command
+# contains "%n", it is replaced with the name of the node the icon
+# belongs to. Should it contain "%i" then the icon name is
+# substituted.
+#
+# Douglas R. Howard, Jr.
+# ------------------------------------------------------------------
+configbody iwidgets::Hierarchy::icondblcommand {
+}
+
+# ------------------------------------------------------------------
+# OPTION: -imagecommand
+#
+# Command executed upon selection of image icons. If this command
+# contains "%n", it is replaced with the name of the node the icon
+# belongs to. Should it contain "%i" then the icon name is
+# substituted.
+#
+# Douglas R. Howard, Jr.
+# ------------------------------------------------------------------
+configbody iwidgets::Hierarchy::imagecommand {
+}
+
+# ------------------------------------------------------------------
+# OPTION: -imagedblcommand
+#
+# Command executed upon double selection of user icons. If this command
+# contains "%n", it is replaced with the name of the node the icon
+# belongs to.
+#
+# Douglas R. Howard, Jr.
+# ------------------------------------------------------------------
+configbody iwidgets::Hierarchy::imagedblcommand {
+}
+
+# ------------------------------------------------------------------
# OPTION: -alwaysquery
#
# Boolean flag which tells the hierarchy widget weather or not
@@ -524,10 +598,8 @@ configbody iwidgets::Hierarchy::openicon {
0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
}
}
-
- set itk_option(-openicon) openFolder
}
-
+ set itk_option(-openicon) openFolder
} else {
if {[lsearch [image names] $itk_option(-openicon)] == -1} {
error "bad openicon option \"$itk_option(-openicon)\":\
@@ -582,10 +654,8 @@ configbody iwidgets::Hierarchy::closedicon {
0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
}
}
-
- set itk_option(-closedicon) closedFolder
}
-
+ set itk_option(-closedicon) closedFolder
} else {
if {[lsearch [image names] $itk_option(-closedicon)] == -1} {
error "bad closedicon option \"$itk_option(-closedicon)\":\
@@ -640,10 +710,8 @@ configbody iwidgets::Hierarchy::nodeicon {
0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
}
}
-
- set itk_option(-nodeicon) nodeFolder
}
-
+ set itk_option(-nodeicon) nodeFolder
} else {
if {[lsearch [image names] $itk_option(-nodeicon)] == -1} {
error "bad nodeicon option \"$itk_option(-nodeicon)\":\
@@ -761,6 +829,25 @@ configbody iwidgets::Hierarchy::visibleitems {
}
# ------------------------------------------------------------------
+# OPTION: -textmenuloadcommand
+#
+# Dynamically loads the popup menu based on what was selected.
+#
+# Douglas R. Howard, Jr.
+# ------------------------------------------------------------------
+configbody iwidgets::Hierarchy::textmenuloadcommand {}
+
+# ------------------------------------------------------------------
+# OPTION: -imagemenuloadcommand
+#
+# Dynamically loads the popup menu based on what was selected.
+#
+# Douglas R. Howard, Jr.
+# ------------------------------------------------------------------
+configbody iwidgets::Hierarchy::imagemenuloadcommand {}
+
+
+# ------------------------------------------------------------------
# PUBLIC METHODS
# ------------------------------------------------------------------
@@ -1255,6 +1342,47 @@ body iwidgets::Hierarchy::yview {args} {
return [eval $itk_component(list) yview $args]
}
+# ----------------------------------------------------------------------
+# PUBLIC METHOD: expanded node
+#
+# Tells if a node is expanded or collapsed
+#
+# Douglas R. Howard, Jr.
+# ----------------------------------------------------------------------
+body iwidgets::Hierarchy::expanded {node} {
+ if {! [info exists _states($node)]} {
+ error "bad collapse node argument: \"$node\", the node doesn't exist"
+ }
+
+ return $_states($node)
+}
+
+# ----------------------------------------------------------------------
+# PUBLIC METHOD: expState
+#
+# Returns a list of all expanded nodes
+#
+# Douglas R. Howard, Jr.
+# ----------------------------------------------------------------------
+body iwidgets::Hierarchy::expState {} {
+ set nodes [_contents ""]
+ set open ""
+ set i 0
+ while {1} {
+ if {[info exists _states([lindex $nodes $i])] &&
+ $_states([lindex $nodes $i])} {
+ lappend open [lindex $nodes $i]
+ foreach child [_contents [lindex $nodes $i]] {
+ lappend nodes $child
+ }
+ }
+ incr i
+ if {$i >= [llength $nodes]} {break}
+ }
+
+ return $open
+}
+
# ------------------------------------------------------------------
# PROTECTED METHODS
# ------------------------------------------------------------------
@@ -1331,7 +1459,13 @@ body iwidgets::Hierarchy::_drawLevel {node indent} {
# its expanded/collapsed state.
#
label $_images($child) -image $icon -background $bg
- bind $_images($child) <ButtonPress-1> [code $this toggle $child]
+ # DRH - enhanced and added features that handle image clicking,
+ # double clicking, and right clicking behavior
+ bind $_images($child) <ButtonPress-1> \
+ "[code $this toggle $child]; [code $this _imageSelect $child]"
+ bind $_images($child) <Double-1> [code $this _imageDblClick $child]
+ bind $_images($child) <ButtonPress-3> \
+ [code $this _imagePost $child $_images($child) $type %x %y]
$itk_component(list) window create insert -window $_images($child)
#
@@ -1351,8 +1485,14 @@ body iwidgets::Hierarchy::_drawLevel {node indent} {
label $wid -image $image -background $bg
}
+ # DRH - this will bind events to the icons to allow
+ # clicking, double clicking, and right clicking actions.
bind $wid <ButtonPress-1> \
- [code $this _iconSelect $child $image]
+ [code $this _iconSelect $child $image]
+ bind $wid <Double-1> \
+ [code $this _iconDblSelect $child $image]
+ bind $wid <ButtonPress-3> \
+ [code $this _imagePost $child $wid $type %x %y]
$itk_component(list) window create insert -window $wid
}
}
@@ -1508,6 +1648,12 @@ body iwidgets::Hierarchy::_post {x y} {
# If we have tags then do the popup at this position.
#
if {$_posted != {}} {
+ # DRH - here is where the user's function for dynamic popup
+ # menu loading is done, if the user has specified to do so with the
+ # "-textmenuloadcommand"
+ if {$itk_option(-textmenuloadcommand) != {}} {
+ eval $itk_option(-textmenuloadcommand)
+ }
tk_popup $itk_component(itemMenu) $rx $ry
} else {
tk_popup $itk_component(bgMenu) $rx $ry
@@ -1515,6 +1661,38 @@ body iwidgets::Hierarchy::_post {x y} {
}
# ----------------------------------------------------------------------
+# PROTECTED METHOD: _imagePost node image type x y
+#
+# Used internally to post the popup menu at the coordinate (x,y)
+# relative to the widget. If (x,y) is on an image, then the itemMenu
+# component is posted.
+#
+# Douglas R. Howard, Jr.
+# ----------------------------------------------------------------------
+body iwidgets::Hierarchy::_imagePost {node image type x y} {
+ set rx [expr [winfo rootx $image]+$x]
+ set ry [expr [winfo rooty $image]+$y]
+
+ #
+ # The posted variable will hold the list of tags which exist at
+ # this x,y position that will be passed back to the user. They
+ # don't need to know about our internal tags, info, hilite, and
+ # lowlite, so remove them from the list.
+ #
+ set _posted {}
+
+ lappend _posted $node $type
+
+ #
+ # If we have tags then do the popup at this position.
+ #
+ if {$itk_option(-imagemenuloadcommand) != {}} {
+ eval $itk_option(-imagemenuloadcommand)
+ }
+ tk_popup $itk_component(itemMenu) $rx $ry
+}
+
+# ----------------------------------------------------------------------
# PROTECTED METHOD: _select x y
#
# Used internally to select an item at the coordinate (x,y) relative
@@ -1551,10 +1729,50 @@ body iwidgets::Hierarchy::_select {x y} {
}
# ----------------------------------------------------------------------
+# PROTECTED METHOD: _double x y
+#
+# Used internally to double click an item at the coordinate (x,y) relative
+# to the widget. The command associated with the -dblclickcommand
+# option is execute following % character substitutions. If %n
+# appears in the command, the selected node is substituted. If %s
+# appears, a boolean value representing the current selection state
+# will be substituted.
+#
+# Douglas R. Howard, Jr.
+# ----------------------------------------------------------------------
+body iwidgets::Hierarchy::_double {x y} {
+ if {$itk_option(-dblclickcommand) != {}} {
+ if {[set seltags [$itk_component(list) tag names @$x,$y]] != {}} {
+ foreach tag $seltags {
+ if {![_isInternalTag $tag]} {
+ lappend node $tag
+ }
+ }
+
+ if {[lsearch $seltags "hilite"] == -1} {
+ set selectstatus 0
+ } else {
+ set selectstatus 1
+ }
+
+ set cmd $itk_option(-dblclickcommand)
+ regsub -all {%n} $cmd [list $node] cmd
+ regsub -all {%s} $cmd [list $selectstatus] cmd
+
+ uplevel #0 $cmd
+ }
+ }
+
+ return
+}
+
+# ----------------------------------------------------------------------
# PROTECTED METHOD: _iconSelect node icon
#
# Used internally to upon selection of user icons. The -iconcommand
# is executed after substitution of the node for %n and icon for %i.
+#
+# Douglas R. Howard, Jr.
# ----------------------------------------------------------------------
body iwidgets::Hierarchy::_iconSelect {node icon} {
set cmd $itk_option(-iconcommand)
@@ -1567,6 +1785,62 @@ body iwidgets::Hierarchy::_iconSelect {node icon} {
}
# ----------------------------------------------------------------------
+# PROTECTED METHOD: _iconDblSelect node icon
+#
+# Used internally to upon double selection of user icons. The
+# -icondblcommand is executed after substitution of the node for %n and
+# icon for %i.
+#
+# Douglas R. Howard, Jr.
+# ----------------------------------------------------------------------
+body iwidgets::Hierarchy::_iconDblSelect {node icon} {
+ if {$itk_option(-icondblcommand) != {}} {
+ set cmd $itk_option(-icondblcommand)
+ regsub -all {%n} $cmd [list $node] cmd
+ regsub -all {%i} $cmd [list $icon] cmd
+
+ uplevel \#0 $cmd
+ }
+ return {}
+}
+
+# ----------------------------------------------------------------------
+# PROTECTED METHOD: _imageSelect node icon
+#
+# Used internally to upon selection of user icons. The -imagecommand
+# is executed after substitution of the node for %n.
+#
+# Douglas R. Howard, Jr.
+# ----------------------------------------------------------------------
+body iwidgets::Hierarchy::_imageSelect {node} {
+ if {$itk_option(-imagecommand) != {}} {
+ set cmd $itk_option(-imagecommand)
+ regsub -all {%n} $cmd [list $node] cmd
+
+ uplevel \#0 $cmd
+ }
+ return {}
+}
+
+# ----------------------------------------------------------------------
+# PROTECTED METHOD: _imageDblClick node
+#
+# Used internally to upon double selection of images. The
+# -imagedblcommand is executed.
+#
+# Douglas R. Howard, Jr.
+# ----------------------------------------------------------------------
+body iwidgets::Hierarchy::_imageDblClick {node} {
+ if {$itk_option(-imagedblcommand) != {}} {
+ set cmd $itk_option(-imagedblcommand)
+ regsub -all {%n} $cmd [list $node] cmd
+
+ uplevel \#0 $cmd
+ }
+ return {}
+}
+
+# ----------------------------------------------------------------------
# PROTECTED METHOD: _deselectSubNodes uid
#
# Used internally to recursively deselect all the nodes beneath a
diff --git a/itcl/iwidgets3.0.0/generic/hyperhelp.itk b/itcl/iwidgets3.0.0/generic/hyperhelp.itk
index e3f4a05bd83..8eb5e80be44 100644
--- a/itcl/iwidgets3.0.0/generic/hyperhelp.itk
+++ b/itcl/iwidgets3.0.0/generic/hyperhelp.itk
@@ -261,9 +261,8 @@ configbody iwidgets::Hyperhelp::title {
# Set location of help files
# ------------------------------------------------------------------
configbody iwidgets::Hyperhelp::helpdir {
- if {[string index [file dirname $itk_option(-helpdir)] 0] != "/" && \
- [string index [file dirname $itk_option(-helpdir)] 0] != "~"} {
- configure -helpdir [pwd]/$itk_option(-helpdir)
+ if {[file pathtype $itk_option(-helpdir)] == "relative"} {
+ configure -helpdir [file join [pwd] $itk_option(-helpdir)]
} else {
set _history {}
set _history_len 0
diff --git a/itcl/iwidgets3.0.0/generic/labeledframe.itk b/itcl/iwidgets3.0.0/generic/labeledframe.itk
index 19b8540f70b..0291c2053d2 100644
--- a/itcl/iwidgets3.0.0/generic/labeledframe.itk
+++ b/itcl/iwidgets3.0.0/generic/labeledframe.itk
@@ -105,14 +105,20 @@ class iwidgets::Labeledframe {
public method clientHandlesConfigure {{yes 1}}
#
- # Private methods
+ # Protected methods
#
- private {
- method smt {value} { _setMarginThickness $value }
+
+ protected {
method _positionLabel {{when later}}
method _collapseMargin {}
method _setMarginThickness {value}
+ method smt {value} { _setMarginThickness $value }
+ }
+ #
+ # Private methods/data
+ #
+ private {
proc _initTable {}
variable _reposition "" ;# non-null => _positionLabel pending
diff --git a/itcl/iwidgets3.0.0/generic/menubar.itk b/itcl/iwidgets3.0.0/generic/menubar.itk
index 35f1a669374..1b6e0b25329 100644
--- a/itcl/iwidgets3.0.0/generic/menubar.itk
+++ b/itcl/iwidgets3.0.0/generic/menubar.itk
@@ -109,8 +109,6 @@ class iwidgets::Menubar {
method path { args } { }
method type { path } { }
method yposition { entryPath } { }
-
- method _helpHandler { menuPath } { }
}
private {
@@ -121,6 +119,7 @@ class iwidgets::Menubar {
method radiobutton { radName args } { }
method separator { sepName args } { }
method cascade { casName args } { }
+ method _helpHandler { menuPath } { }
method _addMenuButton { buttonName args} { }
method _insertMenuButton { beforeMenuPath buttonName args} { }
method _makeMenuButton {buttonName args} { }
@@ -2114,7 +2113,7 @@ body iwidgets::Menubar::_getSymbolicPath { parent segment } {
# -------------------------------------------------------------
#
-# PROTECTED METHOD: _helpHandler
+# PRIVATE METHOD: _helpHandler
#
# Bound to the <Motion> event on a menu pane. This puts the
# help string associated with the menu entry into the
@@ -2207,7 +2206,12 @@ body iwidgets::Menubar::_getCallerLevel { } {
# in frames. Since our menubuttons are within the Menubar class, the
# default proc won't find them during menu traversal. This proc
# redefines the default proc to remedy the problem.
-#
+#-----------------------------------------------------------
+# BUG FIX: csmith (Chad Smith: csmith@adc.com), 3/30/99
+#-----------------------------------------------------------
+# The line, "set qchild ..." below had a typo. It should be
+# "info command $child" instead of "winfo command $child".
+#-----------------------------------------------------------
proc tkMenuFind {w char} {
global tkPriv
set char [string tolower $char]
@@ -2215,7 +2219,7 @@ proc tkMenuFind {w char} {
foreach child [winfo child $w] {
switch [winfo class $child] {
Menubutton {
- set qchild [winfo command $child]
+ set qchild [info command $child]
set char2 [string index [$qchild cget -text] \
[$qchild cget -underline]]
if {([string compare $char [string tolower $char2]] == 0)
diff --git a/itcl/iwidgets3.0.0/generic/messagedialog.itk b/itcl/iwidgets3.0.0/generic/messagedialog.itk
index 072f4d34068..ba1927a194f 100644
--- a/itcl/iwidgets3.0.0/generic/messagedialog.itk
+++ b/itcl/iwidgets3.0.0/generic/messagedialog.itk
@@ -39,6 +39,7 @@
#
itk::usual Messagedialog {
keep -background -cursor -font -foreground -modality
+ keep -wraplength -justify
}
# ------------------------------------------------------------------
@@ -88,6 +89,7 @@ body iwidgets::Messagedialog::constructor {args} {
label $itk_interior.message
} {
keep -background -cursor -font -foreground -text
+ keep -wraplength -justify
rename -padx -textpadx textPadX Pad
rename -pady -textpady textPadY Pad
diff --git a/itcl/iwidgets3.0.0/generic/notebook.itk b/itcl/iwidgets3.0.0/generic/notebook.itk
index 78a470c44e8..a83a7984933 100644
--- a/itcl/iwidgets3.0.0/generic/notebook.itk
+++ b/itcl/iwidgets3.0.0/generic/notebook.itk
@@ -764,7 +764,7 @@ body iwidgets::Notebook::_deletePages { fromPage toPage } {
# If we deleted a selected page set our selection to none
if { $_currPage >= $fromPage && $_currPage <= $toPage } {
- set $_currPage -1
+ set _currPage -1
}
# make sure _currPage stays in sync with new numbering...
diff --git a/itcl/iwidgets3.0.0/generic/optionmenu.itk b/itcl/iwidgets3.0.0/generic/optionmenu.itk
index cfc700f3033..f0fd8b998cd 100644
--- a/itcl/iwidgets3.0.0/generic/optionmenu.itk
+++ b/itcl/iwidgets3.0.0/generic/optionmenu.itk
@@ -123,7 +123,7 @@ body iwidgets::Optionmenu::constructor {args} {
component hull configure -highlightthickness 0
itk_component add menuBtn {
- menubutton $itk_interior.menuBtn -relief raised -indicator on \
+ menubutton $itk_interior.menuBtn -relief raised -indicatoron on \
-textvariable [scope _currentItem] -takefocus 1 \
-menu $itk_interior.menuBtn.menu
} {
@@ -411,6 +411,9 @@ body iwidgets::Optionmenu::insert {index string args} {
# ------------------------------------------------------------------
body iwidgets::Optionmenu::select {index} {
set index [index $index]
+ if {$index > [expr $_numitems - 1]} {
+ incr index -1
+ }
_setItem [lindex $_items $index]
}
@@ -601,7 +604,24 @@ body iwidgets::Optionmenu::_setitems {items_} {
#
if {$first != ""} {
set i [lsearch -exact $_items $savedCurrentItem]
- select [expr {$i != -1 ? $savedCurrentItem : $first}]
+ #-------------------------------------------------------------
+ # BEGIN BUG FIX: csmith (Chad Smith: csmith@adc.com), 11/18/99
+ #-------------------------------------------------------------
+ # The previous code fragment:
+ # <select [expr {$i != -1 ? $savedCurrentItem : $first}]>
+ # is faulty because of exponential numbers. For example,
+ # 2e-4 is numerically equal to 2e-04, but the string representation
+ # is of course different. As a result, the select invocation
+ # fails, and an error message is printed.
+ #-------------------------------------------------------------
+ if {$i != -1} {
+ select $savedCurrentItem
+ } else {
+ select $first
+ }
+ #-------------------------------------------------------------
+ # END BUG FIX
+ #-------------------------------------------------------------
} else {
_setItem ""
}
diff --git a/itcl/iwidgets3.0.0/generic/pane.itk b/itcl/iwidgets3.0.0/generic/pane.itk
index dd1baa28182..b7260f3815c 100644
--- a/itcl/iwidgets3.0.0/generic/pane.itk
+++ b/itcl/iwidgets3.0.0/generic/pane.itk
@@ -97,7 +97,7 @@ configbody iwidgets::Pane::minimum {
set pixels \
[winfo pixels $itk_component(hull) $itk_option(-minimum)]
- set $itk_option(-minimum) $pixels
+ set itk_option(-minimum) $pixels
}
# ------------------------------------------------------------------
diff --git a/itcl/iwidgets3.0.0/generic/panedwindow.itk b/itcl/iwidgets3.0.0/generic/panedwindow.itk
index 6ed1165919b..644d1d6c8f7 100644
--- a/itcl/iwidgets3.0.0/generic/panedwindow.itk
+++ b/itcl/iwidgets3.0.0/generic/panedwindow.itk
@@ -151,7 +151,7 @@ configbody iwidgets::Panedwindow::orient {
if {$_initialized} {
switch $itk_option(-orient) {
vertical {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
bind $itk_component(sash$i) <Button-1> \
[code $this _startGrip %x $i]
bind $itk_component(sash$i) <B1-Motion> \
@@ -168,7 +168,7 @@ configbody iwidgets::Panedwindow::orient {
}
horizontal {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
bind $itk_component(sash$i) <Button-1> \
[code $this _startGrip %y $i]
bind $itk_component(sash$i) <B1-Motion> \
@@ -204,7 +204,7 @@ configbody iwidgets::Panedwindow::sashborderwidth {
set itk_option(-sashborderwidth) $pixels
if {$_initialized} {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
$itk_component(sash$i) configure \
-borderwidth $itk_option(-sashborderwidth)
}
@@ -218,9 +218,8 @@ configbody iwidgets::Panedwindow::sashborderwidth {
# ------------------------------------------------------------------
configbody iwidgets::Panedwindow::sashcursor {
if {$_initialized} {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
- $itk_component(sash$i) configure \
- -cursor $itk_option(-sashcursor)
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
+ $itk_component(sash$i) configure -cursor $itk_option(-sashcursor)
}
}
}
@@ -236,7 +235,7 @@ configbody iwidgets::Panedwindow::sashwidth {
set itk_option(-sashwidth) $pixels
if {$_initialized} {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
$itk_component(sash$i) configure \
-width $itk_option(-sashwidth)
}
@@ -254,7 +253,7 @@ configbody iwidgets::Panedwindow::sashheight {
set itk_option(-sashheight) $pixels
if {$_initialized} {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
$itk_component(sash$i) configure \
-height $itk_option(-sashheight)
}
@@ -274,7 +273,7 @@ configbody iwidgets::Panedwindow::thickness {
set itk_option(-thickness) $pixels
if {$_initialized} {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
$itk_component(separator$i) configure \
-height $itk_option(-thickness)
$itk_component(separator$i) configure \
@@ -283,7 +282,7 @@ configbody iwidgets::Panedwindow::thickness {
-borderwidth [expr $itk_option(-thickness) / 2]
}
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
_placeSash $i
}
}
@@ -304,7 +303,7 @@ configbody iwidgets::Panedwindow::sashindent {
set itk_option(-sashindent) $pixels
if {$_initialized} {
- for {set i 1} {$i < [llength $_panes]} {incr i} {
+ for {set i 1} {$i < [llength $_activePanes]} {incr i} {
_placeSash $i
}
}
diff --git a/itcl/iwidgets3.0.0/generic/radiobox.itk b/itcl/iwidgets3.0.0/generic/radiobox.itk
index 797dc5960f3..7ec9a31da5d 100644
--- a/itcl/iwidgets3.0.0/generic/radiobox.itk
+++ b/itcl/iwidgets3.0.0/generic/radiobox.itk
@@ -53,6 +53,7 @@ class iwidgets::Radiobox {
disabledForeground DisabledForeground {}
itk_option define -selectcolor selectColor Background {}
itk_option define -command command Command {}
+ itk_option define -orient orient Orient vertical
public {
method add {tag args}
@@ -119,6 +120,22 @@ body iwidgets::Radiobox::constructor {args} {
configbody iwidgets::Radiobox::command {}
# ------------------------------------------------------------------
+# OPTION: -orient
+#
+# Allows the user to orient the radiobuttons either horizontally
+# or vertically.
+# ------------------------------------------------------------------
+configbody iwidgets::Radiobox::orient {
+ if {$itk_option(-orient) == "horizontal" ||
+ $itk_option(-orient) == "vertical"} {
+ _rearrange
+ } else {
+ error "Bad orientation: $itk_option(-orient). Should be\
+ \"horizontal\" or \"vertical\"."
+ }
+}
+
+# ------------------------------------------------------------------
# METHODS
# ------------------------------------------------------------------
@@ -216,20 +233,29 @@ body iwidgets::Radiobox::insert {index tag args} {
# ------------------------------------------------------------------
# METHOD: _rearrange
#
-# Rearrange the buttons in the childsite frame using
-# the grid geometry manager.
+# Rearrange the buttons in the childsite frame using the grid
+# geometry manager. This method was modified by Chad Smith on 3/9/00
+# to take into consideration the newly added -orient config option.
# ------------------------------------------------------------------
body iwidgets::Radiobox::_rearrange {} {
- set index 0
- set master $itk_component(childsite)
-
if {[set count [llength $_buttons]] > 0} {
- foreach tag $_buttons {
- grid configure $itk_component($tag) -row $index -sticky nw
- grid rowconfigure $master $index -weight 0
- incr index
+ if {$itk_option(-orient) == "vertical"} {
+ set row 0
+ foreach tag $_buttons {
+ grid configure $itk_component($tag) -col 0 -row $row -sticky nw
+ grid rowconfigure $itk_component(childsite) $row -weight 0
+ incr row
+ }
+ grid rowconfigure $itk_component(childsite) [expr $count-1] \
+ -weight 1
+ } else {
+ set col 0
+ foreach tag $_buttons {
+ grid configure $itk_component($tag) -col $col -row 0 -sticky nw
+ grid columnconfigure $itk_component(childsite) $col -weight 1
+ incr col
+ }
}
- grid rowconfigure $master [expr $count-1] -weight 1
}
}
diff --git a/itcl/iwidgets3.0.0/generic/scrolledhtml.itk b/itcl/iwidgets3.0.0/generic/scrolledhtml.itk
index 71cee27b14f..66c0e3d42e6 100644
--- a/itcl/iwidgets3.0.0/generic/scrolledhtml.itk
+++ b/itcl/iwidgets3.0.0/generic/scrolledhtml.itk
@@ -141,6 +141,7 @@ class iwidgets::Scrolledhtml {
itk_option define -unknownimage unknownimage File {}
itk_option define -textbackground textBackground Background {}
itk_option define -update update Update 1
+ itk_option define -debug debug Debug 0
public method import {args}
public method clear {}
@@ -544,7 +545,7 @@ body iwidgets::Scrolledhtml::import {args} {
append _cwd [file dirname $filename]
} else {
set f [open $filename r]
-g set _cwd [file dirname $filename]
+ set _cwd [file dirname $filename]
}
}
}
@@ -611,7 +612,12 @@ body iwidgets::Scrolledhtml::render {html {wd .}} {
[lindex $entity 1]] "" entity
set cmd [string tolower [lindex $entity 0]]
if {[info command _entity_$cmd]!=""} {
- catch {eval _entity_$cmd [lrange $entity 1 end]}
+ if {[catch {eval _entity_$cmd [lrange $entity 1 end]} bad]} {
+ if {$itk_option(-debug)} {
+ global errorInfo
+ puts stderr "render: _entity_$cmd [lrange $entity 1 end] = Error:$bad\n$errorInfo"
+ }
+ }
}
set html \
[string range $html [expr [lindex $match 1]+1] end]
@@ -728,16 +734,24 @@ body iwidgets::Scrolledhtml::_append_text {text} {
if ![string length $text] return
}
if {!$_pre && !$_intitle} {
- set p [$_hottext get "end - 2c"]
+ if {[catch {$_hottext get "end - 2c"} p]} {
+ set p ""
+ }
set n [string index $text 0]
if {$n == " " && $p == " "} {
set text [string range $text 1 end]
}
- $_hottext insert end $text $_tag
+ if {[catch {$_hottext insert end $text $_tag}]} {
+ set pht [winfo parent $_hottext]
+ catch {$pht insert end $text $_tag}
+ }
return
}
if {$_pre && !$_intitle} {
- $_hottext insert end $text $_tag
+ if {[catch {$_hottext insert end $text $_tag}]} {
+ set pht [winfo parent $_hottext]
+ catch {$pht insert end $text $_tag}
+ }
return
}
append _title $text
@@ -807,7 +821,7 @@ body iwidgets::Scrolledhtml::_set_tag {} {
if {![info exists _tagl($_tag)]} {
set _tagfont($_tag) 1
eval $_hottext tag configure $_tag \
- -foreground $_color \
+ -foreground ${_color} \
-lmargin1 ${_left}m \
-lmargin2 ${_left2}m $args
if [catch {eval $_hottext tag configure $_tag \
@@ -2062,8 +2076,10 @@ body iwidgets::Scrolledhtml::_entity_table {{args {}}} {
_push link $_link
_push alink $_alink
# push fake first row to avoid using optional /tr tag
- _push color {}
- _push bgcolor {}
+ # (This needs to set a real color - not the empty string
+ # becaule later code will try to use those values.)
+ _push color $_color
+ _push bgcolor $_bgcolor
_push link {}
_push alink {}
@@ -2125,7 +2141,7 @@ body iwidgets::Scrolledhtml::_entity_table {{args {}}} {
# end table
# ------------------------------------------------------------------
body iwidgets::Scrolledhtml::_entity_/table {} {
- if $_intable {
+ if {$_intable} {
_pop tableborder
set table [[_pop table] childsite]
_pop row
@@ -2147,11 +2163,23 @@ body iwidgets::Scrolledhtml::_entity_/table {} {
set _bgcolor [_pop bgcolor]
set _link [_pop link]
set _alink [_pop alink]
- foreach x [grid slaves $table] {
- if {[$x cget -height] == 1} {
- $x configure -height [lindex [split [$x index "end - 1 chars"] "."] 0]
- }
- }
+ foreach x [grid slaves $table] {
+ set text [$x get 1.0 end]
+ set tl [split $text \n]
+ set max 0
+ foreach l $tl {
+ set len [string length $l]
+ if {$len > $max} {
+ set max $len
+ }
+ }
+ if {$max > [$x cget -width]} {
+ $x configure -width $max
+ }
+ if {[$x cget -height] == 1} {
+ $x configure -height [lindex [split [$x index "end - 1 chars"] "."] 0]
+ }
+ }
$_hottext configure -state disabled
set _hottext [_pop hottext]
$_hottext configure -state normal
@@ -2217,17 +2245,29 @@ body iwidgets::Scrolledhtml::_entity_td {{args {}}} {
set cellspacing [_peek cellspacing]
set _hottext $table.cell[incr _counter]
text $_hottext -relief flat -width $ar(width) -height $ar(height) \
- -foreground $_color -background $_bgcolor -highlightthickness 0 \
+ -highlightthickness 0 -wrap word -cursor $itk_option(-cursor) \
-wrap word -cursor $itk_option(-cursor) \
-padx $cellpadding -pady $cellpadding
- if [info exists ar(nowrap)] {
- $_hottext configure -wrap none
- }
+ if {$_color != ""} {
+ $_hottext config -foreground $_color
+ }
+ if {$_bgcolor != ""} {
+ $_hottext config -background $_bgcolor
+ }
+ if [info exists ar(nowrap)] {
+ $_hottext configure -wrap none
+ }
if [_peek tableborder] {
$_hottext configure -relief sunken
}
set row [_peek row]
+ if {$row < 0} {
+ set row 0
+ }
set column [_pop column]
+ if {$column < 0} {
+ set column 0
+ }
while {[grid slaves $table -row $row -column $column] != ""} {
incr column
}
diff --git a/itcl/iwidgets3.0.0/generic/scrolledlistbox.itk b/itcl/iwidgets3.0.0/generic/scrolledlistbox.itk
index c8222b96de4..87f371a2e58 100644
--- a/itcl/iwidgets3.0.0/generic/scrolledlistbox.itk
+++ b/itcl/iwidgets3.0.0/generic/scrolledlistbox.itk
@@ -79,6 +79,7 @@ class iwidgets::Scrolledlistbox {
public method sort {{mode ascending}}
public method xview {args}
public method yview {args}
+ public method itemconfigure {args}
protected method _makeSelection {}
protected method _dblclick {}
@@ -154,6 +155,9 @@ body iwidgets::Scrolledlistbox::constructor {args} {
usual
keep -borderwidth -exportselection -relief -selectmode
+
+ # This option was added in Tk 8.3
+ catch {keep -listvariable}
rename -font -textfont textFont Font
rename -background -textbackground textBackground Background
@@ -700,6 +704,16 @@ body iwidgets::Scrolledlistbox::yview {args} {
}
# ------------------------------------------------------------------
+# METHOD: itemconfigure args
+#
+# This is a wrapper method around the new tk8.3 itemconfigure command
+# for the listbox.
+# ------------------------------------------------------------------
+body iwidgets::Scrolledlistbox::itemconfigure {args} {
+ return [eval $itk_component(listbox) itemconfigure $args]
+}
+
+# ------------------------------------------------------------------
# PROTECTED METHOD: _makeSelection
#
# Evaluate the selection command.
diff --git a/itcl/iwidgets3.0.0/generic/scrolledtext.itk b/itcl/iwidgets3.0.0/generic/scrolledtext.itk
index f595aa1c3bb..86fc7f362d4 100644
--- a/itcl/iwidgets3.0.0/generic/scrolledtext.itk
+++ b/itcl/iwidgets3.0.0/generic/scrolledtext.itk
@@ -81,6 +81,7 @@ class iwidgets::Scrolledtext {
public method delete {first {last {}}}
public method dlineinfo {index}
public method get {index1 {index2 {}}}
+ public method image {option args}
public method index {index}
public method insert {args}
public method mark {option args}
@@ -392,6 +393,17 @@ body iwidgets::Scrolledtext::get {index1 {index2 {}}} {
}
# ------------------------------------------------------------------
+# METHOD image option ?arg arg ...?
+#
+# Manipulate images dependent on options.
+#
+# ------------------------------------------------------------------
+body iwidgets::Scrolledtext::image {option args} {
+ return [eval $itk_component(text) image $option $args]
+}
+
+
+# ------------------------------------------------------------------
# METHOD index index
#
# Return position corresponding to index.
@@ -433,7 +445,14 @@ body iwidgets::Scrolledtext::scan {option args} {
# Searches the text for characters matching a pattern.
# ------------------------------------------------------------------
body iwidgets::Scrolledtext::search {args} {
- return [eval $itk_component(text) search $args]
+ #-----------------------------------------------------------
+ # BUG FIX: csmith (Chad Smith: csmith@adc.com), 11/18/99
+ #-----------------------------------------------------------
+ # Need to run this command up one level on the stack since
+ # the text widget may modify one of the arguments, which is
+ # the case when -count is specified.
+ #-----------------------------------------------------------
+ return [uplevel eval $itk_component(text) search $args]
}
# ------------------------------------------------------------------
diff --git a/itcl/iwidgets3.0.0/generic/shell.itk b/itcl/iwidgets3.0.0/generic/shell.itk
index 05a91e4f079..78ef19c53f9 100644
--- a/itcl/iwidgets3.0.0/generic/shell.itk
+++ b/itcl/iwidgets3.0.0/generic/shell.itk
@@ -240,8 +240,8 @@ body iwidgets::Shell::activate {} {
}
set _wait($this) 0
- wm deiconify $itk_component(hull)
raise $itk_component(hull)
+ wm deiconify $itk_component(hull)
tkwait visibility $itk_component(hull)
if {$itk_option(-modality) == "application"} {
diff --git a/itcl/iwidgets3.0.0/generic/spindate.itk b/itcl/iwidgets3.0.0/generic/spindate.itk
index 0d9cda138ac..215c031b0b8 100644
--- a/itcl/iwidgets3.0.0/generic/spindate.itk
+++ b/itcl/iwidgets3.0.0/generic/spindate.itk
@@ -572,14 +572,6 @@ body iwidgets::Spindate::_packDate {{when later}} {
grid columnconfigure $_interior $i -minsize 0
}
- #
- # Get some boolean 1/0 values for the -monthon and -dayon options.
- # We need this later so that Tcl doesn't complain about operands
- # of || being strings.
- #
- set monthon [expr {$itk_option(-monthon) == "1"}]
- set dayon [expr {$itk_option(-dayon) == "1"}]
-
set _repack ""
#
@@ -610,7 +602,7 @@ body iwidgets::Spindate::_packDate {{when later}} {
}
if {$itk_option(-yearon)} {
- if {$monthon || $dayon} {
+ if {$itk_option(-monthon) || $itk_option(-dayon)} {
grid rowconfigure $_interior [incr row] \
-minsize $itk_option(-datemargin)
}
@@ -650,7 +642,7 @@ body iwidgets::Spindate::_packDate {{when later}} {
}
if {$itk_option(-yearon)} {
- if {$monthon || $dayon} {
+ if {$itk_option(-monthon) || $itk_option(-dayon)} {
grid columnconfigure $_interior [incr column] \
-minsize $itk_option(-datemargin)
}
diff --git a/itcl/iwidgets3.0.0/generic/spinint.itk b/itcl/iwidgets3.0.0/generic/spinint.itk
index 2c3310394da..9dc819ce999 100644
--- a/itcl/iwidgets3.0.0/generic/spinint.itk
+++ b/itcl/iwidgets3.0.0/generic/spinint.itk
@@ -163,33 +163,14 @@ body iwidgets::Spinint::up {} {
#
if {$val >= $min_range && $val < $max_range} {
incr val $itk_option(-step)
-
- #
- # Re-check boundaries.
- #
- if {$val >= $min_range && $val <= $max_range} {
- $itk_component(entry) delete 0 end
- $itk_component(entry) insert 0 $val
- } else {
-
- #
- # This is wrap when -step > 1.
- #
- if {$itk_option(-wrap)} {
- if {$val > $max_range} {
- $itk_component(entry) delete 0 end
- $itk_component(entry) insert 0 $min_range
- } else {
- uplevel #0 $itk_option(-invalid)
- }
- } else {
- uplevel #0 $itk_option(-invalid)
- }
- }
-
+ $itk_component(entry) delete 0 end
+ $itk_component(entry) insert 0 $val
} else {
if {$itk_option(-wrap)} {
- if {$val == $max_range} {
+ if {$val >= $max_range} {
+ $itk_component(entry) delete 0 end
+ $itk_component(entry) insert 0 $min_range
+ } elseif {$val < $min_range} {
$itk_component(entry) delete 0 end
$itk_component(entry) insert 0 $min_range
} else {
@@ -227,33 +208,14 @@ body iwidgets::Spinint::down {} {
#
if {$val > $min_range && $val <= $max_range} {
incr val -$itk_option(-step)
-
- #
- # Re-check boundaries.
- #
- if {$val >= $min_range && $val <= $max_range} {
- $itk_component(entry) delete 0 end
- $itk_component(entry) insert 0 $val
- } else {
-
- #
- # This is wrap when -step > 1.
- #
- if {$itk_option(-wrap)} {
- if {$val < $min_range} {
- $itk_component(entry) delete 0 end
- $itk_component(entry) insert 0 $max_range
- } else {
- uplevel #0 $itk_option(-invalid)
- }
- } else {
- uplevel #0 $itk_option(-invalid)
- }
- }
-
+ $itk_component(entry) delete 0 end
+ $itk_component(entry) insert 0 $val
} else {
if {$itk_option(-wrap)} {
- if {$val == $min_range} {
+ if {$val <= $min_range} {
+ $itk_component(entry) delete 0 end
+ $itk_component(entry) insert 0 $max_range
+ } elseif {$val > $max_range} {
$itk_component(entry) delete 0 end
$itk_component(entry) insert 0 $max_range
} else {
diff --git a/itcl/iwidgets3.0.0/generic/timeentry.itk b/itcl/iwidgets3.0.0/generic/timeentry.itk
index 20fb4c7d65f..8366e524f7e 100644
--- a/itcl/iwidgets3.0.0/generic/timeentry.itk
+++ b/itcl/iwidgets3.0.0/generic/timeentry.itk
@@ -394,6 +394,5 @@ body iwidgets::Timeentry::_releaseGrab {} {
grab release $itk_component(popup)
$itk_component(iconbutton) configure -relief raised
destroy $itk_component(popup)
- unset itk_component(popup)
bind $itk_component(iconbutton) <Button-1> [code $this _popup]
}
diff --git a/itcl/iwidgets3.0.0/generic/timefield.itk b/itcl/iwidgets3.0.0/generic/timefield.itk
index a30ffc35385..c9b8c54c437 100644
--- a/itcl/iwidgets3.0.0/generic/timefield.itk
+++ b/itcl/iwidgets3.0.0/generic/timefield.itk
@@ -59,6 +59,8 @@ class iwidgets::Timefield {
itk_option define -seconds seconds Seconds on
itk_option define -format format Format civilian
itk_option define -iq iq Iq high
+ itk_option define -gmt gmt GMT no
+ itk_option define -state state State normal
public {
method get {{format "-string"}}
@@ -84,11 +86,10 @@ class iwidgets::Timefield {
variable _numFields 4
variable _forward {}
variable _backward {}
+ variable _timeVar ""
common _militaryFields {hour minute second}
common _civilianFields {hour minute second ampm}
-
- common _timeVar
}
}
@@ -105,18 +106,15 @@ proc iwidgets::timefield {pathName args} {
body iwidgets::Timefield::constructor {args} {
component hull configure -borderwidth 0
- set _timeVar($this) ""
-
#
# Create an entry field for entering the time.
#
itk_component add time {
- entry $itk_interior.time \
- -textvariable [scope _timeVar($this)]
+ entry $itk_interior.time
} {
keep -borderwidth -cursor -exportselection \
-foreground -highlightcolor -highlightthickness \
- -insertbackground -justify -relief
+ -insertbackground -justify -relief -textvariable
rename -font -textfont textFont Font
rename -highlightbackground -background background Background
@@ -136,6 +134,7 @@ body iwidgets::Timefield::constructor {args} {
#
bind $itk_component(time) <FocusIn> [code $this _focusIn]
bind $itk_component(time) <KeyPress> [code $this _keyPress %A %K %s]
+ bind $itk_component(time) <1> "focus $itk_component(time); break"
#
# Disable some mouse button event bindings:
@@ -291,10 +290,47 @@ configbody iwidgets::Timefield::format {
# Update the current contents of the entry field to reflect
# the configured format.
#
- show $_timeVar($this)
+ show $_timeVar
}
# ------------------------------------------------------------------
+# OPTION: -gmt
+#
+# This option is used for GMT time. Must be a boolean value.
+# ------------------------------------------------------------------
+configbody iwidgets::Timefield::gmt {
+ switch $itk_option(-gmt) {
+ 0 - no - false - off { }
+ 1 - yes - true - on { }
+ default {
+ error "bad gmt option \"$itk_option(-gmt)\": should be boolean"
+ }
+ }
+}
+
+# ------------------------------------------------------------------
+# OPTION: -state
+#
+# Disable the
+# ------------------------------------------------------------------
+configbody iwidgets::Timefield::state {
+ switch -- $itk_option(-state) {
+ normal {
+ $itk_component(time) configure -state normal
+ }
+ disabled {
+ focus $itk_component(hull)
+ $itk_component(time) configure -state disabled
+ }
+ default {
+ error "Invalid value for -state: $itk_option(-state). Should be\
+ \"normal\" or \"disabled\"."
+ }
+ }
+}
+
+
+# ------------------------------------------------------------------
# METHODS
# ------------------------------------------------------------------
@@ -308,13 +344,14 @@ configbody iwidgets::Timefield::format {
# formats.
# ------------------------------------------------------------------
body iwidgets::Timefield::get {{format "-string"}} {
+ set _timeVar [$itk_component(time) get]
switch -- $format {
"-string" {
- return $_timeVar($this)
+ return $_timeVar
}
"-clicks" {
- return [::clock scan $_timeVar($this)]
+ return [::clock scan $_timeVar -gmt $itk_option(-gmt)]
}
default {
error "bad format option \"$format\":\
@@ -332,6 +369,7 @@ body iwidgets::Timefield::get {{format "-string"}} {
# information on obtaining times and their formats.
# ------------------------------------------------------------------
body iwidgets::Timefield::show {{time "now"}} {
+ set icursor [$itk_component(time) index insert]
if {$time == {}} {
set time "now"
@@ -344,7 +382,7 @@ body iwidgets::Timefield::show {{time "now"}} {
}
{^[0-9]+$} {
- if { [catch {::clock format $time}] } {
+ if { [catch {::clock format $time -gmt $itk_option(-gmt)}] } {
error "bad time: \"$time\", must be a valid time \
string, clock clicks value or the keyword now"
}
@@ -352,14 +390,21 @@ body iwidgets::Timefield::show {{time "now"}} {
}
default {
- if {[catch {set seconds [::clock scan $time]}]} {
+ if {[catch {set seconds [::clock scan $time -gmt $itk_option(-gmt)]}]} {
error "bad time: \"$time\", must be a valid time \
string, clock clicks value or the keyword now"
}
}
}
- set _timeVar($this) [::clock format $seconds -format $_formatString]
+ set _timeVar [::clock format $seconds -format $_formatString \
+ -gmt $itk_option(-gmt)]
+
+ $itk_component(time) delete 0 end
+ $itk_component(time) insert end $_timeVar
+ $itk_component(time) icursor $icursor
+
+ return $_timeVar
}
# ------------------------------------------------------------------
@@ -370,8 +415,8 @@ body iwidgets::Timefield::show {{time "now"}} {
# 26:59:59 is invalid.
# ------------------------------------------------------------------
body iwidgets::Timefield::isvalid {} {
-
- return [expr ([catch {::clock scan $_timeVar($this)}] == 0)]
+ set _timeVar [$itk_component(time) get]
+ return [expr ([catch {::clock scan $_timeVar -gmt $itk_option(-gmt)}] == 0)]
}
# ------------------------------------------------------------------
@@ -410,9 +455,9 @@ body iwidgets::Timefield::_keyPress {char sym state} {
set icursor [$itk_component(time) index insert]
set lastField [lindex $_fields end]
- set prevtime $_timeVar($this)
+ set prevtime $_timeVar
regexp {^([0-9])([0-9]):([0-9])([0-9]):([0-9])([0-9]).*$} \
- $_timeVar($this) dummy \
+ $_timeVar dummy \
hour1 hour2 minute1 minute2 second1 second2
set hour "$hour1$hour2"
set minute "$minute1$minute2"
@@ -592,6 +637,7 @@ body iwidgets::Timefield::_keyPress {char sym state} {
}
}
+ set _timeVar [$itk_component(time) get]
return -code break
}
@@ -621,10 +667,8 @@ body iwidgets::Timefield::_keyPress {char sym state} {
_toggleAmPm
} else {
set newclicks [::clock scan "$prevtime 1 $_cfield"]
- set newtime [::clock format $newclicks -format $_formatString]
- set _timeVar($this) $newtime
+ show [::clock format $newclicks -format $_formatString]
}
- return -code continue
}
minus - Down {
@@ -636,10 +680,8 @@ body iwidgets::Timefield::_keyPress {char sym state} {
_toggleAmPm
} else {
set newclicks [::clock scan "$prevtime 1 $_cfield ago"]
- set newtime [::clock format $newclicks -format $_formatString]
- set _timeVar($this) $newtime
+ show [::clock format $newclicks -format $_formatString]
}
- return -code continue
}
Tab {
@@ -709,10 +751,11 @@ body iwidgets::Timefield::_keyPress {char sym state} {
# between "AM" and "PM" when format is "civilian".
# ------------------------------------------------------------------
body iwidgets::Timefield::_toggleAmPm {} {
- set firstChar [string index $_timeVar($this) 9]
+ set firstChar [string index $_timeVar 9]
$itk_component(time) delete 9 10
$itk_component(time) insert 9 [expr {($firstChar == "A") ? "P" : "A"}]
$itk_component(time) icursor 9
+ set _timeVar [$itk_component(time) get]
}
# ------------------------------------------------------------------
diff --git a/itcl/iwidgets3.0.0/generic/toolbar.itk b/itcl/iwidgets3.0.0/generic/toolbar.itk
index 22d6cd7ec7b..c9e2be2d463 100644
--- a/itcl/iwidgets3.0.0/generic/toolbar.itk
+++ b/itcl/iwidgets3.0.0/generic/toolbar.itk
@@ -578,6 +578,9 @@ body iwidgets::Toolbar::_resetBalloonTimer {} {
#
# -------------------------------------------------------------
body iwidgets::Toolbar::_startBalloonDelay {window} {
+ if {$_balloonAfterID != 0} {
+ after cancel $_balloonAfterID
+ }
set _balloonAfterID [after $_balloonTimer [code $this showBalloon $window]]
}
diff --git a/itcl/iwidgets3.0.0/generic/watch.itk b/itcl/iwidgets3.0.0/generic/watch.itk
index afd90a3ee91..bfe662ea2b9 100755
--- a/itcl/iwidgets3.0.0/generic/watch.itk
+++ b/itcl/iwidgets3.0.0/generic/watch.itk
@@ -594,7 +594,7 @@ configbody ::iwidgets::Watch::secondcolor {
# Configure the color of the ticks.
#
configbody ::iwidgets::Watch::tickcolor {
- watch itemconfigure tick -fill $itk_option(-tickcolor)
+ watch itemconfigure tick -outline $itk_option(-tickcolor)
}
# ------------------------------------------------------------------
diff --git a/itcl/iwidgets3.0.0/iwidgets.tcl b/itcl/iwidgets3.0.0/iwidgets.tcl
new file mode 100644
index 00000000000..9ab964c4ff7
--- /dev/null
+++ b/itcl/iwidgets3.0.0/iwidgets.tcl
@@ -0,0 +1,35 @@
+#
+# iwidgets.tcl
+# ----------------------------------------------------------------------
+# Invoked automatically by [incr Tk] upon startup to initialize
+# the [incr Widgets] package.
+# ----------------------------------------------------------------------
+# AUTHOR: Mark L. Ulferts EMAIL: mulferts@spd.dsccc.com
+#
+# @(#) $Id$
+# ----------------------------------------------------------------------
+# Copyright (c) 1995 Mark L. Ulferts
+# ======================================================================
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+package require Tcl 8.0
+package require Tk 8.0
+package require Itcl 3.2
+package require Itk 3.2
+
+namespace eval ::iwidgets {
+ namespace export *
+
+ variable library [file dirname [info script]]
+ variable version 3.0.1
+}
+
+lappend auto_path [file join $iwidgets::library scripts]
+package provide Iwidgets $iwidgets::version
+
+# For now we need to import all of the itcl functions into the global
+# namespace. This should be removed once iwidgets are upgraded to use the
+# itcl:: names directly.
+
+namespace import -force itcl::*
diff --git a/itcl/iwidgets3.0.0/iwidgets.tcl.in b/itcl/iwidgets3.0.0/iwidgets.tcl.in
new file mode 100644
index 00000000000..51ccbfc4412
--- /dev/null
+++ b/itcl/iwidgets3.0.0/iwidgets.tcl.in
@@ -0,0 +1,35 @@
+#
+# iwidgets.tcl
+# ----------------------------------------------------------------------
+# Invoked automatically by [incr Tk] upon startup to initialize
+# the [incr Widgets] package.
+# ----------------------------------------------------------------------
+# AUTHOR: Mark L. Ulferts EMAIL: mulferts@spd.dsccc.com
+#
+# @(#) $Id$
+# ----------------------------------------------------------------------
+# Copyright (c) 1995 Mark L. Ulferts
+# ======================================================================
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+package require Tcl 8.0
+package require Tk 8.0
+package require Itcl @ITCL_VERSION@
+package require Itk @ITCL_VERSION@
+
+namespace eval ::iwidgets {
+ namespace export *
+
+ variable library [file dirname [info script]]
+ variable version @VERSION@
+}
+
+lappend auto_path [file join $iwidgets::library scripts]
+package provide Iwidgets $iwidgets::version
+
+# For now we need to import all of the itcl functions into the global
+# namespace. This should be removed once iwidgets are upgraded to use the
+# itcl:: names directly.
+
+namespace import -force itcl::*
diff --git a/itcl/iwidgets3.0.0/pkgIndex.tcl b/itcl/iwidgets3.0.0/pkgIndex.tcl
new file mode 100644
index 00000000000..91a5e662c45
--- /dev/null
+++ b/itcl/iwidgets3.0.0/pkgIndex.tcl
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Iwidgets 3.0.1 [list source [file join $dir iwidgets.tcl]]
diff --git a/itcl/iwidgets3.0.0/pkgIndex.tcl.in b/itcl/iwidgets3.0.0/pkgIndex.tcl.in
new file mode 100644
index 00000000000..bde254ab383
--- /dev/null
+++ b/itcl/iwidgets3.0.0/pkgIndex.tcl.in
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Iwidgets @VERSION@ [list source [file join $dir iwidgets.tcl]]
diff --git a/itcl/iwidgets3.0.0/tests/all b/itcl/iwidgets3.0.0/tests/all
index 44941032e90..8581c5a70b0 100644
--- a/itcl/iwidgets3.0.0/tests/all
+++ b/itcl/iwidgets3.0.0/tests/all
@@ -3,6 +3,11 @@
# in this directory.
#
# @(#) all 1.2 94/08/10 15:52:50
+# ------------------------------------------------------------------
+# THIS SCRIPT IS NOW DEPRECATED! It is kept for older Tcl
+# installations that don't have the "tcltest" package.
+# Instead, use the "all.tcl" script to run the test suite.
+# ------------------------------------------------------------------
foreach i [lsort [glob *.test]] {
if [string match l.*.test $i] {
diff --git a/itcl/iwidgets3.0.0/tests/all.tcl b/itcl/iwidgets3.0.0/tests/all.tcl
new file mode 100755
index 00000000000..3cf9670dfeb
--- /dev/null
+++ b/itcl/iwidgets3.0.0/tests/all.tcl
@@ -0,0 +1,122 @@
+# all.tcl --
+#
+# This file contains a top-level script to run all of the Tcl
+# tests. Execute it by invoking "source all.test" when running tcltest
+# in this directory.
+#
+# Copyright (c) 1998-2000 by Ajuba Solutions
+# All rights reserved.
+#
+# RCS: @(#) $Id$
+
+package require tcltest
+namespace import -force ::tcltest::*
+
+# Look for the -exedir flag and find a suitable tclsh executable.
+
+if {(![info exists argv]) || ([llength $argv] < 1)} {
+ set flagArray {}
+} else {
+ set flagArray $argv
+}
+
+array set flag $flagArray
+if {[info exists flag(-exedir)]} {
+ set shell [lindex \
+ [glob -nocomplain \
+ [file join $flag(-exedir) wish*.bin] \
+ [file join $flag(-exedir) wish*]] 0]
+} else {
+ set shell $::tcltest::tcltest
+}
+
+set ::tcltest::testSingleFile false
+
+# use [pwd] trick to expand relative file paths to absolute paths - MMc
+set cwd [pwd]
+cd [file dirname [info script]]
+set ::tcltest::testsDirectory [pwd]
+cd $cwd
+
+set logfile [file join $::tcltest::temporaryDirectory Log.txt]
+
+puts stdout "Using interp: $shell"
+puts stdout "Running tests in working dir: $::tcltest::testsDirectory"
+if {[llength $::tcltest::skip] > 0} {
+ puts stdout "Skipping tests that match: $::tcltest::skip"
+}
+if {[llength $::tcltest::match] > 0} {
+ puts stdout "Only running tests that match: $::tcltest::match"
+}
+
+if {[llength $::tcltest::skipFiles] > 0} {
+ puts stdout "Skipping test files that match: $::tcltest::skipFiles"
+}
+if {[llength $::tcltest::matchFiles] > 0} {
+ puts stdout "Only sourcing test files that match: $::tcltest::matchFiles"
+}
+
+set timeCmd {clock format [clock seconds]}
+puts stdout "Tests began at [eval $timeCmd]"
+
+# source each of the specified tests
+foreach file [lsort [::tcltest::getMatchingFiles]] {
+ set tail [file tail $file]
+ puts stdout $tail
+
+ # Change to the tests directory so the value of the following
+ # variable is set correctly when we spawn the child test processes
+
+ cd $::tcltest::testsDirectory
+ set cmd [concat [list | $shell $file] [split $argv] \
+ [list -outfile $logfile]]
+ if {[catch {
+ set pipeFd [open $cmd "r"]
+ while {[gets $pipeFd line] >= 0} {
+ puts $::tcltest::outputChannel $line
+ }
+ close $pipeFd
+ } msg]} {
+ # Print results to ::tcltest::outputChannel.
+ puts $::tcltest::outputChannel $msg
+ }
+
+ # Now concatenate the temporary log file to
+ # ::tcltest::outputChannel
+ if {[catch {
+ set fd [open $logfile "r"]
+ while {![eof $fd]} {
+ gets $fd line
+ if {![eof $fd]} {
+ if {[regexp {^([^:]+):\tTotal\t([0-9]+)\tPassed\t([0-9]+)\tSkipped\t([0-9]+)\tFailed\t([0-9]+)} $line null testFile Total Passed Skipped Failed]} {
+ foreach index [list "Total" "Passed" "Skipped" \
+ "Failed"] {
+ incr ::tcltest::numTests($index) [set $index]
+ }
+ incr ::tcltest::numTestFiles
+ if {$Failed > 0} {
+ lappend ::tcltest::failFiles $testFile
+ }
+ }
+ puts $::tcltest::outputChannel $line
+ }
+ }
+ close $fd
+ } msg]} {
+ puts $::tcltest::outputChannel $msg
+ }
+}
+
+set numFailures [llength $::tcltest::failFiles]
+
+# cleanup
+puts stdout "\nTests ended at [eval $timeCmd]"
+::tcltest::cleanupTests 1
+
+if {$numFailures > 0} {
+ return -code error -errorcode $numFailures \
+ -errorinfo "Found $numFailures test file failures"
+} else {
+ return
+}
+exit
diff --git a/itcl/iwidgets3.0.0/tests/buttonbox.test b/itcl/iwidgets3.0.0/tests/buttonbox.test
index ece1f3b41e5..dde97836ec7 100644
--- a/itcl/iwidgets3.0.0/tests/buttonbox.test
+++ b/itcl/iwidgets3.0.0/tests/buttonbox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -181,3 +184,6 @@ test Buttonbox-1.$c {Buttonbox destruction} {
destroy .bb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/calendar.test b/itcl/iwidgets3.0.0/tests/calendar.test
index 1da4a0b2971..0608d352ca3 100644
--- a/itcl/iwidgets3.0.0/tests/calendar.test
+++ b/itcl/iwidgets3.0.0/tests/calendar.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -151,3 +154,6 @@ test Calendar-1.$c {Calendar destruction} {
destroy .cal
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/canvasprintbox.test b/itcl/iwidgets3.0.0/tests/canvasprintbox.test
index f19cf952631..984bbd71551 100644
--- a/itcl/iwidgets3.0.0/tests/canvasprintbox.test
+++ b/itcl/iwidgets3.0.0/tests/canvasprintbox.test
@@ -12,6 +12,9 @@
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -144,3 +147,6 @@ test Canvasprintbox-1.$c {Canvasprintbox destruction} {
destroy .cpb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/canvasprintdialog.test b/itcl/iwidgets3.0.0/tests/canvasprintdialog.test
index b603f9cc378..0571316f695 100644
--- a/itcl/iwidgets3.0.0/tests/canvasprintdialog.test
+++ b/itcl/iwidgets3.0.0/tests/canvasprintdialog.test
@@ -13,6 +13,9 @@
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -163,3 +166,6 @@ test Canvasprintdialog-1.$c {Canvasprintdialog destruction} {
destroy .cpd
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/checkbox.test b/itcl/iwidgets3.0.0/tests/checkbox.test
index fcd333385e1..51615eb8ac7 100755
--- a/itcl/iwidgets3.0.0/tests/checkbox.test
+++ b/itcl/iwidgets3.0.0/tests/checkbox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -42,7 +45,7 @@ incr c
#
test Checkbox-2.$o {configuration option} {
llength [.cb configure]
-} {18}
+} {16}
incr o
@@ -143,3 +146,6 @@ test Checkbox-1.$c {Checkbox destruction} {
destroy .cb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/combobox.test b/itcl/iwidgets3.0.0/tests/combobox.test
index 273da82f5f0..6abde801721 100644
--- a/itcl/iwidgets3.0.0/tests/combobox.test
+++ b/itcl/iwidgets3.0.0/tests/combobox.test
@@ -11,6 +11,9 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -41,7 +44,7 @@ incr c
#
test Combobox-2.$o {configuration option} {
llength [.cb configure]
-} {50}
+} {51}
incr o
@@ -141,7 +144,7 @@ foreach test {
{-margin bogus {bad screen distance "bogus"}}
{-popupcursor bogus {bad cursor spec "bogus"}}
{-selectborderwidth bogus {bad screen distance "bogus"}}
- {-state bogus {bad state value "bogus": must be normal or disabled}}
+ {-state bogus {bad state "bogus": must be disabled or normal}}
{-unique bogus {bad unique value "bogus": should be boolean}}
{-vscrollmode bogus {bad vscrollmode option "bogus": should be static, dynamic, or none}}
{-width bogus {expected integer but got "bogus"}} } {
@@ -295,3 +298,6 @@ test Combobox-4.5 {Combobox destruction} {
destroy .cb4
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/dateentry.test b/itcl/iwidgets3.0.0/tests/dateentry.test
index d071a8eaf76..801c9ad6f9a 100644
--- a/itcl/iwidgets3.0.0/tests/dateentry.test
+++ b/itcl/iwidgets3.0.0/tests/dateentry.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -181,3 +184,6 @@ test Dateentry-1.$c {Dateentry destruction} {
destroy .de
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/datefield.test b/itcl/iwidgets3.0.0/tests/datefield.test
index 890ec11a494..e1e08eb3f4c 100644
--- a/itcl/iwidgets3.0.0/tests/datefield.test
+++ b/itcl/iwidgets3.0.0/tests/datefield.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -166,3 +169,6 @@ test Datefield-1.$c {Datefield destruction} {
destroy .df
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/defs b/itcl/iwidgets3.0.0/tests/defs
index 09dd45b6f23..d2ac67b9024 100644
--- a/itcl/iwidgets3.0.0/tests/defs
+++ b/itcl/iwidgets3.0.0/tests/defs
@@ -9,6 +9,11 @@
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# @(#) defs 1.7 94/12/17 15:53:52
+# ------------------------------------------------------------------
+# THIS SCRIPT IS NOW DEPRECATED! It is kept for older Tcl
+# installations that don't have the "tcltest" package.
+# Instead, use "package require tcltest" in the test suite.
+# ------------------------------------------------------------------
package require Iwidgets
diff --git a/itcl/iwidgets3.0.0/tests/dialog.test b/itcl/iwidgets3.0.0/tests/dialog.test
index 0d8524c73c8..a3f7bfd3bfc 100644
--- a/itcl/iwidgets3.0.0/tests/dialog.test
+++ b/itcl/iwidgets3.0.0/tests/dialog.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -129,3 +132,6 @@ test Dialog-1.$c {Dialog destruction} {
destroy .dlg
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/dialogshell.test b/itcl/iwidgets3.0.0/tests/dialogshell.test
index b1adbe25f43..a3e4dd5562e 100644
--- a/itcl/iwidgets3.0.0/tests/dialogshell.test
+++ b/itcl/iwidgets3.0.0/tests/dialogshell.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -222,3 +225,6 @@ test Dialogshell-1.$c {Dialogshell destruction} {
destroy .ds
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/disjointlistbox.test b/itcl/iwidgets3.0.0/tests/disjointlistbox.test
index 2e0d8a51dc0..adbe1855a58 100755
--- a/itcl/iwidgets3.0.0/tests/disjointlistbox.test
+++ b/itcl/iwidgets3.0.0/tests/disjointlistbox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -96,3 +99,6 @@ test Disjointlistbox-1.$c {Disjointlistbox construction} {
destroy .lf
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/entryfield.test b/itcl/iwidgets3.0.0/tests/entryfield.test
index 89c995f078b..4d051f6243f 100644
--- a/itcl/iwidgets3.0.0/tests/entryfield.test
+++ b/itcl/iwidgets3.0.0/tests/entryfield.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -43,7 +46,7 @@ incr c
#
test Entryfield-2.$o {configuration option} {
llength [.ef configure]
-} {38}
+} {39}
incr o
@@ -85,6 +88,7 @@ foreach test {
{-labelpos s s}
{-labelpos sw sw}
{-labeltext Label Label}
+ {-pasting 1 1}
{-relief raised raised}
{-relief sunken sunken}
{-state disabled disabled}
@@ -170,3 +174,6 @@ test Entryfield-1.$c {Entryfield destruction} {
destroy .ef
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/extfileselectionbox.test b/itcl/iwidgets3.0.0/tests/extfileselectionbox.test
index 0d65d36c137..72720a0cb5f 100644
--- a/itcl/iwidgets3.0.0/tests/extfileselectionbox.test
+++ b/itcl/iwidgets3.0.0/tests/extfileselectionbox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -190,3 +193,6 @@ test Extfileselectionbox-1.$o {Extfileselectionbox -childsitepos} {
update
destroy .fsb
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/extfileselectiondialog.test b/itcl/iwidgets3.0.0/tests/extfileselectiondialog.test
index f14db49e6b8..b30486b098f 100644
--- a/itcl/iwidgets3.0.0/tests/extfileselectiondialog.test
+++ b/itcl/iwidgets3.0.0/tests/extfileselectiondialog.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -198,3 +201,6 @@ test Extfileselectiondialog-1.$o {Extfileselectiondialog -childsitepos} {
update
destroy .fsd
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/feedback.test b/itcl/iwidgets3.0.0/tests/feedback.test
index a39011a9421..4a799bb053f 100644
--- a/itcl/iwidgets3.0.0/tests/feedback.test
+++ b/itcl/iwidgets3.0.0/tests/feedback.test
@@ -13,6 +13,9 @@
#
# @(#) $Id: feedback.test
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -130,3 +133,6 @@ test Feedback-1.$c {Feedback destruction} {
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/fileselectionbox.test b/itcl/iwidgets3.0.0/tests/fileselectionbox.test
index 59139960c43..2633f8823d4 100644
--- a/itcl/iwidgets3.0.0/tests/fileselectionbox.test
+++ b/itcl/iwidgets3.0.0/tests/fileselectionbox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -193,3 +196,6 @@ test Fileselectionbox-1.$o {Fileselectionbox -childsitepos} {
update
destroy .fsb
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/fileselectiondialog.test b/itcl/iwidgets3.0.0/tests/fileselectiondialog.test
index 8b5766dfb67..efc1c6b5cbe 100644
--- a/itcl/iwidgets3.0.0/tests/fileselectiondialog.test
+++ b/itcl/iwidgets3.0.0/tests/fileselectiondialog.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -201,3 +204,6 @@ test Fileselectiondialog-1.$o {Fileselectiondialog -childsitepos} {
update
destroy .fsd
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/finddialog.test b/itcl/iwidgets3.0.0/tests/finddialog.test
index 0e2e5164e2e..e199909ea3e 100644
--- a/itcl/iwidgets3.0.0/tests/finddialog.test
+++ b/itcl/iwidgets3.0.0/tests/finddialog.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -150,3 +153,6 @@ test Finddialog-1.$c {Finddialog destruction} {
destroy .fd
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/hierarchy.test b/itcl/iwidgets3.0.0/tests/hierarchy.test
index 74fbfc19772..4fa1a3adbea 100644
--- a/itcl/iwidgets3.0.0/tests/hierarchy.test
+++ b/itcl/iwidgets3.0.0/tests/hierarchy.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -78,7 +81,7 @@ incr c
#
test Hierarchy-2.$o {configuration option} {
llength [.h configure]
-} {51}
+} {57}
incr o
@@ -279,3 +282,6 @@ test Hierarchy-1.$c {Hierarchy destruction} {
} {}
cd $cdir
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/hyperhelp.test b/itcl/iwidgets3.0.0/tests/hyperhelp.test
index a60d2b4deca..63b1d1b4bb0 100644
--- a/itcl/iwidgets3.0.0/tests/hyperhelp.test
+++ b/itcl/iwidgets3.0.0/tests/hyperhelp.test
@@ -13,6 +13,9 @@
#
# @(#) $Id: hyperhelp.test
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -160,3 +163,6 @@ test Hyperhelp-1.$c {Hyperhelp destruction} {
destroy .h
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/labeledframe.test b/itcl/iwidgets3.0.0/tests/labeledframe.test
index d64a6ee6e16..d69b5ce5415 100644
--- a/itcl/iwidgets3.0.0/tests/labeledframe.test
+++ b/itcl/iwidgets3.0.0/tests/labeledframe.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -176,3 +179,6 @@ test Labeledframe-1.$c {Labeledframe construction} {
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/labeledwidget.test b/itcl/iwidgets3.0.0/tests/labeledwidget.test
index fa25e58c636..8410e41be3a 100644
--- a/itcl/iwidgets3.0.0/tests/labeledwidget.test
+++ b/itcl/iwidgets3.0.0/tests/labeledwidget.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -145,3 +148,6 @@ test Labeledwidget-1.$c {Labeledwidget construction} {
destroy .lw
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/menubar.test b/itcl/iwidgets3.0.0/tests/menubar.test
index aa00b191944..282b89e4607 100644
--- a/itcl/iwidgets3.0.0/tests/menubar.test
+++ b/itcl/iwidgets3.0.0/tests/menubar.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -221,9 +224,9 @@ foreach test {
{}}
{{.mb configure -menubuttons {
menubutton file -text File -menu {
- options -tearoff $tearoff
- command ok -label $okLabel
- command quit -label $quitLabel
+ options -tearoff on
+ command ok -label "OK"
+ command quit -label "Quit"
}
}}
{}}
@@ -305,9 +308,15 @@ foreach test {
} {
set method [lindex [lindex $test 0] 1]
set method_invoke [lindex $test 0]
- test_pattern Menubar-4.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 0 [lindex $test 1]]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{[lindex $test 0]\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 1]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Menubar-4.$m "\[$method_invoke\]" $testContents \
+ [list 0 1]
update
incr m
}
@@ -317,74 +326,81 @@ foreach test {
# Specifically, deals with method invocation on empty menubar.
#
foreach test {
- {{.mb delete .0 .last}
+ {1 {.mb delete .0 .last}
{bad path:}}
- {{.mb index .0}
+ {0 {.mb index .0}
{-1}}
- {{.mb index .end}
+ {0 {.mb index .end}
{-1}}
- {{.mb index .last}
+ {0 {.mb index .last}
{-1}}
- {{.mb index .help}
+ {0 {.mb index .help}
{-1}}
- {{.mb delete .0}
+ {1 {.mb delete .0}
{bad path:}}
- {{.mb delete .end}
+ {1 {.mb delete .end}
{bad path:}}
- {{.mb delete .last}
+ {1 {.mb delete .last}
{bad path:}}
- {{.mb delete .help}
+ {1 {.mb delete .help}
{bad path:}}
- {{.mb insert .0 menubutton file -text File}
+ {1 {.mb insert .0 menubutton file -text File}
{bad path:}}
- {{.mb insert .end menubutton file -text File}
+ {1 {.mb insert .end menubutton file -text File}
{bad path:}}
- {{.mb insert .last menubutton file -text File}
+ {1 {.mb insert .last menubutton file -text File}
{bad path:}}
- {{.mb insert .help menubutton file -text File}
+ {1 {.mb insert .help menubutton file -text File}
{bad path:}}
- {{.mb invoke .0.0}
+ {1 {.mb invoke .0.0}
{bad path:}}
- {{.mb invoke .end.0}
+ {1 {.mb invoke .end.0}
{bad path:}}
- {{.mb invoke .last.0}
+ {1 {.mb invoke .last.0}
{bad path:}}
- {{.mb invoke .help.0}
+ {1 {.mb invoke .help.0}
{bad path:}}
- {{.mb menucget .0 -text}
+ {1 {.mb menucget .0 -text}
{bad path:}}
- {{.mb menucget .end -text}
+ {1 {.mb menucget .end -text}
{bad path:}}
- {{.mb menucget .last -text}
+ {1 {.mb menucget .last -text}
{bad path:}}
- {{.mb menucget .help -text}
+ {1 {.mb menucget .help -text}
{bad path:}}
- {{.mb menuconfigure .0 -text}
+ {1 {.mb menuconfigure .0 -text}
{bad path:}}
- {{.mb menuconfigure .end -text}
+ {1 {.mb menuconfigure .end -text}
{bad path:}}
- {{.mb menuconfigure .last -text}
+ {1 {.mb menuconfigure .last -text}
{bad path:}}
- {{.mb menuconfigure .help -text}
+ {1 {.mb menuconfigure .help -text}
{bad path:}}
- {{.mb path *quit}
+ {0 {.mb path *quit}
{}}
- {{.mb type .0.0}
+ {1 {.mb type .0.0}
{bad path:}}
- {{.mb type .0.end}
+ {1 {.mb type .0.end}
{bad path:}}
- {{.mb type .0.last}
+ {1 {.mb type .0.last}
{bad path:}}
- {{.mb type .0.new}
+ {1 {.mb type .0.new}
{bad path:}}
- {{.mb yposition .0.new}
+ {1 {.mb yposition .0.new}
{bad path:}}
} {
- set method [lindex [lindex $test 0] 1]
- set method_invoke [lindex $test 0]
- test_pattern Menubar-5.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 1 [lindex $test 1]]
+ set method_status [lindex $test 0]
+ set method_invoke [lindex $test 1]
+ set method [lindex $method_invoke 1]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{$method_invoke\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Menubar-5.$m "\[$method_invoke\]" $testContents \
+ [list $method_status 1]
incr m
}
@@ -392,7 +408,7 @@ foreach test {
# Method tests which fail and produce errors or results
# On a non-empty menubar...
foreach test {
- {{.mb configure -menubuttons {
+ {0 {.mb configure -menubuttons {
menubutton file -text File -menu {
options -tearoff no
command ok -label "Ok"
@@ -400,70 +416,77 @@ foreach test {
}
}}
{}}
- {{.mb delete .file.hello}
+ {1 {.mb delete .file.hello}
{bad path}}
- {{.mb index .0.hello}
+ {0 {.mb index .0.hello}
{-1}}
- {{.mb index .0.quit}
+ {0 {.mb index .0.quit}
{1}}
- {{.mb index 0.end}
+ {0 {.mb index 0.end}
{1}}
- {{.mb index .file.last}
+ {0 {.mb index .file.last}
{1}}
- {{.mb index .file.ok}
+ {0 {.mb index .file.ok}
{0}}
- {{.mb delete .view .file}
+ {1 {.mb delete .view .file}
{bad path:}}
- {{.mb delete .file .help}
+ {1 {.mb delete .file .help}
{bad path:}}
- {{.mb add command .file.menu}
+ {1 {.mb add command .file.menu}
{bad name}}
- {{.mb add command .file.last}
+ {1 {.mb add command .file.last}
{bad name}}
- {{.mb add command .file.end}
+ {1 {.mb add command .file.end}
{bad name}}
- {{.mb add command .file.2}
+ {1 {.mb add command .file.2}
{bad name}}
- {{.mb insert .0 menu view -text View}
+ {1 {.mb insert .0 menu view -text View}
{bad type}}
- {{.mb insert .file command view -text View}
+ {1 {.mb insert .file command view -text View}
{bad entry path}}
- {{.mb insert .file menubutton view -text View}
+ {0 {.mb insert .file menubutton view -text View}
{[.]mb[.]menubar[.]view}}
- {{.mb invoke .0.quit}
+ {1 {.mb invoke .0.quit}
{bad path}}
- {{.mb menucget .0 -text}
+ {0 {.mb menucget .0 -text}
{View}}
- {{.mb menucget .end -text}
+ {0 {.mb menucget .end -text}
{File}}
- {{.mb menucget .last -text}
+ {0 {.mb menucget .last -text}
{File}}
- {{.mb menucget .help -text}
+ {1 {.mb menucget .help -text}
{bad path}}
- {{.mb menuconfigure .0 -text}
+ {0 {.mb menuconfigure .0 -text}
{-text text Text {} View}}
- {{.mb menuconfigure .end.last -label}
+ {0 {.mb menuconfigure .end.last -label}
{-label {} {} {} Quit}}
- {{.mb menuconfigure .last -text}
+ {0 {.mb menuconfigure .last -text}
{-text text Text {} File}}
- {{.mb menuconfigure .help -text}
+ {1 {.mb menuconfigure .help -text}
{bad path}}
- {{.mb path *quit}
+ {0 {.mb path *quit}
{[.]file[.]quit}}
- {{.mb type .end.0}
+ {0 {.mb type .end.0}
{command}}
- {{.mb type .end.end}
+ {0 {.mb type .end.end}
{command}}
- {{.mb type .end.last}
+ {0 {.mb type .end.last}
{command}}
- {{.mb type .0.new}
+ {1 {.mb type .0.new}
{bad path}}
} {
- set method [lindex [lindex $test 0] 1]
- set method_invoke [lindex $test 0]
- test_pattern Menubar-5.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 1 [lindex $test 1]]
+ set method_status [lindex $test 0]
+ set method_invoke [lindex $test 1]
+ set method [lindex $method_invoke 1]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{$method_invoke\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Menubar-5.$m "\[$method_invoke\]" $testContents \
+ [list $method_status 1]
incr m
}
@@ -522,3 +545,6 @@ test Menubar-1.$c {Menubar destruction} {
destroy .mb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/messagebox.test b/itcl/iwidgets3.0.0/tests/messagebox.test
index b128d6a9f54..f601fef1f6b 100644
--- a/itcl/iwidgets3.0.0/tests/messagebox.test
+++ b/itcl/iwidgets3.0.0/tests/messagebox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -177,3 +180,6 @@ test Messagebox-1.$c {Messagebox destruction} {
destroy .mb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/messagedialog.test b/itcl/iwidgets3.0.0/tests/messagedialog.test
index 3f99bea684e..5a76c0b72c0 100644
--- a/itcl/iwidgets3.0.0/tests/messagedialog.test
+++ b/itcl/iwidgets3.0.0/tests/messagedialog.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -43,7 +46,7 @@ incr c
#
test Messagedialog-2.$o {configuration option} {
llength [.md configure]
-} {24}
+} {26}
incr o
@@ -145,3 +148,6 @@ test Messagedialog-1.$c {Messagedialog construction} {
destroy .md
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/notebook.test b/itcl/iwidgets3.0.0/tests/notebook.test
index f19d4a488c1..b5bbd365373 100644
--- a/itcl/iwidgets3.0.0/tests/notebook.test
+++ b/itcl/iwidgets3.0.0/tests/notebook.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -108,110 +111,117 @@ foreach test {
# Method tests which are successful.
#
foreach test {
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add -label Never}
+ {0 {.nb add -label Never}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add -label "Hello World" -disabledforeground gray}
+ {0 {.nb add -label "Hello World" -disabledforeground gray}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb childsite Never}
+ {0 {.nb childsite Never}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb childsite 0}
+ {0 {.nb childsite 0}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb childsite end}
+ {0 {.nb childsite end}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb index end}
+ {0 {.nb index end}
{[0-9]+}}
- {{.nb index Never}
+ {0 {.nb index Never}
{[0-9]+}}
- {{.nb index 0}
+ {0 {.nb index 0}
{0}}
- {{.nb select 0}
+ {0 {.nb select 0}
{0}}
- {{.nb select select}
+ {0 {.nb select select}
{0}}
- {{.nb select end}
+ {0 {.nb select end}
{[0-9]+}}
- {{.nb select "Hello World"}
+ {0 {.nb select "Hello World"}
{[0-9]+}}
- {{.nb insert 0}
+ {0 {.nb insert 0}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb insert select -label "An Insert"}
+ {0 {.nb insert select -label "An Insert"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb insert end -label "Next To Last"}
+ {0 {.nb insert end -label "Next To Last"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb select 0}
+ {0 {.nb select 0}
{0}}
- {{.nb next}
+ {0 {.nb next}
{1}}
- {{.nb next}
+ {0 {.nb next}
{2}}
- {{.nb prev}
+ {0 {.nb prev}
{1}}
- {{.nb prev}
+ {0 {.nb prev}
{0}}
- {{.nb delete Never}
+ {0 {.nb delete Never}
{}}
- {{.nb delete 1 2}
+ {0 {.nb delete 1 2}
{}}
- {{.nb delete 0 "Hello World"}
+ {0 {.nb delete 0 "Hello World"}
{}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb delete 0 end}
+ {0 {.nb delete 0 end}
{}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add}
+ {0 {.nb add}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb select 2}
+ {0 {.nb select 2}
{[-]*[0-9]+}}
- {{.nb delete select end}
+ {0 {.nb delete select end}
{}}
- {{.nb delete 0 end}
+ {0 {.nb delete 0 end}
{}}
- {{.nb add -label "First Page"}
+ {0 {.nb add -label "First Page"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add -label "Second Page"}
+ {0 {.nb add -label "Second Page"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add -label "Third Page"}
+ {0 {.nb add -label "Third Page"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add -label "Fourth Page"}
+ {0 {.nb add -label "Fourth Page"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add -label "Fifth Page"}
+ {0 {.nb add -label "Fifth Page"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb add -label "Sixth Page"}
+ {0 {.nb add -label "Sixth Page"}
{[.]nb[.]cs[.]page[0-9]+[.]cs}}
- {{.nb select "First Page"}
+ {0 {.nb select "First Page"}
{[-]*[0-9]+}}
- {{.nb delete select "Second Page"}
+ {0 {.nb delete select "Second Page"}
{}}
- {{.nb delete "Third Page" 1}
+ {0 {.nb delete "Third Page" 1}
{}}
- {{.nb delete "Fifth Page" "Sixth Page"}
+ {0 {.nb delete "Fifth Page" "Sixth Page"}
{}}
} {
- set method [lindex [lindex $test 0] 1]
- set method_invoke [lindex $test 0]
- test_pattern Notebook-3.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 0 [lindex $test 1]]
+ set method_status [lindex $test 0]
+ set method_invoke [lindex $test 1]
+ set method [lindex $method_invoke 1]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{$method_invoke\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Notebook-3.$m "\[$method_invoke\]" $testContents \
+ [list $method_status 1]
update
incr m
}
@@ -219,48 +229,56 @@ foreach test {
#
# Method tests which fail and produce errors
#
+set m 1
foreach test {
- {{.nb delete 0 end} {}}
- {{.nb childsite 0} {can't get childsite, no pages}}
- {{.nb add} {}}
- {{.nb childsite 1} {bad Notebook page index in childsite method}}
- {{.nb childsite -1} {bad Notebook page index in childsite method}}
- {{.nb delete 0} {}}
- {{.nb delete 0} {can't delete page, no pages}}
- {{.nb add} {}}
- {{.nb delete 1} {bad Notebook page index in delete method:}}
- {{.nb delete select} {bad Notebook page index in delete method:}}
- {{.nb delete 0} {}}
- {{.nb add} {}}
- {{.nb delete 0 1} {bad Notebook page index2 in delete method:}}
- {{.nb delete 1 4} {bad Notebook page index1 in delete method:}}
- {{.nb add} {}}
- {{.nb delete 1 0} {bad Notebook page index1 in delete method: index1 is greater than index2}}
- {{.nb delete 0 1} {}}
- {{.nb add} {}}
- {{.nb delete 0 1 4 5 6} {wrong # args}}
- {{.nb delete} {wrong # args}}
- {{.nb delete 0} {}}
- {{.nb delete 0} {can't delete page}}
- {{.nb delete select} {can't delete page}}
- {{.nb insert 0} {can't insert page}}
- {{.nb add} {}}
- {{.nb add} {}}
- {{.nb insert 2} {bad Notebook page index in insert method:}}
- {{.nb insert -1} {bad Notebook page index}}
- {{.nb delete 0 end} {}}
- {{.nb next} {can't move to next page, no pages in the notebook}}
- {{.nb prev} {can't move to previous page, no pages in the notebook}}
- {{.nb select 0} {can't select page}}
- {{.nb add} {}}
- {{.nb select 1} {bad Notebook page index in select method:}}
- {{.nb delete 0} {}}
+ {1 {.nb delete 0 end} {can't delete page}}
+ {1 {.nb childsite 0} {can't get childsite, no pages}}
+ {0 {.nb add} {}}
+ {1 {.nb childsite 1} {bad Notebook page index in childsite method}}
+ {1 {.nb childsite -1} {bad Notebook page index in childsite method}}
+ {0 {.nb delete 0} {}}
+ {1 {.nb delete 0} {can't delete page, no pages}}
+ {0 {.nb add} {}}
+ {1 {.nb delete 1} {bad Notebook page index in delete method:}}
+ {1 {.nb delete select} {bad Notebook page index in delete method:}}
+ {0 {.nb delete 0} {}}
+ {0 {.nb add} {}}
+ {1 {.nb delete 0 1} {bad Notebook page index2 in delete method:}}
+ {1 {.nb delete 1 4} {bad Notebook page index1 in delete method:}}
+ {0 {.nb add} {}}
+ {1 {.nb delete 1 0} {bad Notebook page index1 in delete method: index1 is greater than index2}}
+ {0 {.nb delete 0 1} {}}
+ {0 {.nb add} {}}
+ {1 {.nb delete 0 1 4 5 6} {wrong # args}}
+ {1 {.nb delete} {wrong # args}}
+ {0 {.nb delete 0} {}}
+ {1 {.nb delete 0} {can't delete page}}
+ {1 {.nb delete select} {can't delete page}}
+ {1 {.nb insert 0} {can't insert page}}
+ {0 {.nb add} {}}
+ {0 {.nb add} {}}
+ {1 {.nb insert 2} {bad Notebook page index in insert method:}}
+ {1 {.nb insert -1} {bad Notebook page index}}
+ {0 {.nb delete 0 end} {}}
+ {1 {.nb next} {can't move to next page, no pages in the notebook}}
+ {1 {.nb prev} {can't move to previous page, no pages in the notebook}}
+ {1 {.nb select 0} {can't select page}}
+ {0 {.nb add} {}}
+ {1 {.nb select 1} {bad Notebook page index in select method:}}
+ {0 {.nb delete 0} {}}
} {
- set method [lindex [lindex $test 0] 1]
- set method_invoke [lindex $test 0]
- test_pattern Notebook-3.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 1 [lindex $test 1]]
+ set method_status [lindex $test 0]
+ set method_invoke [lindex $test 1]
+ set method [lindex $method_invoke 1]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{$method_invoke\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Notebook-4.$m "\[$method_invoke\]" $testContents \
+ [list $method_status 1]
incr m
}
@@ -292,3 +310,6 @@ test Notebook-1.$c {Notebook destruction} {
destroy .nb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/optionmenu.test b/itcl/iwidgets3.0.0/tests/optionmenu.test
index 72d00d55789..fc19d7376eb 100644
--- a/itcl/iwidgets3.0.0/tests/optionmenu.test
+++ b/itcl/iwidgets3.0.0/tests/optionmenu.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -174,3 +177,6 @@ test Optionmenu-1.$c {Optionmenu destruction} {
destroy .om
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/panedwindow.test b/itcl/iwidgets3.0.0/tests/panedwindow.test
index 3cb78bb0248..75eb83756b7 100644
--- a/itcl/iwidgets3.0.0/tests/panedwindow.test
+++ b/itcl/iwidgets3.0.0/tests/panedwindow.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -155,3 +158,6 @@ test Panedwindow-1.$c {Panedwindow destruction} {
destroy .pw
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/promptdialog.test b/itcl/iwidgets3.0.0/tests/promptdialog.test
index e519dbabcef..619083af55b 100644
--- a/itcl/iwidgets3.0.0/tests/promptdialog.test
+++ b/itcl/iwidgets3.0.0/tests/promptdialog.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -157,3 +160,6 @@ test Promptdialog-1.$c {Promptdialog destruction} {
destroy .pd
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/pushbutton.test b/itcl/iwidgets3.0.0/tests/pushbutton.test
index 4f341233ed1..cbe40b7a915 100644
--- a/itcl/iwidgets3.0.0/tests/pushbutton.test
+++ b/itcl/iwidgets3.0.0/tests/pushbutton.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -134,3 +137,6 @@ test Pushbutton-1.$c {Pushbutton destruction} {
destroy .pb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/radiobox.test b/itcl/iwidgets3.0.0/tests/radiobox.test
index 4f385c8bb2f..4a835d4ed81 100644
--- a/itcl/iwidgets3.0.0/tests/radiobox.test
+++ b/itcl/iwidgets3.0.0/tests/radiobox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -42,7 +45,7 @@ incr c
#
test Radiobox-2.$o {configuration option} {
llength [.rb configure]
-} {18}
+} {19}
incr o
@@ -135,3 +138,6 @@ test Radiobox-1.$c {Radiobox destruction} {
destroy .rb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/regexpfield.test b/itcl/iwidgets3.0.0/tests/regexpfield.test
index 9a17a262535..91e3994e87a 100755
--- a/itcl/iwidgets3.0.0/tests/regexpfield.test
+++ b/itcl/iwidgets3.0.0/tests/regexpfield.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -170,3 +173,6 @@ test Regexpfield-1.$c {Regexpfield destruction} {
destroy .ef
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/scrolledcanvas.test b/itcl/iwidgets3.0.0/tests/scrolledcanvas.test
index 24d999f2061..04eafe3c0c8 100644
--- a/itcl/iwidgets3.0.0/tests/scrolledcanvas.test
+++ b/itcl/iwidgets3.0.0/tests/scrolledcanvas.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -167,3 +170,6 @@ test Scrolledcanvas-1.$c {Scrolledcanvas destruction} {
destroy .sc
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/scrolledframe.test b/itcl/iwidgets3.0.0/tests/scrolledframe.test
index 8b0623594b6..73b60b9e36d 100644
--- a/itcl/iwidgets3.0.0/tests/scrolledframe.test
+++ b/itcl/iwidgets3.0.0/tests/scrolledframe.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -196,3 +199,6 @@ test Scrolledframe-1.$c {Scrolledframe destruction} {
destroy .sf
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/scrolledhtml.test b/itcl/iwidgets3.0.0/tests/scrolledhtml.test
index c4862cde725..2ee30e96820 100644
--- a/itcl/iwidgets3.0.0/tests/scrolledhtml.test
+++ b/itcl/iwidgets3.0.0/tests/scrolledhtml.test
@@ -13,6 +13,9 @@
#
# @(#) $Id: scrolledhtml.test
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -42,7 +45,7 @@ incr c
#
test Scrolledhtml-2.$o {configuration option} {
llength [.sh configure]
-} {57}
+} {58}
incr o
@@ -195,3 +198,6 @@ test Scrolledhtml-1.$c {Scrolledhtml destruction} {
destroy .sh
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/scrolledlistbox.test b/itcl/iwidgets3.0.0/tests/scrolledlistbox.test
index 0504b1deccd..67d813d622a 100644
--- a/itcl/iwidgets3.0.0/tests/scrolledlistbox.test
+++ b/itcl/iwidgets3.0.0/tests/scrolledlistbox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -43,7 +46,7 @@ incr c
#
test Scrolledlistbox-2.$o {configuration option} {
llength [.slb configure]
-} {38}
+} {39}
incr o
@@ -198,3 +201,6 @@ test Scrolledlistbox-1.$c {Scrolledlistbox destruction} {
destroy .slb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/scrolledtext.test b/itcl/iwidgets3.0.0/tests/scrolledtext.test
index 761e6ccec48..33671553668 100644
--- a/itcl/iwidgets3.0.0/tests/scrolledtext.test
+++ b/itcl/iwidgets3.0.0/tests/scrolledtext.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -163,3 +166,6 @@ test Scrolledtext-1.$c {Scrolledtext destruction} {
destroy .st
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/selectionbox.test b/itcl/iwidgets3.0.0/tests/selectionbox.test
index 6c400476157..b305498ae71 100644
--- a/itcl/iwidgets3.0.0/tests/selectionbox.test
+++ b/itcl/iwidgets3.0.0/tests/selectionbox.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -172,3 +175,6 @@ test Selectionbox-1.$c {Selectionbox destruction} {
destroy .sb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/selectiondialog.test b/itcl/iwidgets3.0.0/tests/selectiondialog.test
index 6474fe54754..288b7cd426c 100644
--- a/itcl/iwidgets3.0.0/tests/selectiondialog.test
+++ b/itcl/iwidgets3.0.0/tests/selectiondialog.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -184,3 +187,6 @@ test Selectiondialog-1.$c {Selectiondialog destruction} {
destroy .sd
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/shell.test b/itcl/iwidgets3.0.0/tests/shell.test
index 48a9daee785..a96a2035c11 100644
--- a/itcl/iwidgets3.0.0/tests/shell.test
+++ b/itcl/iwidgets3.0.0/tests/shell.test
@@ -14,6 +14,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -194,3 +197,6 @@ test Shell-1.$c {Shell destruction} {
destroy .sh
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/spindate.test b/itcl/iwidgets3.0.0/tests/spindate.test
index 7c541a108c7..310187f3060 100644
--- a/itcl/iwidgets3.0.0/tests/spindate.test
+++ b/itcl/iwidgets3.0.0/tests/spindate.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -154,3 +157,6 @@ test Spindate-1.$c {Spindate destruction} {
destroy .sd
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/spinint.test b/itcl/iwidgets3.0.0/tests/spinint.test
index a17087f589d..8a6233801fa 100644
--- a/itcl/iwidgets3.0.0/tests/spinint.test
+++ b/itcl/iwidgets3.0.0/tests/spinint.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -42,7 +45,7 @@ incr c
#
test Spinint-2.$o {configuration option} {
llength [.spi configure]
-} {46}
+} {47}
incr o
@@ -164,3 +167,6 @@ test Spinint-1.$c {Spinint destruction} {
destroy .spi
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/spinner.test b/itcl/iwidgets3.0.0/tests/spinner.test
index f0c815433cb..535773ee9db 100644
--- a/itcl/iwidgets3.0.0/tests/spinner.test
+++ b/itcl/iwidgets3.0.0/tests/spinner.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -41,7 +44,7 @@ incr c
#
test Spinner-2.$o {configuration option} {
llength [.sp configure]
-} {43}
+} {44}
incr o
@@ -146,3 +149,6 @@ test Spinner-1.$c {Spinner destruction} {
destroy .sp
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/spintime.test b/itcl/iwidgets3.0.0/tests/spintime.test
index ec1b4b34aed..84bc91e3e41 100644
--- a/itcl/iwidgets3.0.0/tests/spintime.test
+++ b/itcl/iwidgets3.0.0/tests/spintime.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -138,3 +141,6 @@ test Spintime-1.$c {Spintime destruction} {
destroy .st
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/tabnotebook.test b/itcl/iwidgets3.0.0/tests/tabnotebook.test
index bb21c582fb3..b5a7244c5ca 100644
--- a/itcl/iwidgets3.0.0/tests/tabnotebook.test
+++ b/itcl/iwidgets3.0.0/tests/tabnotebook.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -228,9 +231,15 @@ foreach test {
} {
set method [lindex [lindex $test 0] 1]
set method_invoke [lindex $test 0]
- test_pattern Tabnotebook-3.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 0 [lindex $test 1]]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{[lindex $test 0]\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 1]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Tabnotebook-3.$m "\[$method_invoke\]" $testContents \
+ [list 0 1]
update
incr m
}
@@ -238,48 +247,56 @@ foreach test {
#
# Method tests which fail and produce errors
#
+set m 1
foreach test {
- {{.tn delete 0 end} {}}
- {{.tn childsite 0} {can't get childsite, no pages}}
- {{.tn add} {}}
- {{.tn childsite 1} {bad Notebook page index in childsite method}}
- {{.tn childsite -1} {bad Notebook page index in childsite method}}
- {{.tn delete 0} {}}
- {{.tn delete 0} {can't delete page, no pages}}
- {{.tn add} {}}
- {{.tn delete 1} {bad Notebook page index in delete method:}}
- {{.tn delete select} {bad Notebook page index in delete method:}}
- {{.tn delete 0} {}}
- {{.tn add} {}}
- {{.tn delete 0 1} {bad Notebook page index2 in delete method:}}
- {{.tn delete 1 4} {bad Notebook page index1 in delete method:}}
- {{.tn add} {}}
- {{.tn delete 1 0} {bad Notebook page index1 in delete method: index1 is greater than index2}}
- {{.tn delete 0 1} {}}
- {{.tn add} {}}
- {{.tn delete 0 1 4 5 6} {wrong # args}}
- {{.tn delete} {wrong # args}}
- {{.tn delete 0} {}}
- {{.tn delete 0} {can't delete page}}
- {{.tn delete select} {can't delete page}}
- {{.tn insert 0} {can't insert page}}
- {{.tn add} {}}
- {{.tn add} {}}
- {{.tn insert 2} {bad Notebook page index in insert method:}}
- {{.tn insert -1} {bad Notebook page index}}
- {{.tn delete 0 end} {}}
- {{.tn next} {can't move to next page, no pages in the notebook}}
- {{.tn prev} {can't move to previous page, no pages in the notebook}}
- {{.tn select 0} {can't select page}}
- {{.tn add} {}}
- {{.tn select 1} {bad Notebook page index in select method:}}
- {{.tn delete 0} {}}
+ {1 {.tn delete 0 end} {can't delete page}}
+ {1 {.tn childsite 0} {can't get childsite, no pages}}
+ {0 {.tn add} {}}
+ {1 {.tn childsite 1} {bad Notebook page index in childsite method}}
+ {1 {.tn childsite -1} {bad Notebook page index in childsite method}}
+ {0 {.tn delete 0} {}}
+ {1 {.tn delete 0} {can't delete page, no pages}}
+ {0 {.tn add} {}}
+ {1 {.tn delete 1} {bad Notebook page index in delete method:}}
+ {1 {.tn delete select} {bad Notebook page index in delete method:}}
+ {0 {.tn delete 0} {}}
+ {0 {.tn add} {}}
+ {1 {.tn delete 0 1} {bad Notebook page index2 in delete method:}}
+ {1 {.tn delete 1 4} {bad Notebook page index1 in delete method:}}
+ {0 {.tn add} {}}
+ {1 {.tn delete 1 0} {bad Notebook page index1 in delete method: index1 is greater than index2}}
+ {0 {.tn delete 0 1} {}}
+ {0 {.tn add} {}}
+ {1 {.tn delete 0 1 4 5 6} {wrong # args}}
+ {1 {.tn delete} {wrong # args}}
+ {0 {.tn delete 0} {}}
+ {1 {.tn delete 0} {can't delete page}}
+ {1 {.tn delete select} {can't delete page}}
+ {1 {.tn insert 0} {can't insert page}}
+ {0 {.tn add} {}}
+ {0 {.tn add} {}}
+ {1 {.tn insert 2} {bad Notebook page index in insert method:}}
+ {1 {.tn insert -1} {bad Notebook page index}}
+ {0 {.tn delete 0 end} {}}
+ {1 {.tn next} {can't move to next page, no pages in the notebook}}
+ {1 {.tn prev} {can't move to previous page, no pages in the notebook}}
+ {1 {.tn select 0} {can't select page}}
+ {0 {.tn add} {}}
+ {1 {.tn select 1} {bad Notebook page index in select method:}}
+ {0 {.tn delete 0} {}}
} {
- set method [lindex [lindex $test 0] 1]
- set method_invoke [lindex $test 0]
- test_pattern Tabnotebook-3.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 1 [lindex $test 1]]
+ set method_status [lindex $test 0]
+ set method_invoke [lindex $test 1]
+ set method [lindex $method_invoke 1]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{$method_invoke\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Tabnotebook-4.$m "\[$method_invoke\]" $testContents \
+ [list $method_status 1]
incr m
}
@@ -311,3 +328,6 @@ test Tabnotebook-1.$c {Tabnotebook destruction} {
destroy .tn
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/tabset.test b/itcl/iwidgets3.0.0/tests/tabset.test
index 425bd324ef5..0731be492e5 100644
--- a/itcl/iwidgets3.0.0/tests/tabset.test
+++ b/itcl/iwidgets3.0.0/tests/tabset.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -237,9 +240,15 @@ foreach test {
} {
set method [lindex [lindex $test 0] 1]
set method_invoke [lindex $test 0]
- test_pattern Tabset-3.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 0 [lindex $test 1]]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{[lindex $test 0]\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 1]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Tabset-3.$m "\[$method_invoke\]" $testContents \
+ [list 0 1]
update
incr m
}
@@ -247,44 +256,52 @@ foreach test {
#
# Method tests which fail and produce errors
#
+set m 1
foreach test {
- {{.ts delete 0 end} {}}
- {{.ts add} {}}
- {{.ts delete 0} {}}
- {{.ts delete 0} {can't delete tabs, no tabs}}
- {{.ts add} {}}
- {{.ts delete 1} {bad value for index1}}
- {{.ts delete select} {bad value for index1}}
- {{.ts delete 0} {}}
- {{.ts add} {}}
- {{.ts delete 0 1} {bad value for index2}}
- {{.ts delete 1 4} {bad value for index1}}
- {{.ts add} {}}
- {{.ts delete 0 1} {}}
- {{.ts add} {}}
- {{.ts delete 0 1 4 5 6} {wrong # args}}
- {{.ts delete} {wrong # args}}
- {{.ts delete 0} {}}
- {{.ts delete 0} {can't delete tabs}}
- {{.ts delete select} {can't delete tabs}}
- {{.ts insert 0} {no tab to insert before, tabset}}
- {{.ts add} {}}
- {{.ts add} {}}
- {{.ts insert 2} {bad value}}
- {{.ts insert -1} {bad option}}
- {{.ts delete 0 end} {}}
- {{.ts next} {can't goto next tab, no tabs in the tabset}}
- {{.ts prev} {can't goto previous tab, no tabs in the tabset}}
- {{.ts select 0} {can't activate a tab, no tabs in the tabset}}
- {{.ts add} {}}
- {{.ts select 1} {bad value}}
- {{.ts delete 0} {}}
+ {1 {.ts delete 0 end} {can't delete tab}}
+ {0 {.ts add} {}}
+ {0 {.ts delete 0} {}}
+ {1 {.ts delete 0} {can't delete tabs, no tabs}}
+ {0 {.ts add} {}}
+ {1 {.ts delete 1} {bad value for index1}}
+ {1 {.ts delete select} {bad value for index1}}
+ {0 {.ts delete 0} {}}
+ {0 {.ts add} {}}
+ {1 {.ts delete 0 1} {bad value for index2}}
+ {1 {.ts delete 1 4} {bad value for index1}}
+ {0 {.ts add} {}}
+ {0 {.ts delete 0 1} {}}
+ {0 {.ts add} {}}
+ {1 {.ts delete 0 1 4 5 6} {wrong # args}}
+ {1 {.ts delete} {wrong # args}}
+ {0 {.ts delete 0} {}}
+ {1 {.ts delete 0} {can't delete tabs}}
+ {1 {.ts delete select} {can't delete tabs}}
+ {1 {.ts insert 0} {no tab to insert before, tabset}}
+ {0 {.ts add} {}}
+ {0 {.ts add} {}}
+ {1 {.ts insert 2} {bad value}}
+ {1 {.ts insert -1} {bad option}}
+ {0 {.ts delete 0 end} {}}
+ {1 {.ts next} {can't goto next tab, no tabs in the tabset}}
+ {1 {.ts prev} {can't goto previous tab, no tabs in the tabset}}
+ {1 {.ts select 0} {can't activate a tab, no tabs in the tabset}}
+ {0 {.ts add} {}}
+ {1 {.ts select 1} {bad value}}
+ {0 {.ts delete 0} {}}
} {
- set method [lindex [lindex $test 0] 1]
- set method_invoke [lindex $test 0]
- test_pattern Tabset-3.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 1 [lindex $test 1]]
+ set method_status [lindex $test 0]
+ set method_invoke [lindex $test 1]
+ set method [lindex $method_invoke 1]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{$method_invoke\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Tabset-4.$m "\[$method_invoke\]" $testContents \
+ [list $method_status 1]
incr m
}
@@ -315,3 +332,6 @@ test Tabset-1.$c {Tabset destruction} {
destroy .ts
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/timeentry.test b/itcl/iwidgets3.0.0/tests/timeentry.test
index 752203d5351..1e999a3cf4f 100755
--- a/itcl/iwidgets3.0.0/tests/timeentry.test
+++ b/itcl/iwidgets3.0.0/tests/timeentry.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -42,7 +45,7 @@ incr c
#
test Timeentry-2.$o {configuration option} {
llength [.te configure]
-} {43}
+} {45}
incr o
@@ -176,3 +179,6 @@ test Timeentry-1.$c {Timeentry destruction} {
destroy .te
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/timefield.test b/itcl/iwidgets3.0.0/tests/timefield.test
index 1dc6005813c..8e4d281b00c 100755
--- a/itcl/iwidgets3.0.0/tests/timefield.test
+++ b/itcl/iwidgets3.0.0/tests/timefield.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -42,7 +45,7 @@ incr c
#
test Timefield-2.$o {configuration option} {
llength [.tf configure]
-} {27}
+} {29}
incr o
@@ -161,3 +164,6 @@ test Timefield-1.$c {Timefield destruction} {
destroy .tf
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/toolbar.test b/itcl/iwidgets3.0.0/tests/toolbar.test
index 49e0394af94..f731244c2f7 100644
--- a/itcl/iwidgets3.0.0/tests/toolbar.test
+++ b/itcl/iwidgets3.0.0/tests/toolbar.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -187,9 +190,15 @@ foreach test {
} {
set method [lindex [lindex $test 0] 1]
set method_invoke [lindex $test 0]
- test_pattern Toolbar-4.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 0 [lindex $test 1]]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{[lindex $test 0]\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 1]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Toolbar-4.$m "\[$method_invoke\]" $testContents \
+ [list 0 1]
update
incr m
}
@@ -198,36 +207,43 @@ foreach test {
# Method tests which fail and produce errors
#
foreach test {
- {{.tb delete 0 end} {}}
- {{.tb add button item1} {}}
- {{.tb delete 0} {}}
- {{.tb delete 0} {can't delete widget, no widgets in the Toolbar}}
- {{.tb add button item1} {}}
- {{.tb delete 1} {bad Toolbar widget index in delete method}}
- {{.tb delete 0} {}}
- {{.tb add button item1} {}}
- {{.tb delete 0 1} {bad Toolbar widget index2 in delete method}}
- {{.tb delete 1 4} {bad Toolbar widget index1 in delete method}}
- {{.tb add button item2} {}}
- {{.tb delete 1 0} {bad Toolbar widget index1 in delete method}}
- {{.tb delete 0 1} {}}
- {{.tb add button item1} {}}
- {{.tb delete 0 1 4 5 6} {wrong # args}}
- {{.tb delete} {wrong # args}}
- {{.tb delete 0} {}}
- {{.tb delete 0} {can't delete widget, no widgets in the Toolbar}}
- {{.tb insert 0 button itemA} {}}
- {{.tb add button item1} {}}
- {{.tb add button item2} {}}
- {{.tb insert 0 button itemAA} {}}
- {{.tb insert -1 button bogus} {bad toolbar entry index -1}}
- {{.tb delete 0 end} {}}
+ {1 {.tb delete 0 end} {}}
+ {0 {.tb add button item1} {}}
+ {0 {.tb delete 0} {}}
+ {1 {.tb delete 0} {can't delete widget, no widgets in the Toolbar}}
+ {0 {.tb add button item1} {}}
+ {1 {.tb delete 1} {bad Toolbar widget index in delete method}}
+ {0 {.tb delete 0} {}}
+ {0 {.tb add button item1} {}}
+ {1 {.tb delete 0 1} {bad Toolbar widget index2 in delete method}}
+ {1 {.tb delete 1 4} {bad Toolbar widget index1 in delete method}}
+ {0 {.tb add button item2} {}}
+ {1 {.tb delete 1 0} {bad Toolbar widget index1 in delete method}}
+ {0 {.tb delete 0 1} {}}
+ {0 {.tb add button item1} {}}
+ {1 {.tb delete 0 1 4 5 6} {wrong # args}}
+ {1 {.tb delete} {wrong # args}}
+ {0 {.tb delete 0} {}}
+ {1 {.tb delete 0} {can't delete widget, no widgets in the Toolbar}}
+ {1 {.tb insert 0 button itemA} {}}
+ {0 {.tb add button item1} {}}
+ {0 {.tb add button item2} {}}
+ {0 {.tb insert 0 button itemAA} {}}
+ {1 {.tb insert -1 button bogus} {bad toolbar entry index -1}}
+ {0 {.tb delete 0 end} {}}
} {
- set method [lindex [lindex $test 0] 1]
- set method_invoke [lindex $test 0]
- test_pattern Toolbar-5.$m "\[$method_invoke\]" {
- list [catch {eval [lindex $test 0]} msg] $msg
- } [list 1 [lindex $test 1]]
+ set method_status [lindex $test 0]
+ set method_invoke [lindex $test 1]
+ set method [lindex $method_invoke 1]
+
+ set testContents "set msg {}\n"
+ append testContents \
+ "set result \[catch \{$method_invoke\} msg\]\n"
+ append testContents \
+ "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n"
+ append testContents "set result\n"
+ test Toolbar-5.$m "\[$method_invoke\]" $testContents \
+ [list $method_status 1]
incr m
}
@@ -259,3 +275,6 @@ test Toolbar-1.$c {Toolbar destruction} {
destroy .tb
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/usual.test b/itcl/iwidgets3.0.0/tests/usual.test
index 0762d1e9756..cf65bdab95f 100644
--- a/itcl/iwidgets3.0.0/tests/usual.test
+++ b/itcl/iwidgets3.0.0/tests/usual.test
@@ -9,6 +9,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -51,3 +54,6 @@ foreach file [glob *.test] {
} $name
}
}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/tests/watch.test b/itcl/iwidgets3.0.0/tests/watch.test
index 204ca988195..a132a37ec83 100755
--- a/itcl/iwidgets3.0.0/tests/watch.test
+++ b/itcl/iwidgets3.0.0/tests/watch.test
@@ -13,6 +13,9 @@
#
# @(#) $Id$
+package require tcltest
+namespace import -force ::tcltest::*
+
package require Iwidgets 3.0
if {[string compare test [info procs test]] == 1} {
@@ -147,3 +150,6 @@ test Watch-1.$c {Watch destruction} {
destroy .w
update
} {}
+
+::tcltest::cleanupTests
+exit
diff --git a/itcl/iwidgets3.0.0/unix/Makefile.in b/itcl/iwidgets3.0.0/unix/Makefile.in
index 3bd06402a99..fab7ce5b66f 100644
--- a/itcl/iwidgets3.0.0/unix/Makefile.in
+++ b/itcl/iwidgets3.0.0/unix/Makefile.in
@@ -28,6 +28,12 @@ VERSION = $(ITCL_VERSION).$(IWIDGETS_VERSION)
prefix = @prefix@
exec_prefix = @exec_prefix@
+srcdir = @srcdir@
+libdir=@libdir@
+bindir=@bindir@
+includedir=@includedir@
+mandir=@mandir@
+datadir=@datadir@
# The following definition can be set to non-null for special systems
# like AFS with replication. It allows the pathnames used for installation
@@ -40,23 +46,23 @@ INSTALL_ROOT =
# Directory from which applications will reference the library of
# [incr Widgets] scripts (note: you can set the IWIDGETS_LIBRARY environment
# variable at run-time to override this value):
-IWIDGETS_LIBRARY = $(prefix)/share/iwidgets$(VERSION)
+IWIDGETS_LIBRARY = $(datadir)/iwidgets$(VERSION)
# END CYGNUS LOCAL
# Path name to use when installing library scripts:
SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(IWIDGETS_LIBRARY)
# Directory in which to install the archive libtcl.a:
-LIB_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/lib
+LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir)
# Directory in which to install the program tclsh:
-BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin
+BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir)
# Directory in which to install the include file itcl.h:
-INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
+INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir)
# Top-level directory in which to install manual entries:
-MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
+MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mandir)
# Directory in which to install manual entry for itclsh:
MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1
@@ -150,7 +156,9 @@ standalone:
plusplus:
-install: install-libraries install-demos install-man
+install: install-libraries install-demos install-man install-binaries
+
+install-binaries:
install-libraries:
@$(MKINSTALLDIRS) $(SCRIPT_INSTALL_DIR) $(LIB_INSTALL_DIR)
diff --git a/itcl/iwidgets3.0.0/unix/configure b/itcl/iwidgets3.0.0/unix/configure
index 41e014586be..b0a4750fa47 100755
--- a/itcl/iwidgets3.0.0/unix/configure
+++ b/itcl/iwidgets3.0.0/unix/configure
@@ -37,6 +37,7 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
+sitefile=
srcdir=
target=NONE
verbose=
@@ -151,6 +152,7 @@ Configuration:
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
+ --site-file=FILE use FILE as the site file
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -321,6 +323,11 @@ EOF
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
+ ac_prev=sitefile ;;
+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+ sitefile="$ac_optarg" ;;
+
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -486,12 +493,16 @@ fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+if test -z "$sitefile"; then
+ if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
fi
+else
+ CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -568,7 +579,7 @@ echo $ac_n "checking for prefix by $ac_c" 1>&6
# Extract the first word of "tclsh", so it can be a program name with args.
set dummy tclsh; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:572: checking for $ac_word" >&5
+echo "configure:583: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -625,7 +636,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:629: checking for a BSD compatible install" >&5
+echo "configure:640: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -680,7 +691,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:684: checking for $ac_word" >&5
+echo "configure:695: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -729,7 +740,7 @@ fi
TCL_LIB_DIR=""
-for dir in $exec_prefix/lib $itcl_search ; do
+for dir in $itcl_search $exec_prefix/lib ; do
if test -r $dir/tclConfig.sh; then
TCL_LIB_DIR=$dir
break
@@ -757,7 +768,7 @@ fi
TK_LIB_DIR=""
-for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+for dir in $itcl_search $TCL_LIB_DIR $exec_prefix/lib ; do
if test -r $dir/tkConfig.sh; then
TK_LIB_DIR=$dir
break
@@ -784,7 +795,7 @@ fi
ITCL_LIB_DIR=""
-for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+for dir in $itcl_search $TCL_LIB_DIR $exec_prefix/lib ; do
if test -r $dir/itclConfig.sh; then
ITCL_LIB_DIR=$dir
break
@@ -811,7 +822,7 @@ fi
ITK_LIB_DIR=""
-for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+for dir in $itcl_search $TCL_LIB_DIR $exec_prefix/lib ; do
if test -r $dir/itkConfig.sh; then
ITK_LIB_DIR=$dir
break
diff --git a/itcl/iwidgets3.0.0/unix/configure.in b/itcl/iwidgets3.0.0/unix/configure.in
index 43b8476eb43..58457f06097 100644
--- a/itcl/iwidgets3.0.0/unix/configure.in
+++ b/itcl/iwidgets3.0.0/unix/configure.in
@@ -45,7 +45,7 @@ AC_ARG_WITH(tcl, [ --with-tcl=DIR use Tcl 8.0 binaries from DIR],
itcl_search=$withval, itcl_search=`cd ../../..; ls -d \`pwd\`/tcl*/unix`)
TCL_LIB_DIR=""
-for dir in $exec_prefix/lib $itcl_search ; do
+for dir in $itcl_search $exec_prefix/lib ; do
if test -r $dir/tclConfig.sh; then
TCL_LIB_DIR=$dir
break
@@ -67,7 +67,7 @@ AC_ARG_WITH(tk, [ --with-tk=DIR use Tk 8.0 binaries from DIR],
itcl_search=$withval, itcl_search=`cd ../../..; ls -d \`pwd\`/tk*/unix`)
TK_LIB_DIR=""
-for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+for dir in $itcl_search $TCL_LIB_DIR $exec_prefix/lib ; do
if test -r $dir/tkConfig.sh; then
TK_LIB_DIR=$dir
break
@@ -88,7 +88,7 @@ AC_ARG_WITH(itcl, [ --with-itcl=DIR use Itcl 3.0 binaries from DIR],
itcl_search=$withval, itcl_search=`cd ${BUILD_DIR}/../../itcl; pwd`)
ITCL_LIB_DIR=""
-for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+for dir in $itcl_search $TCL_LIB_DIR $exec_prefix/lib ; do
if test -r $dir/itclConfig.sh; then
ITCL_LIB_DIR=$dir
break
@@ -109,7 +109,7 @@ AC_ARG_WITH(itk, [ --with-itk=DIR use Itk 3.0 binaries from DIR],
itcl_search=$withval, itcl_search=`cd ${BUILD_DIR}/../../itk; pwd`)
ITK_LIB_DIR=""
-for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+for dir in $itcl_search $TCL_LIB_DIR $exec_prefix/lib ; do
if test -r $dir/itkConfig.sh; then
ITK_LIB_DIR=$dir
break
diff --git a/itcl/iwidgets3.0.0/win/iwidgets.tcl b/itcl/iwidgets3.0.0/win/iwidgets.tcl
new file mode 100644
index 00000000000..c36dfafe968
--- /dev/null
+++ b/itcl/iwidgets3.0.0/win/iwidgets.tcl
@@ -0,0 +1,35 @@
+#
+# iwidgets.tcl
+# ----------------------------------------------------------------------
+# Invoked automatically by [incr Tk] upon startup to initialize
+# the [incr Widgets] package.
+# ----------------------------------------------------------------------
+# AUTHOR: Mark L. Ulferts EMAIL: mulferts@spd.dsccc.com
+#
+# @(#) $Id$
+# ----------------------------------------------------------------------
+# Copyright (c) 1995 Mark L. Ulferts
+# ======================================================================
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+package require Tcl 8.0
+package require Tk 8.0
+package require Itcl 3.0
+package require Itk 3.0
+
+namespace eval ::iwidgets {
+ namespace export *
+
+ variable library [file dirname [info script]]
+ variable version 3.0.0
+}
+
+lappend auto_path [file join $iwidgets::library scripts]
+package provide Iwidgets $iwidgets::version
+
+# For now we need to import all of the itcl functions into the global
+# namespace. This should be removed once iwidgets are upgraded to use the
+# itcl:: names directly.
+
+namespace import -force itcl::*
diff --git a/itcl/iwidgets3.0.0/win/makefile.vc b/itcl/iwidgets3.0.0/win/makefile.vc
new file mode 100644
index 00000000000..a5ca8ab8bff
--- /dev/null
+++ b/itcl/iwidgets3.0.0/win/makefile.vc
@@ -0,0 +1,36 @@
+# Microsoft Visual C++ 4.0 makefile
+#
+# Copyright (c) 1993-1998 Lucent Technologies, Inc.
+
+!include "..\..\makefile.vc"
+
+ROOT = ..
+PACKAGE = iwidgets3.0.0
+
+LIB_INSTALL_DIR = $(INSTALLDIR)\lib
+BIN_INSTALL_DIR = $(INSTALLDIR)\bin
+INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
+HTML_INSTALL_DIR = $(INSTALLDIR)\html\$(PACKAGE)
+PKG_INSTALL_DIR = $(INSTALLDIR)\lib\$(PACKAGE)
+SCRIPT_INSTALL_DIR = $(PKG_INSTALL_DIR)\scripts
+DEMO_INSTALL_DIR = $(PKG_INSTALL_DIR)\demos
+
+install:
+ $(MKDIR) "$(INSTALLDIR)"
+ $(MKDIR) "$(LIB_INSTALL_DIR)"
+ $(MKDIR) "$(PKG_INSTALL_DIR)"
+ $(MKDIR) "$(SCRIPT_INSTALL_DIR)"
+ $(MKDIR) "$(DEMO_INSTALL_DIR)"
+ $(MKDIR) "$(DEMO_INSTALL_DIR)\Html
+ $(MKDIR) "$(DEMO_INSTALL_DIR)\Images
+ $(MKDIR) "$(INSTALLDIR)\html"
+ $(CP) $(ROOT)\win\*.tcl "$(PKG_INSTALL_DIR)"
+ $(CP) $(ROOT)\generic\*.* "$(SCRIPT_INSTALL_DIR)"
+ $(CP) $(ROOT)\demos\catalog "$(BIN_INSTALL_DIR)\catalog.tcl"
+ $(CP) $(ROOT)\demos\*.* "$(DEMO_INSTALL_DIR)"
+ $(CP) $(ROOT)\demos\images\*.* "$(DEMO_INSTALL_DIR)\Images"
+ $(CP) $(ROOT)\demos\html\*.* "$(DEMO_INSTALL_DIR)\Html"
+
+install-html:
+ $(MKDIR) "$(HTML_INSTALL_DIR)"
+ $(CP) $(ROOT)\doc\html\*.* "$(HTML_INSTALL_DIR)"
diff --git a/itcl/iwidgets3.0.0/win/pkgIndex.tcl b/itcl/iwidgets3.0.0/win/pkgIndex.tcl
new file mode 100644
index 00000000000..a9ff5bf20d5
--- /dev/null
+++ b/itcl/iwidgets3.0.0/win/pkgIndex.tcl
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Iwidgets 3.0.0 [list source [file join $dir iwidgets.tcl]]
diff --git a/itcl/license.terms b/itcl/license.terms
index 5771c69e3be..296de7fd7fc 100644
--- a/itcl/license.terms
+++ b/itcl/license.terms
@@ -1,4 +1,4 @@
-This software is copyrighted by Lucent Technologies, Inc., and other
+This software is copyrighted by Cadence Design Systems, Inc., and other
parties. The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.
diff --git a/itcl/makefile.vc b/itcl/makefile.vc
index 609a4a7c81a..d5d8e2355f8 100644
--- a/itcl/makefile.vc
+++ b/itcl/makefile.vc
@@ -3,64 +3,57 @@
#
# This is the main Visual C++ makefile for the Windows distribution
-# of [incr Tcl] version 2.2. To compile the distribution using Visual
+# of [incr Tcl] version 3.0. To compile the distribution using Visual
# C++, copy "makefile.vc" to "makefile". Then set the macros for the
-# location of the source tree, the target directory, and the Microsoft
-# Compilers. You may then "make dist" to build the distribution, and
-# "make dist-install" to install it to the target directory you specify
-# below.
+# location of the source directory, installation directory, and the
+# Microsoft Compilers. You may then "make dist" to build the distribution,
+# and "make dist-install" to install it to the target directory you specify
+# below, and "make dist-clean" to clean up.
#
-# There are three primary targets for the distribution:
+# Project directories
#
-# dist: build the entire distribution: Tcl, Tk, Itcl, Itk
+# ROOT = top of source tree
#
-# dist-install: moves built files to target directory
-#
-# dist-clean: erases built files in source tree
-
+# TMPDIR = location where .obj files should be stored during build
#
# TOOLS32 = location of VC++ 32-bit development tools. Note that the
# VC++ 2.0 header files are broken, so you need to use the
# ones that come with the developer network CD's, or later
# versions of VC++.
#
-# TOOLS16 = location of VC++ 1.5 16-bit tools, needed to build thunking
-# library. This information is optional; if the 16-bit compiler
-# is not available, then the 16-bit code will not be built.
-# Tcl will still run without the 16-bit code, but...
-# A. Under Windows 3.X you will any calls to the exec command
-# will return an error.
-# B. A 16-bit program to test the behavior of the exec
-# command under NT and 95 will not be built.
-#
-# TARGET_ROOT -- Target Directory for installation
-#
-# SOURCE_ROOT -- Path to root of source tree
+# INSTALLDIR = where the install- targets should copy the binaries and
+# support files
#
-TOOLS32 = c:\msdev
-TOOLS16 = c:\msvc
-TARGET_ROOT = c:\Program files\Itcl2.2
-SOURCE_ROOT = c:\itcl2.2
+TOOLS32 = c:\progra~1\devstudio\vc
+TOOLS32_rc = c:\progra~1\devstudio\sharedide
+
+SOURCE_ROOT = \ws\incrTcl
+INSTALLDIR = c:\progra~1\Tcl
+TCLDIR = \ws\tcl8.1
+TKDIR = \ws\tk8.1
+TCLSH = $(TCLDIR)\win\Release\tclsh81.exe
+
+# Set this to the appropriate value of /MACHINE: for your platform
+MACHINE = IX86
+
+# Set NODEBUG to 0 to compile with symbols
+NODEBUG = 1
+
+# uncomment one of the following lines to compile with TCL_MEM_DEBUG,
+# TCL_MEM_DEBUG, or TCL_COMPILE_DEBUG
+#DEBUGDEFINES = -DTCL_MEM_DEBUG
+#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG
+#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_STATS
+#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
-#
-# You should not have to modify anything further in this makefile
-#
#
-# Borland C++ tools
+# You should not have to modify anything further in this makefile
#
-cc32 = $(TOOLS32)\bin\cl.exe
-link32 = $(TOOLS32)\bin\link.exe
-rc32 = $(TOOLS32)\bin\rc.exe
-include32 = -I$(TOOLS32)\include
-cc16 = $(TOOLS16)\bin\cl.exe
-link16 = $(TOOLS16)\bin\link.exe
-rc16 = $(TOOLS16)\bin\rc.exe
-include16 = -I$(TOOLS16)\include
MAKE = $(TOOLS32)\bin\nmake -fmakefile.vc
#
@@ -74,73 +67,28 @@ MKDIR = -mkdir
#
# Source and Build Paths
#
-
-TCLDIR = $(SOURCE_ROOT)\Tcl7.6
-TKDIR = $(SOURCE_ROOT)\Tk4.2
ITCLDIR = $(SOURCE_ROOT)\Itcl
ITKDIR = $(SOURCE_ROOT)\Itk
-IWIDGETSDIR = $(SOURCE_ROOT)\Iwidgets2.2.0
-
-#
-# Target Paths
-#
-
-TARGET_BIN = $(TARGET_ROOT)\Bin
-TARGET_LIB_ROOT = $(TARGET_ROOT)\Lib
-TARGET_LIB = $(TARGET_LIB_ROOT)\Itcl
-TARGET_INCLUDE_ROOT = $(TARGET_ROOT)\Include
-TARGET_INCLUDE = $(TARGET_INCLUDE_ROOT)\Itcl
-TARGET_DOC = $(TARGET_ROOT)\Html
-
-#
-# Shared Target Files:
-#
-
-TCLLIB = Tcl76i.lib
-TCLDLL = Tcl76i.dll
-TKLIB = Tk42i.lib
-TKDLL = Tk42i.dll
-ITCLLIB = Itcl22.lib
-ITCLDLL = Itcl22.dll
-ITKLIB = Itk22.lib
-ITKDLL = Itk22.dll
-
-#
-# Paths to Build locations of libraries
-#
-TCLLIBDIR = $(TCLDIR)\Win
-TKLIBDIR = $(TKDIR)\Win
-ITCLLIBDIR = $(ITCLDIR)\Win
-ITKLIBDIR = $(ITKDIR)\Win
-
+IWIDGETS2DIR = $(SOURCE_ROOT)\Iwidgets2.2.0
+IWIDGETS3DIR = $(SOURCE_ROOT)\Iwidgets3.0.0
dist:
- cd $(TCLDIR)\Win
- $(MAKE) all
- cd $(TKDIR)\Win
- $(MAKE) all
cd $(ITCLDIR)\Win
$(MAKE) all
cd $(ITKDIR)\Win
$(MAKE) all
dist-install:
- cd $(TCLDIR)\Win
- $(MAKE) install
- cd $(TKDIR)\Win
- $(MAKE) install
cd $(ITCLDIR)\Win
$(MAKE) install
cd $(ITKDIR)\Win
$(MAKE) install
- cd $(IWIDGETSDIR)\Win
+ cd $(IWIDGETS2DIR)\Win
+ $(MAKE) install
+ cd $(IWIDGETS3DIR)\Win
$(MAKE) install
dist-clean:
- cd $(TCLDIR)\Win
- $(MAKE) clean
- cd $(TKDIR)\Win
- $(MAKE) clean
cd $(ITCLDIR)\Win
$(MAKE) clean
cd $(ITKDIR)\Win
diff --git a/itcl/tcl.m4 b/itcl/tcl.m4
new file mode 100644
index 00000000000..3b66d1a7c64
--- /dev/null
+++ b/itcl/tcl.m4
@@ -0,0 +1,626 @@
+# tcl.m4 --
+#
+# This file provides a set of autoconf macros to help TEA-enable
+# a Tcl extension.
+#
+# Copyright (c) 1999 Scriptics Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+#------------------------------------------------------------------------
+# SC_PATH_TCLCONFIG --
+#
+# Locate the tclConfig.sh file and perform a sanity check on
+# the Tcl compile flags
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Adds the following arguments to configure:
+# --with-tcl=...
+#
+# Defines the following vars:
+# TCL_BIN_DIR Full path to the directory containing
+# the tclConfig.sh file
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PATH_TCLCONFIG, [
+ #
+ # Ok, lets find the tcl configuration
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-tcl
+ #
+
+ if test x"${no_tcl}" = x ; then
+ # we reset no_tcl in case something fails here
+ no_tcl=true
+ AC_ARG_WITH(tcl, [ --with-tcl directory containing tcl configuration (tclConfig.sh)], with_tclconfig=${withval})
+ AC_MSG_CHECKING([for Tcl configuration])
+ AC_CACHE_VAL(ac_cv_c_tclconfig,[
+
+ # First check to see if --with-tcl was specified.
+ if test x"${with_tclconfig}" != x ; then
+ if test -f "${with_tclconfig}/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+ else
+ AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
+ fi
+ fi
+
+ # then check for a private Tcl installation
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ../tcl \
+ `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
+ ../../tcl \
+ `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
+ ../../../tcl \
+ `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few common install locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib 2>/dev/null` \
+ `ls -d /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+
+ # check in a few other private locations
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ for i in \
+ ${srcdir}/../tcl \
+ `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
+ if test -f "$i/unix/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tclConfig.sh" ; then
+ ac_cv_c_tclconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+ ])
+
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ TCL_BIN_DIR="# no Tcl configs found"
+ AC_MSG_ERROR(Can't find Tcl configuration definitions)
+ exit 0
+ else
+ no_tcl=
+ TCL_BIN_DIR=${ac_cv_c_tclconfig}
+ AC_MSG_RESULT(found $TCL_BIN_DIR/tclConfig.sh)
+ fi
+ fi
+])
+
+#------------------------------------------------------------------------
+# SC_PATH_TKCONFIG --
+#
+# Locate the tkConfig.sh file
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Adds the following arguments to configure:
+# --with-tk=...
+#
+# Defines the following vars:
+# TK_BIN_DIR Full path to the directory containing
+# the tkConfig.sh file
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PATH_TKCONFIG, [
+ #
+ # Ok, lets find the tk configuration
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-tk
+ #
+
+ if test x"${no_tk}" = x ; then
+ # we reset no_tk in case something fails here
+ no_tk=true
+ AC_ARG_WITH(tk, [ --with-tk directory containing tk configuration (tkConfig.sh)], with_tkconfig=${withval})
+ AC_MSG_CHECKING([for Tk configuration])
+ AC_CACHE_VAL(ac_cv_c_tkconfig,[
+
+ # First check to see if --with-tkconfig was specified.
+ if test x"${with_tkconfig}" != x ; then
+ if test -f "${with_tkconfig}/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
+ else
+ AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh])
+ fi
+ fi
+
+ # then check for a private Tk library
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in \
+ ../tk \
+ `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \
+ ../../tk \
+ `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \
+ ../../../tk \
+ `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
+ if test -f "$i/unix/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few common install locations
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in `ls -d ${prefix}/lib 2>/dev/null` \
+ `ls -d /usr/local/lib 2>/dev/null` ; do
+ if test -f "$i/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+ # check in a few other private locations
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ for i in \
+ ${srcdir}/../tk \
+ `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
+ if test -f "$i/unix/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+ break
+ fi
+ if test -f "$i/win/tkConfig.sh" ; then
+ ac_cv_c_tkconfig=`(cd $i/win; pwd)`
+ break
+ fi
+ done
+ fi
+ ])
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ TK_BIN_DIR="# no Tk configs found"
+ AC_MSG_ERROR(Can't find Tk configuration definitions)
+ exit 0
+ else
+ no_tk=
+ TK_BIN_DIR=${ac_cv_c_tkconfig}
+ AC_MSG_RESULT(found $TK_BIN_DIR/tkConfig.sh)
+ fi
+ fi
+
+])
+
+#------------------------------------------------------------------------
+# SC_LOAD_TCLCONFIG --
+#
+# Load the tclConfig.sh file
+#
+# Arguments:
+#
+# Requires the following vars to be set:
+# TCL_BIN_DIR
+#
+# Results:
+#
+# Subst the following vars:
+# TCL_BIN_DIR
+# TCL_SRC_DIR
+# TCL_LIB_FILE
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_LOAD_TCLCONFIG, [
+ AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh])
+
+ if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+ AC_MSG_RESULT([loading])
+ . $TCL_BIN_DIR/tclConfig.sh
+ else
+ AC_MSG_RESULT([file not found])
+ fi
+
+ #
+ # The eval is required to do the TCL_DBGX substitution in the
+ # TCL_LIB_FILE variable
+ #
+
+ eval TCL_LIB_FILE=${TCL_LIB_FILE}
+ eval TCL_LIB_FLAG=${TCL_LIB_FLAG}
+
+ AC_SUBST(TCL_DBGX)
+ AC_SUBST(TCL_BIN_DIR)
+ AC_SUBST(TCL_SRC_DIR)
+ AC_SUBST(TCL_LIB_FILE)
+ AC_SUBST(TCL_LIBS)
+ AC_SUBST(TCL_DEFS)
+ AC_SUBST(TCL_SHLIB_LD_LIBS)
+ AC_SUBST(TCL_EXTRA_CFLAGS)
+ AC_SUBST(TCL_LD_FLAGS)
+ AC_SUBST(TCL_LIB_FILE)
+ AC_SUBST(TCL_STUB_LIB_FILE)
+ AC_SUBST(TCL_LIB_SPEC)
+ AC_SUBST(TCL_BUILD_LIB_SPEC)
+ AC_SUBST(TCL_STUB_LIB_SPEC)
+ AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
+])
+
+#------------------------------------------------------------------------
+# SC_LOAD_TKCONFIG --
+#
+# Load the tkConfig.sh file
+#
+# Arguments:
+#
+# Requires the following vars to be set:
+# TK_BIN_DIR
+#
+# Results:
+#
+# Sets the following vars that should be in tkConfig.sh:
+# TK_BIN_DIR
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_LOAD_TKCONFIG, [
+ AC_MSG_CHECKING([for existence of $TK_BIN_DIR/tkConfig.sh])
+
+ if test -f "$TK_BIN_DIR/tkConfig.sh" ; then
+ AC_MSG_RESULT([loading])
+ . $TK_BIN_DIR/tkConfig.sh
+ else
+ AC_MSG_RESULT([could not find $TK_BIN_DIR/tkConfig.sh])
+ fi
+
+ AC_SUBST(TK_BIN_DIR)
+ AC_SUBST(TK_SRC_DIR)
+ AC_SUBST(TK_LIB_FILE)
+ AC_SUBST(TK_XINCLUDES)
+])
+
+#------------------------------------------------------------------------
+# SC_ENABLE_SHARED --
+#
+# Allows the building of shared libraries
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Adds the following arguments to configure:
+# --enable-shared=yes|no
+#
+# Defines the following vars:
+# STATIC_BUILD Used for building import/export libraries
+# on Windows.
+#
+# Sets the following vars:
+# SHARED_BUILD Value of 1 or 0
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_SHARED, [
+ AC_MSG_CHECKING([how to build libraries])
+ AC_ARG_ENABLE(shared,
+ [ --enable-shared build and link with shared libraries [--enable-shared]],
+ [tcl_ok=$enableval], [tcl_ok=no])
+
+# CYGNUS LOCAL
+ case "${host}" in
+ *mingw32* | *windows32*)
+ # Default to shared build for Windows
+ if test "${enable_shared+set}" != set; then
+ tcl_ok=yes
+ fi
+ ;;
+ esac
+# END CYGNUS LOCAL
+
+ if test "$tcl_ok" = "yes" ; then
+ AC_MSG_RESULT([shared])
+ SHARED_BUILD=1
+ else
+ AC_MSG_RESULT([static])
+ SHARED_BUILD=0
+ AC_DEFINE(STATIC_BUILD)
+ fi
+])
+
+#------------------------------------------------------------------------
+# SC_ENABLE_THREADS --
+#
+# Specify if thread support should be enabled
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Adds the following arguments to configure:
+# --enable-threads
+#
+# Sets the following vars:
+# THREADS_LIBS Thread library(s)
+#
+# Defines the following vars:
+# TCL_THREADS
+# _REENTRANT
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_THREADS, [
+ AC_MSG_CHECKING(for building with threads)
+ AC_ARG_ENABLE(threads, [ --enable-threads build with threads],
+ [tcl_ok=$enableval], [tcl_ok=no])
+
+ if test "$tcl_ok" = "yes"; then
+ TCL_THREADS=1
+ AC_DEFINE(TCL_THREADS)
+ AC_DEFINE(_REENTRANT)
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ AC_MSG_RESULT(yes)
+ ;;
+ *)
+ AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no)
+ if test "$tcl_ok" = "yes"; then
+ # The space is needed
+ THREADS_LIBS=" -lpthread"
+ AC_MSG_RESULT(yes)
+ else
+ TCL_THREADS=0
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN("Don t know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...")
+ fi
+ ;;
+ esac
+ else
+ TCL_THREADS=0
+ AC_MSG_RESULT(no (default))
+ fi
+
+])
+
+#------------------------------------------------------------------------
+# SC_ENABLE_SYMBOLS --
+#
+# Specify if debugging symbols should be used
+#
+# Arguments:
+# none
+#
+# Requires the following vars to be set:
+# CFLAGS_DEBUG
+# CFLAGS_OPTIMIZE
+# LDFLAGS_DEBUG
+# LDFLAGS_OPTIMIZE
+#
+# Results:
+#
+# Adds the following arguments to configure:
+# --enable-symbols
+#
+# Defines the following vars:
+# CFLAGS_DEFAULT Sets to CFLAGS_DEBUG if true
+# Sets to CFLAGS_OPTIMIZE if false
+# LDFLAGS_DEFAULT Sets to LDFLAGS_DEBUG if true
+# Sets to LDFLAGS_OPTIMIZE if false
+# DBGX Debug library extension
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_SYMBOLS, [
+ case "${host}" in
+ *mingw32* | *windows32*)
+ tcl_dbgx=d
+ ;;
+ *)
+ tcl_dbgx=g
+ ;;
+ esac
+
+ AC_MSG_CHECKING([for build with symbols])
+ AC_ARG_ENABLE(symbols, [ --enable-symbols build with debugging symbols [--disable-symbols]], [tcl_ok=$enableval], [tcl_ok=no])
+ if test "$tcl_ok" = "yes"; then
+ CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+ LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
+ DBGX=${tcl_dbgx}
+ TCL_DBGX=${tcl_dbgx}
+ AC_MSG_RESULT([yes])
+ else
+ CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+ LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+ DBGX=""
+ TCL_DBGX=""
+ AC_MSG_RESULT([no])
+ fi
+
+ AC_SUBST(TCL_DBGX)
+ AC_SUBST(CFLAGS_DEFAULT)
+ AC_SUBST(LDFLAGS_DEFAULT)
+])
+
+#------------------------------------------------------------------------
+# SC_MAKE_LIB --
+#
+# Generate a line that can be used to build a shared/unshared library
+# in a platform independent manner.
+#
+# Arguments:
+# none
+#
+# Requires:
+#
+# Results:
+#
+# Defines the following vars:
+# MAKE_LIB Makefile rule for building a library
+# MAKE_SHARED_LIB Makefile rule for building a shared library
+# MAKE_UNSHARED_LIB Makefile rule for building a static
+# library
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_MAKE_LIB, [
+ case "${host}" in
+ *mingw32* | *windows32*)
+ if test "${CC}" = "cl"; then
+ MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(\[$]@_OBJECTS) "
+ MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS} \$(LDFLAGS) -out:\[$]@ \$(\[$]@_OBJECTS) "
+ else
+ MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(\[$]@_OBJECTS) "
+ POST_MAKE_STATIC_LIB="\${RANLIB} \[$]@"
+ MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(\[$]@_OBJECTS) \${SHLIB_LDFLAGS} \$(LDFLAGS) \${SHLIB_LD_LIBS} -Wl,--out-implib,\$(patsubst %.dll,lib%.a,\[$]@)"
+ fi
+ ;;
+ *)
+ MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(\[$]@_OBJECTS)"
+ POST_MAKE_STATIC_LIB="\${RANLIB} \[$]@"
+ MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(\[$]@_OBJECTS) \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS}"
+ ;;
+ esac
+
+ if test "${SHARED_BUILD}" = "1" ; then
+ MAKE_LIB=${MAKE_SHARED_LIB}
+ else
+ MAKE_LIB=${MAKE_STATIC_LIB}
+ POST_MAKE_LIB=${POST_MAKE_STATIC_LIB}
+ fi
+
+ AC_SUBST(MAKE_LIB)
+ AC_SUBST(MAKE_SHARED_LIB)
+ AC_SUBST(MAKE_STATIC_LIB)
+ AC_SUBST(POST_MAKE_LIB)
+ AC_SUBST(POST_MAKE_STATIC_LIB)
+])
+
+#------------------------------------------------------------------------
+# SC_PRIVATE_TCL_HEADERS --
+#
+# Locate the private Tcl include files
+#
+# Arguments:
+#
+# Requires:
+# TCL_SRC_DIR Assumes that SC_LOAD_TCLCONFIG has
+# already been called.
+#
+# Results:
+#
+# Substs the following vars:
+# TCL_TOP_DIR_NATIVE
+# TCL_GENERIC_DIR_NATIVE
+# TCL_UNIX_DIR_NATIVE
+# TCL_WIN_DIR_NATIVE
+# TCL_BMAP_DIR_NATIVE
+# TCL_TOOL_DIR_NATIVE
+# TCL_PLATFORM_DIR_NATIVE
+# TCL_BIN_DIR_NATIVE
+# TCL_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PRIVATE_TCL_HEADERS, [
+ AC_MSG_CHECKING(for Tcl private include files)
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ TCL_TOP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}`\"
+ TCL_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/generic`\"
+ TCL_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/unix`\"
+ TCL_WIN_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/win`\"
+ TCL_BMAP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/bitmaps`\"
+ TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\"
+ TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\"
+ TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE}
+ ;;
+ *)
+ TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)'
+ TCL_GENERIC_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/generic'
+ TCL_UNIX_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/unix'
+ TCL_WIN_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/win'
+ TCL_BMAP_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/bitmaps'
+ TCL_TOOL_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/tools'
+ TCL_COMPAT_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/compat'
+ TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE}
+ ;;
+ esac
+
+ AC_SUBST(TCL_TOP_DIR_NATIVE)
+ AC_SUBST(TCL_GENERIC_DIR_NATIVE)
+ AC_SUBST(TCL_UNIX_DIR_NATIVE)
+ AC_SUBST(TCL_WIN_DIR_NATIVE)
+ AC_SUBST(TCL_BMAP_DIR_NATIVE)
+ AC_SUBST(TCL_TOOL_DIR_NATIVE)
+ AC_SUBST(TCL_PLATFORM_DIR_NATIVE)
+
+ TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
+ AC_SUBST(TCL_INCLUDES)
+ AC_MSG_RESULT(Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR})
+])
+
+#------------------------------------------------------------------------
+# SC_PRIVATE_TK_HEADERS --
+#
+# Locate the private Tk include files
+#
+# Arguments:
+#
+# Requires:
+# TK_SRC_DIR Assumes that SC_LOAD_TKCONFIG has
+# already been called.
+#
+# Results:
+#
+# Substs the following vars:
+# TK_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PRIVATE_TK_HEADERS, [
+ AC_MSG_CHECKING(for Tk private include files)
+
+ case "${host}" in
+ *mingw32* | *windows32*)
+ TK_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/unix`\"
+ TK_WIN_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/win`\"
+ TK_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/generic`\"
+ TK_XLIB_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/xlib`\"
+ TK_PLATFORM_DIR_NATIVE=${TK_WIN_DIR_NATIVE}
+
+ TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE} -I${TK_XLIB_DIR_NATIVE}"
+ ;;
+ *)
+ TK_GENERIC_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/generic'
+ TK_UNIX_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/unix'
+ TK_WIN_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/win'
+ TK_PLATFORM_DIR_NATIVE=${TK_UNIX_DIR_NATIVE}
+
+ TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}"
+ ;;
+ esac
+
+ AC_SUBST(TK_UNIX_DIR_NATIVE)
+ AC_SUBST(TK_WIN_DIR_NATIVE)
+ AC_SUBST(TK_GENERIC_DIR_NATIVE)
+ AC_SUBST(TK_XLIB_DIR_NATIVE)
+ AC_SUBST(TK_PLATFORM_DIR_NATIVE)
+
+ AC_SUBST(TK_INCLUDES)
+ AC_MSG_RESULT(Using srcdir found in tkConfig.sh)
+])