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 demoThen run it with ./demo
Potential Sources of Bugs
See the document
Doc/tcl_tk_notes.html
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
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 demoThen run it with ./demo
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