***************************************************************************** * GoPATH Version 1.2.0 * * * * *** R E L E A S E N O T E *** * * * ***************************************************************************** GoPATH Version 1.2.0: Dec 31st, 1992 PREAMBLE GoPATH is the new name of what we previously called Go. Like Go, GoPATH components include a set of libraries (for graphical application developpement) still called "Go" libraries, a set of editors (for graphical presentation design) called "Go companions" and the documentation. In order to promote GoPATH, a part of it is distributed on the network with a restrictive copyright (see file Copyright of the distribution). Any commercial use of GoPATH is controlled by a license. At the end of this note, restrictions concerning the public release are listed. -+-+-+-+- This Go release runs on top of X.V11R4 and MS-Windows 3.1 and has been generated on: Hardware OS Compiler ---------------------------------------- Sun4/60 SunOS 4.1.1 g++ 2.1 Sun4/60 SunOS 4.1.1 C++ 2.1 Bull/486 SCO 3.2 g++ 2.1 Bull/Zenith 486 MS-Windows MS-C/C++ 7.0 Bull/Zenith 486 MS-Windows Borland 3.0 Bull/DPX20 BOSX 3.2 g++ 2.3.0 SGI/Indigo IRIS 4.0.5 g++ 2.2.2 SGI/Indigo IRIS 4.0.5 C++ 2.1 Note that GoPATH has been test on an X.V11R5 server and takes advantages of the scalable fonts. -+-+-+-+- The complete version source volume is about 14 Mb, the public one is about 9 Mb. The documentation volume (fully available in the public release) is about 2,3 Mb. -+-+-+-+- Major features coming with the 1.2.0 release are: Go librairies ============= o New GoUI: Go User Interactions have been rewritten! Here we have broken the compatibility with Go-1.1. The term GoUI now represents both the "Go User Interaction Toolkit" and the GoUI class. The Go User Interaction Toolkit includes the following basic classes: - GoSensor: This object class allows to define sensitive areas (areas interested by user events). GoSensor subclasses which are Gos can graphically show the sensitive areas (see GoHyper). When receiving an event (from a GoUI instance), GoSensor starts an interaction (if not already started) and sends the event to it. - GoUI: There is one GoUI instance per GoInterf (window). It is responsible for dispatching events to sensors. It also manages sensor asking for the keyboard focus or grabs, and generates "Enter/LeaveSensor" events. - GInteractor: This object class is the execution context of an interaction. A GInteractor executes an interaction program (GInteractorPgm). The GInteractor class is an abstract class. For example GGrabber and GTranslator classes are subclasses of GInteractor. - GInteractorPgm: This object class is the abstract class for the interaction program class. A GInteractorPgm subclass can be a C++ program or a piece of interpretable code like the simple GoUI language for event translation or Wool for more sophisticated interactions (not yet available). o GoStreams: A portable binary format (GoBinary) is now available. It allows to reduce the disk or memory space (up to 75%) and the coding/encoding time. It is used by default for the "cut/copy/paste" operations. o GoInterf: Double click for XGoInterf, scalable fonts with X.V11R5. o GoTextual extensions: non-textual segments, it is now possible to include images, geometric objects, ... in a text object. These non-textual segments follow the textual behavior. extra-baseline: this functionality provides capabilities for indiced or exponentiated segments (useful in mathematical formulae, trade mark notations, ...) style management: this allows to define style objects which are used to highlight text segments on the textual objects. Style attributes include: font, color, underline position/color/thickness, extra-baseline, ... margins (top, bottom, left, right) merging and extracting functions o New Text Formatters: Formatter objects are available in order to fill Text objects in: a list of boxes several columns a circle These formatters inherits capabilities (justification, international hyphenation, presentation, ...). o Application Oriented Objects (Extensions library): A new library, called "Go Extensions", comes with GoPATH 1.2.0. It contains application oriented objects for minimizing the Go based application development effort. These objects includes: Clipboard Interface (cut/copy/paste support), Converters (export/import support), Filters (TIFF, GIF), GoEditors (base for writing Go Editors) ResEditor (base for writing Resource Editors) Help (help support) o Xb Widgets (Unix version): Some Motif(tm) widgets have been developed to be used in some Go Companions, they are gathered in the libXb.a library. Go Companions ============= o godraw: Clipboard management Binary streams management New object interactions o gohyper: Sensor editor. Allows to create sensitive areas on top of graphical object and edit a script as the behavior. o gowrite: Text editor. Allows sophisticated text formatting using Formatter objects. o gopen: Pen editor. Allows to create named or unamed Pens and to manage Pen dictionaries. Copy/Paste can be used in conjunction with applications. o gocolor: Color editor. Allows to create named or unamed colors and to manage Color dictionaries. Copy/Paste can be used in conjunction with applications. On X/Unix, the rgb.txt format is managed. o godash: Dash editor. Allows to create named or unamed dashes and to manage Dash dictionaries. Copy/Paste can be used in conjunction with applications. Scripts ====== o CreateGoClass is a script allowing to create the skeleton (.cc and .h files) of a Go subclass including the Metaclass. -+-+-+-+- Uncompatibilities with Go-1.1: The only uncompatibility between Go-1.1 and GoPATH 1.2 is GoUI. A document (src/doc/Papers/old-new-GoUI) gives the way to move from the old GoUI to the new one. The GoSensor format in the GoStream has been modified. If some GoSensors exist in your ASCII GoStream remove them (by using your prefered editor). -+-+-+-+- Further extensions: o GoInterf class: The cursor management is not complete. o XGoInterf class does not support DTriple click Images with bit_per_pixel which is not 1 or 8. o Resource Editors: gobrush, gotextbrush, o Go Editors: gopaint o Go Desktop: some utilities integrated in a desktop (clipboard, converter, print, ...). o Filters: Simple popular formats like XPM or PCX, and JPEG compression. o Graphic widget: XmNeditable resource is not implemented. o PostScript interface is incomplete (some level2 capabilities need to be simulated). Bugs: The following bugs will fixed with patches. o On-Line Help is not yet available in GoWrite, GoPen, GoDash, GoColor. o Revision of the Go Advanced Programmer's Manual. o Some ergonomic unconsistencies in Go Editors, o Link errors when linking examples on Sun4/60 with C++ 2.1 using shared libraries. It is possible to link by calling the XtToolkitInitialize() function at the beginning of the main(). o -+-+-+-+- GoPATH 1.2.0 Public Release: The GoPATH 1.2.0 Public Release functionalities are similar to the functionalities available in Go-1.1, so people who started to work with Go-1.1 will be able to continue their work (except for some text capabilities). The public release restrictions: Go Kernel: GoBinary: portable binary coding for GoStream. It allows to reduce the disk/memory space and increase the time coding/ encoding. Predefined Go's: Some GoText extensions: - sophisticated formatters: multicolumn, multibox, circle. The single column formatter is still delivered. - non-textual segments: the capability to include non-textual segments (images, geometric objects, ...) in a GoText is not delivered. - indiced or exponentiated segments, this capability is useful for mathematical formulae for example. - style management for text segment highlighting The GoScrolledText (no more delivered): This text object allows to scroll characters (horizontally) or lines and pages (vertically). This object is useful in tabular or spread sheet cells. Application oriented objects (extension library): This library containting objects for minimizing the Go based application development (clipboard interface, converters and filters, go editors and resource editors, sensor for hypermedia, ...) is NOT delivered except: - Converters to/from Ascii GoStream files, - Filter from GIF format. Xb Widget library: Some widgets have been developed for Go Companions, they are not delivered. Go Editors: Only GoDraw is delivered . Meanwhile, inter-application communication, GoBinary exporting/importing capabilities, GoScrolledText and Multi-column Text are no more supported on the public release. C Binding: The C Binding is not part of the public release. Documentation: No restriction. PC (MS-Windows 3.1) version is not part of the public release.