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
}