ANNOUNCEMENT (18th October 2003):

What is SATGUI

SATGUI is a framework in which (Microsoft -or- X) Windows Client / Unix Server applications can be developed. SATGUI is intended for small/simple applications with a reletively small user base, where the heavy-weight development tools from the likes of Oracle/Ingres are too expensive/bloated/complex.

With this in mind SAT was developed using the following guidelines:-

No (Microsoft -or- X) Windows development skills are required. Any programmer with a reasonable grasp of Unix shell script can produce useful applications with the minimum of fuss. Take a look at the demo application to see just how easy SATGUI is.

SAT applications can be written in most Unix character based languages; C, Shell script, Perl etc. To produce SQL based database applications the SAT package includes a filter to simplify interfacing SAT with the MySQL database system.

The UNIX components of SATGUI are implemented as scripts for easy portability.

How SATGUI works

SATGUI uses a very thin client architecture similar in concept to the HTML Server/Browser, though to be honest, the actual inspiration came from the ultimate and earliest thin client implementation - The Mainframe.

SATGUI is intended to be used in a private network (intranet/dial-up) environment for the development of small scale (Microsoft -or X) Windows Client/Unix Server applications.

Why use SATGUI if the concept is so similar to the HTML Server/Browser?

HTML was designed as an environment in which to store and navigate hypertext documents. Over the years functionality has been added to HTML to enable it to be used as a client for interactive applicaions. However, the basic framework of HTML is still a hypertext system. The applications are, on the whole, obviously Web based and lack a native "look and feel".

SATGUI has been developed from the outset as an environment for creating applications. The SATGUI Display Language (SAT/DL) is very simple, and as with HTML applications, can be used in conjunction with back-end applications written in a variety of languages.

A SATGUI application is composed from a set of screens and processes. The screens define the layout of the window, while the processes are associated with the activation of certain screen Items (Buttons, Listbox selections etc). Screens/Processes are equivalent to HTML Documents/CGI Scipts.

Release Status

SATGUI is currently at release 1.00.00

System Requirements

The client executables have been tested under Windows 98, NT4 and Linux. The client source (which requires TCL/TK 8.3 or greater) has been tested under Windows 98, NT4, Linux, Solaris and AIX.

The GUI server source code requires TCL 8.0 or greater.

NOTE: TCL is not required when using the Linux executables.

The client development tool executables have been tested under Windows 98, NT4 and Linux. The client source (which requires TCL/TK 8.3 or greater) has been tested under Windows 98, NT4, Solaris and AIX.

NOTE: TCL information and download can be found at Tcl Developer Xchange.

SATGUI Components

The SATGUI (Client) and SATGUITOOL (Interactive development tool) are now released as a single executable/script (SATUNI - "SAT Unified"). Making a copy of the SATUNI executable/script to a name begining with "satgui" will create SATGUI. Likewise making a copy to a name begining "satguitool" will create SATGUITOOL.


Any of the following will behave as SATGUI: "satgui", "satgui.tcl", "satgui.latest", "satgui-1.00.00"

Note: SATUNI also provides SATSHELL/SATDLTOOL functionality.

satuni (Linux)
satuni.exe (Windows)
satuni.tcl (Source)
SATGUI Client and SATGUITOOL. Executes SATGUI Display Language (SAT/DL) commands to create user interface. The behaviour of these executables/scripts depends on the filename used (See above).
satguisvr (Linux)
satguisvr.tcl (Source)
SATGUI Server. Server to which SATGUI clients connect. The SATGUI server handles communication with all clients using a SAT application. Each SAT application requires its own copy of SATGUISVR to be running.
satguistart (Script) SATGUI Server startup script. Reads configuration file and starts SATGUISVR with the appropriate parameters.


To extract the Unix "tar" files

Client and Tool
The directory location of the SATUNI (satuni|satuni.exe|satuni.tcl) is not important, but it is suggested that it be placed in C:\Program Files\SATiSOFT (Windows) -or- /usr/local/bin (Unix).

If the source code version is to be used under Unix, the first line of satuni.tcl...


...will probably need to be changed to reflect the location of the wish (TCL/TK) interpreter on your system.

Make two copies of of this file, in the chosen directory location, one with a name begining "satgui" (This will be the client) and the other begining "satguitool" (This will be the interactive development tool).

The directory location of the SAT Server files (satguisvr|satguisvr.tcl and satguistart) is not important, but it is suggested that they be placed in the /usr/local/bin directory.

If the source code version is to be used under Unix, the first line of satguisvr.tcl...


...will probably need to be changed to reflect the location of the tcl (TCL) interpreter on your system. Also, it will be be necessary to either: Rename satguisvr.tcl to satguisvr -or- Edit satguistart and change the reference to satguisvr to satguisvr.tcl.

Release History

1.00.0010/2003 Handles multiple (child) windows.
New addText command.
New gotoLabel command.
New hide command.
New newWindow command.
New placeItem command.
New placeWindow command.
New updateItem command.
New toolbar options.
Group functionality added to most display items.
Borders can now be used as item containers.
Hidden column facility for addMultiList.
Translation now works with addLabel text.
More control over colour options.
Addtional internal variables.
Grids can now contain check/radiobuttons and support titled border.
Large selection of colour icons for buttons and toolbar.
Many other minor enhancements.
Beta505/2002 Fixes "Pick List" known bugs.
Beta412/2001 New addGrid command.
New addHotKey command.
New addPickList command.
New setFocus command.
New setItemState command.
New Translations (Basic multi-language support).
New Screen Save/Restore facility.
New Internal Variables.
New init action.
New Security option to allow connection without login.
Profiles may now use wildcards.
Extra colour and relief options added to some commands.
Literal (Constant) values can be passed as parameters to actions.
Only entry items get focus when using the "Tab" key to navigate screen.
Beta312/2001 Not released.
Beta212/2001 Not released.
Beta104/2001 Server Administration/Monitor/Control GUI.
Toolbar support (With balloon help).
Pop-up action confirmation dialog support.
New inverse/bold/title/green/yellow options for addLabel.
New green/yellow options for setMessage.
Facility to pass specified column of MultiList as parameter.
Connection failure tidied up.
Bug fixes.
Alpha302/2001 Adds Menubar support.
Alpha211/2000 Fixes addCheckButtons (Invalid command name "sey") bug.
Alpha110/2000 First public release. Due to lack of resources it has not been possible to perform thorough multi-user testing. I am therefore, very interested to hear from anybody who has tried SATGUI with a number of users, the good and the bad!

Known Bugs

ReleaseBugFixed in
Beta4 Bugs in "Pick List". Does not always withdraw properly. Sometimes generates error dialog under Linux.
Alpha3 Problem which can sometimes cause SAT/DL commands to be executed of of sequence.
Problem creating screens smaller than login screen.
Alpha1 SATGUI client/tool addCheckButtons (Invalid command name "sey"). Alpha2

Copyright © 2003 Adrian Davis.