(fwd) ANNOUNCE: ClassyTcl 0.1.5: object system, widget set and GUI builder

Andrey Gerzhov (kittle@freeland.alex-ua.com)
Tue, 7 Jul 1998 15:47:34 +0300 (EEST)

-- forwarded message --
From: derijkp@uia.ua.ac.be (Peter.DeRijk)
Newsgroups: comp.lang.tcl
Subject: ANNOUNCE: ClassyTcl 0.1.5: object system, widget set and GUI builder
Date: 6 Jul 1998 19:58:18 +0100
Organization: University of Antwerp - UIA
Lines: 213
Message-ID: <35a1103a.0@news.uia.ac.be>
Reply-To: derijkp@uia-nospam.ua.ac.be
NNTP-Posting-Host: hnets.uia.ac.be
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: naxos.belnet.be 899749220 12493 143.169.254.1 (6 Jul 1998 18:20:20 GMT)
X-Complaints-To: abuse@belnet.be
NNTP-Posting-Date: 6 Jul 1998 18:20:20 GMT
X-Newsreader: TIN [version 1.2 PL2]
X-NNTP-Posting-Host: 143.169.5.2
Path: barmaglot.alex-ua.com!news.alexradio.kiev.ua!glukr!carrier.kiev.ua!botik.lucky.net!news.planetc.com!newsfeed.usit.net!news.vt.edu!solaris.cc.vt.edu!newsgate.duke.edu!nntprelay.mathworks.com!worldfeed.gte.net!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!newspeer.monmouth.com!news.belnet.be!news.uia.ac.be!derijkp
Xref: barmaglot.alex-ua.com comp.lang.tcl:3727

ClassyTcl
=========

Object system, widget set and GUI builder for Tcl
by Peter De Rijk (Universiteit Antwerpen)

What is ClassyTcl
-----------------

Object system

The first component of ClassyTcl is a dynamically loadable object system
for Tcl. A Tcl-only as well as a C implementation is available. It also
doesn't require patches to the Tcl core, so keeping up with new releases
should be easy. Performance is very adequate. The C version is gives extra
speed, and makes it possible to implement some methods in C.
In contrast to other Tcl object systems for Tcl, it is not modeled after
the object system designed for a completely different language such a C.
IMHO, it better follows the Tcl philosophy. The system is simple, but
flexible. Classes and objects are dynamic, and can easily be queried,
changed and debugged at runtime.

Gui Builder

The ClassyTcl Builder can be used to graphically create interfaces. It is
invoked via the cbuild command in the bin directory.

Widget Set

ClassyTcl adds a lot of improvements to Tk, ranging from drag and drop
support (between Tk apps) and a configuration system to a large set of new
widgets and commands, written using the object system. (see further for
full list)
While the object system itself only requires Tcl (>8.0), the widgets that
come with it require Tk (of course), and another freely available extension
called ExtraL. ExtraL also does not require compiled code, but can be
speeded up by having it available. Documentation for the widgets is often
somewhat limited, but besides the documentation, you can learn a lot from
sources, the tests and the demos.

Sample applications

The ClassyTcl distribution contains some example applications:

* cedit: This editor is actually very useable: I use it for all my
development
* ccalc: calculator; demo for the builder
* cdraw: vector drawing program
* ctester: app to test widgets
* cfiles: unfinished: very early stage file manager
* ccenter: unfinished: very early stage program manager

Version 0.1.5
-------------
This is the first public version of ClassyTcl. It is considered an alpha
release: Although it should work ok, several things have not been tested,
are not entirely finished, or might still change. Also, the packaging is
not ideal.

Use

---

You should be able to obtain the latest versions of ClassyTcl and ExtraL on our server rrna.uia.ac.be via WWW (http://rrna.uia.ac.be/classytcl and http://rrna.uia.ac.be/extral) or anonymous ftp (directory /pub/tcl). Both Extral and ClassyTcl are implemented as loadable packages.

The ClassyTcl object systen can be used by putting the directories (after unpacking and optionally compiling) somewhere appropriate and using the command package require Class To use the widgets that come with the distribution, use the code: tk appname name package require ClassyTcl The application name given by the "tk appname" will be used for managing defaults and configuration options.

To write a new application, you can try out the builder by starting the program cbuild in the bin directory.

ClassyTcl widgets and commands ------------------------------

Charts

* BarChart : Barchart that can be drawn on a canvas * BarChartDialog : Dialog presenting a barchart and several options for its display * ChartGrid : grid that can be displayed on canvas * LineChart : linechart class that can be drawn on a canvas * LineChartDialog : Dialog with a linechart and some controls to change its display

Common tools

* Balloon : help pops up when staying over a widget * CmdWidget : Tcl command line widget * Config : class used in the configuration system * Default : class (not a widget) used by the default mechanism Default * DefaultMenu : button with menu to select from user definable defaults * DragDrop : class for handling drag and drop to and from widgets * DynaMenu : Class used to easily create menus, that can be easily changed, and handle key-shortcuts * DynaTool : Toolbar widget: nice little buttons in a row * Help : Help widget

Dialogs

* Dialog : dialog with intelligent placing, easy adding of buttons, ... * FileSelect : Motif type File Selector Dialog: used by selectfile depending on configuration * InputDialog : Dialog with one entry * ProgressDialog : show progress of some proces in a dialog * SaveDialog : widget used by savefile * SelectDialog : make a selection out of a list * getcolor : select a color getcolor * getfont : returns a font selected by the user * savefile : select a file name to save a file to * selectfile : select a file to open * yorn : select yes or no * yornDialog : yes or no dialog: used by the command Classy::yorn

New widgets

* Browser : generic browser widget * Editor : reasonably advanced text editor in a widget * Fold : foldable frame * HTML : displays HTML * MultiFrame : placeholder for several frames * NoteBook : several sheets to be selected by clicking on tabs * OptionBox : select between different values * OptionMenu : select between different values using a menu * Paned : control the size of another widget * Progress : show progress of some process * Table : a table ... * Tree : a tree that can be drawn on a canvas * TreeWidget : a tree widget

Selectors

* ColorEntry : entry which shows color * ColorHSV : HSV color selection widget * ColorRGB : RGB color selection widget * ColorSample : Select a color from a number of sample colors * ColorSelect : color select widget: choose your method * FontSelect : to select a font * Selector : select relief, justify, ...

Tk improvements

* Canvas : Canvas with zoom, undo/redo, rotate,save and load, group * Entry : entry with label, constraints, command, defaultmenu * FileEntry : Classy::Entry with file browse button * ListBox : listbox with auto scroll bars, and other extras * Message : slightly improved message widget * MultiListbox : listbox with more than one line long entries * NumEntry : Classy::Entry limited to numbers, and with up and down buttons * RepeatButton : holding the button repeatidly executes it command * ScrolledFrame : frame with auto scroll bars * ScrolledText : ClassyTcl Text with auto scroll bars * Text : text widget with undo/redo and linking (~multiple views) * Toplevel : toplevel with geometry management and destroy command

How to contact me -----------------

My mailbox gets overwhelmed quite often, and the development of ClassyTcl is definately not my only task, so responses might be slower than you would like. However, I will respond as fast as I can.

Peter De Rijk University of Antwerp (UIA) Department of Biochemistry Universiteitsplein 1 B-2610 Antwerp

tel.: 32-03-820.23.16 fax: 32-03-820.22.48 E-mail: derijkp@uia.ua.ac.be web: http://rrna.uia.ac.be/~peter/personal/peter.html

Legalities

ClassyTcl is Copyright Peter De Rijk, University of Antwerp (UIA), 1995 The following terms apply to all files associated with the software unless explicitly disclaimed in individual files.

The author hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

--
Peter De Rijk			derijkp@uia.ua.ac.be
<a href="http://rrna.uia.ac.be/~peter/personal/peter.html">Peter</a>
To achieve the impossible, one must think the absurd.
to look where everyone else has looked, but to see what no one else has seen.
-- end of forwarded message --

-- 
С тем, что не помешает никогда,
                                               Kittle