Additional Installation Notes for the Gui

Benedict Gomes (gomes@icsi.berkeley.edu)
David Bailey (dbailey@icsi.berkeley.edu)
Matthias Ernst (tisi@beutlin.desy.de)

Back to the Gui Page

To install the Gui, first see the installation notes in Doc/Installation.html. Also see Doc/tcl_tk_notes.html for notes about run time problems and Tcl7.5/Tk4.1 incompatibilities.

Once the paths have been set correctly in System/Platforms/gui/XTclTkPaths.module, you can use the gui by providing the compiler with the -gui option

   cs -main DEMO1 -gui -o demo
Then run it with ./demo

Potential Sources of Bugs

See the document Doc/tcl_tk_notes.html

Debugging and Reporting Bugs

If you have a problem in getting the Gui to work with any of the demos, please set the debug flags to "true"
in System/Platforms/gui/TclCode/gui_setup.tcl:
sather server_debug false	
sather server_tcldebug false

in System/Platforms/gui/TclCode/gui_post_socket_init.tcl:
sather app_debug false
sather app_tcldebug false

The Dual Process Gui

This is a more complex version, that uses two communicating processes over a sockets (which is useful for many reasons, not the least of which is better performance over a slow network). The server end is linked with the tk/tcl libraries while the user's client program only has to link with the Gui code and socket libraries.

To install the dual process gui, see the notes in Doc/Installation.html. The gui server is created by the rule "make Gui" in the Makefile

Note that the Raster widget as well as demo2 cannot be used with -dualgui

You are now ready to use the gui with your programs. To try out the demos compile with the -dualgui option. You will probably also need to specify one of the unix platforms to get sockets working

   cs -main DEMO1 -dualgui -o demo
Then run it with ./demo

The Module Structure of the Gui

Is there some more graceful way to use the Gui than having a line like
> 
> 	/u/sather/distribution/sos5/Sather/Library/System/Gui/Gui.module
> 
> in one's module file?  Ideally it wouldn't need to be mentioned at all,
> like other library classes.  But if it must be mentioned, is there a 
> way to at least say $(SATHER_HOME)/Library/System/Gui/Gui.module?
> 
The latter is possible. However you should not have to do this. For the gui to work all you should have to say -gui OR -dualgui. You should never have to deal with the following nesting of module files, but it is described here if you have to debug something:

System.module is not like the other modules in Library or pLibrary. It does not include the modules of its subdirectories. The modules in those subdirectories get auto-included by particular Platform modules. I've also removed the SATHER_GUI_HOME variable since it seemed less meaningful to treat the Gui directory as a separate entity since the server executable is in a different place, System/Platforms/dualgui/dual_gui_server