From: ks@cs.tut.fi (Syst{ Kari)
Newsgroups: comp.windows.x,comp.windows.news
Subject: Help me in choosing a new toolkit to replace TNT
Date: 20 Nov 92 10:56:13
Organization: Tampere Univ. of Technology, Finland.
Distribution: comp
NNTP-Posting-Host: karikukko.cs.tut.fi


I'm now convinced that Sun will drop NeWS and TNT. (We should have a
silent moment to honour NeWS and not so silent moment to discus
with Sun :-)

I hope that you could give me information about possible X-based
toolkits that could be used to port my application. I'm adding a quite
long description of our tool. I hope that some of you will have the time
to look at that description in order to understand my requirements.

My wish list is the following:

 * Object oriented structure (see example below)
 * A nice way to define new "widgets" (see example below)
 * OpenLook look&feel. At least it should be color-based and 3D.
 * Lightweight processes.
 * A nice way to create good hard-copies. In the NeWS-version I used
   the same ps-code that created the display images.
 * Source code or guarantee that it will last for the next 5-10 years.
 * Low price
 * No licensing problems if we share the resulting tool with others

The problem is to port a NeWS-based application to X11. My current impression
is that we should use a C++-based toolkit. I'm going to look more carefully
at least OI (from Soulbourne) and InterViews.

The tool is a graphical animation and execution environment for executable
specifications. So far we have been quite happy with NeWS, but now it seems
that NeWS is dying, we have to port the application.


The tool consists of a mainwindow and of about 10 different popup windows.
The popups are quite normal windows with sliders, textfields etc.
The difficult task in converting the tool is an "animation" display,
for which we have a the following class hierarchy:


			 ClassCanvas (a part of NeWS distribution)
                             |
                             |
                          DisCoItem
                             |
                             |
     +-----------------------+---------+----------+-----------+
     |                       |         |          |           |
  ActionSymbolItem      ActionItem  ClassItem  ObjectItem   State
                                                              |
                                               +--------------+
                                               |              |
                                            OrState        AndState


The animation display consist of instances of these clases and from
connecting lines between instances.

The objects are used both to display state and changes in the specification,
and for user interaction. For instance an action looks like the following:

               +--------------------------------+
               |        action name             |
               +----------------+---------------+
               | role-name      | role-name     |
               +----------------+---------------+

(The number of "role-name" boxes varies from 1 to n, typical values 1-3)

This action-object is sensitive to mouse button as follows:

  * RIGHT:  a popup menu a displayed. Several operations concerning this
            action are available.
  * MIDDLE: action is dragged to a new place. As a result all connecting
            lines are updated, and the new place is sent to the application.
            (This operation is inherited from class DisCoItem.)
  * LEFT:   a select event is sent to the application. The event is different
            for all subareas of the action.

--
% This article represents my personal views.
% Kari Systa, Tampere Univ. Technology, Box 553, 33101 Tampere, Finland
% work: +358 31 162585      fax: +358 31 162913      home: +358 31 177412
% Internet: ks@cs.tut.fi    X.400: C=fi ADMD=fumail O=TUT OU=CS S=ks
Newsgroups: comp.windows.x