The TkMegaWidget extension Copyright (c) 1993 by Sven Delmas All rights reserved. See the file COPYRIGHT for the copyright notes. Changes: -------- - Enhanced configuration - Support for shared libs - Some minor bug fixes What is TkMegaWidget ? ---------------------- This small extension to Tk allows the creation of widgets that are combined by other widgets. It is possible to attach options and minor commands to this new widget. The advantage of TkMegaWidget is that the parsing and evaluation are done in C, which makes the implementation much faster. It is also possible to use a private interpreter attached to the megawidget or groups of megawidgets. These private interpreters can load encrypted files, and can also use a private widget tree. Requirements: ------------- - The Tk-3.6 package (or newer ?). - The libdes library (part of the distribution). Calling configure: ------------------ When you call configure, several additional parameters allow the selection of new packages etc. Several packages allow the setting of additional subparameters. Setting one of these subparameters means that all default settings for the subparameters are ignored. So you have to list all required subparameters by hand. Most parameters are directly mapped to compiler options, so the configuration can also be adapted by changing the Makefile directly. The configuration reads the file "config.local", where the several default settings are defined. To keep a permanent setting for a certain wish, adapt this file call autoconf and keep it: -with-tkpixmap This adds the TkPixmap extension to the wish. There are several subparameters for this parameter: -with-tkpixmap-pinfo adds the pinfo(n) command to the interpreter -with-tkpixmap-uxpm adds the uxpm(n) command to the interpreter -with-tkpixmap-pixmaps includes the predefined pixmaps into the code -with-tkpixmap-xpm adds support of Xpm3 pixmaps. This requires the Xpm3 library. -with-tkpixmap-gif adds support of gif pictures. This support is restricted to the reading of gif pictures. Saving and the other commands available for Xpm3 are not supported for gif pictures. If someone has the required routines, please send them to me. -with-tkpixmap-raw256 adds support of raw 256x256 pixmaps -with-tkpixmap-dps adds support for dps on a server that supports display postscript -with-tksteal This adds the TkSteal extension to the wish. -with-tkmegawidget (default) This adds the TkMegaWidget extension to the wish. There are several subparameters for this parameter: -with-tkmegawidget-des adds the DES encryption library to the TkMegaWidget. -with-kanji This allows the building of a Kanji wish. You have to provide the already patched Tk source tree under the name ../tk3.6-jp (or ../tk3.6jp) and the patched Tcl source tree under the name ../tcl7.3-jp (or ../tcl7.3jp). -with-tkicon This adds the TkIcon extension to the wish. -with-tkmobal This adds the TkMobal extension to the wish. -with-blt This adds the BLT extension to the wish. Adding this feature makes it necessary to build and install the BLT package. -with-tclX This adds the TclX extension to the wish. Adding this feature makes it necessary to build and install the extended Tcl package. -with-tcldp This adds the Tcl-DP package to the wish. Adding this feature makes it necessary to build and install the tcl-dp package. -with-load This adds the dynamic loading package to the wish. Adding this feature makes it necessary to build the shells package. The shells package must be located in the same directory as the other extension packages under the name "shells". -with-noshlib Even if the system supports shared libraries, don't build them. Building a patched wish: ------------------------ - Please take a look into the "Portability" section at the bottom first. The installation may require a special handling for your system. - Unpack the Tk distribution. Build the Tk distribution as described in the Tk README. - Unpack the TkMegaWidget distribution in the same directory where you have unpacked the Tk distribution. Now change into the new TkMegaWidget directory. - Configure the distribution by running configure. And do all the things you usually do to get a working Tk. To select certain additional packages and perform other changes of the new wish, you can call configure with several parameters. Take a look into the configure section above for a detailed list. You should take care that the TK_LIBRARY path is valid. This means that you either use the path from a previous Tk installation, or you create the new path, and copy all Tk library files to that directory. - Prepare the source tree. This will copy the required files to the local directory. Then these files are patched (the protocol can be found in the files *.patch.out). This action is activated by typing: make prepare - Run configure again with the same parameters as before. This extra run is necessary, because "make prepare" may create new subdirectories with unconfigured Makefiles. - A new libtk will be built, as there are some minor problems with certain packages (especially with tcl-DP). This libtk is totally compatible with the previous libtk (the static and the shared version). So, I decided to install the library under the same name. If you do not want this, change the TK_LIB_NAME in the toplevel Makefile. - If you have selected DES support, the libdes library is built automatically. The library is not installed. This can be done manually. - Build the new wish. The new local libtk and the required local extension libraries are built. Finally the new wish is linked. If your system supports shared libraries, they will be generated automatically. As the position of shared libraries is usually very critical, the libraries are automatically installed in the final library directory when they are built. This makes it necessary that you have write permission for that directory. To build the new wish, type: make mega-wish - You can now install everything by typing this: make install This will install the new wish, the new library files and the new doc. By default, the library files are placed in the TK_LIBRARY directory. - To encrypt or decrypt files, you can use the small program called demo.TkMegaWidget/tkencrypt. - To see what the widgets can do for you, change to the directory named ./demo.TkMegaWidget and type "../wish/mega-wish -f tkMegaWidget1.tcl" (do this for all tcl files in the directory). Portability: ------------ General: - If you get an error message about an undefined symbol ___main, you have built your Tk libraries with gcc and the TkSteal code with cc. Please use the same compiler for both packages. - If the widgets do not work as expected under the new wish, maybe you have forgotten to adapt the TK_LIBRARY path in the Makefile, or you have not created the new TK_LIBRARY path with all Tk library files. Linux: - I have made some small changes to the libdes code to make it portable to Linux. Extended Tcl: - If you build the wish with extended Tcl, you have to set the TCL_LIBRARY path to the extended Tcl library path before you call the new wish. Availability: ------------- The TkMegaWidget distribution file is named TkMegaWidget3.6?.tar.gz or TkMegaWidget3.6?.tar.Z. The ? represents the current version. TkMegaWidget is available via anonymous ftp at: harbor.ecn.purdue.edu: pub/tcl/extensions/ ftp.ibp.fr: pub/tcl/contrib/extensions/ nic.funet.fi: pub/languages/tcl/extensions/ syd.dit.csiro.au: pub/tk/contrib/extensions/ ftp.cs.tu-berlin.de: pub/tcl/contrib/extensions/ To get a copy of it, just type the following: ftp ftp.cs.tu-berlin.de bin cd pub/tcl/extensions get TkMegaWidget3.6?.tar.gz To get a copy via ftpmail, just send the following mail to: mail-server@cs.tu-berlin.de To get a help message, send the following body: send HELP end To retrieve TkMegaWidget, send the following body: send pub/tcl/contrib/extensions/TkMegaWidget3.6?.tar.gz end Feedback (Author): ----------------- Sven Delmas TU Berlin, Germany garfield@cs.tu-berlin.de