DOC "README" { ------------- -- obTcl -- ------------- v0.52 5/12/95 Description ----------- `obTcl' is a pure-Tcl object- and Megawidget-extension. No binary extensions are needed. The distribution comes with a demo which demonstrates some useful mega-widgets; among others a Tab widget (a.k.a Notebook widget), and a paned-window widget. The demo also contains a system for reading the obTcl documentation. The mega-widget support allows creation of mega-widgets which handle like ordinary Tk-widgets; i.e can be "packed", "deleted", "placed" etc, intermixed with ordinary Tk-widgets. The transparency of the mega-widget extension has been tested by automatically wrapping all normal Tk-widgets into objects and running the standard "widget" demo provided with Tk4.0. The system supports multiple inheritance, three new storage classes, and fully transparent Tk-megawidgets. Efficiency is obtained through method-resolution caching. obTcl provides instance variables and class variables. Two types of class class variables are provided: definition-class scoped, and instance-class scoped. Although obTcl is relatively efficient (considering its nature), it is not primarily intended for creating thousands of objects. Instead an obTcl-object can be used to keep track of a number of simpler structures. Pronunciation: `obTcl' sounds like "optical". To try it out ------------- First unzip and untar the distribution file. Then cd to "obtcl", and try one of: ./demo wish ./demo Installation ------------ No installation is necessary for testing obTcl. The env. variable OBTCL_LIBRARY can be used to point to the script-files, should they not be in the current directory. I will create a proper installation script if there is a demand. Files ----- Demo: demo - Starts a demo. Requires wish4.0 or later. wrap - Part of the demo. docs - Part of the demo. tabs - Part of the demo. panedw - Part of the demo. Object system: obtcl - Main file for object system (it sources the three files listed below). inherit.tcl - Inheritance related code base.tcl - Definitions for the Base and Widget classes utils.tcl - Utilities. Debugger, simple help/doc system, etc. Mega widgets: Tabs.tcl - Also known as a notebook widget. ScrText.tcl - Text with scrollbars and touched-up layout. PanedW.tcl - Paned window widget Layout.tcl - Experimental geometry manager. TkManText.tcl - Widget for reading tkman formatted text. Misc: Makefile - Makes crunched version of obTcl, etc. tcl_cruncher/* - A package for stripping tcl files. crunch_spec skip.awk - Used when creating a crunched obTcl. Documentation COPYRIGHT - Describes conditions for usage. README - This file. obTcl.* - Manual pages of various formatting. Bugs ---- None known so far, apart from some limits in the Mega-widgets (for example, Tabs may not look nice on greyscale displays). In general, the mega-widgets provided are mostly provided as examples (they should really be more complete). Also, as the version number indicates, some needed functionality may be lacking from obTcl. Plans ----- Proper manpages, or improved DOC system (which should combine in-code readability with pretty-rendering in the help system). Less sloppy Makefile. Etc, etc.. Why use a pure-Tcl OO-extension? -------------------------------- o It does not require any binary modules, so it runs on a vanilla `wish' or `tclsh'. o It can run in safe-Tcl o Having a small core with very powerful basic capabilities (wish), allows extensions to be expressed in terms of the core functionality. This saves internet bandwidth, and allows safe execution of untrusted code, provided that the core is certified. In comparison, each binary extension must be certified as safe separately. o Moving in this direction helps identifying a small set of useful additions to the core Tcl -additions which facilitates building higher-level Tcl-extensions efficiently. Availability ------------ Primary location: ftp://ftp.dynas.se/pub/tcl/obTcl.tar.gz Copyright --------- Copyright 1995 DynaSoft AB. The copyrights are very similar to those of Tcl/Tk. See the file COPYRIGHT for copyright information. Author ------ Please direct comments, ideas, complaints, etc. to: patrik@dynas.se Patrik Floding DynaSoft AB }