Jochen Schmidt <jsc@dataheaven.de> wrote:
+---------------
| So why not building a GUI-Server in wxWindows - which would run nice on
| win32, Linux(Motif), Linux(GTK) and so far I know on BeOS and MacOS too.
+---------------
This is exactly why the Rice PLT group chose wxWindows for their
"MrEd" <URL:http://www.cs.rice.edu/CS/PLT/packages/mred/index.html>
GUI application toolkit (upon which the "DrScheme" development & teaching
environment is built). MrEd runs on all of Windows 95/98/NT/2000, MacOS,
and Unix/X (including Linux here as a "Unix").[*] It provides:
- A windowing toolbox for creating windows and menus
- A drawing toolbox for drawing to windows, bitmaps,
and printer devices
- An editor toolbox for creating multimedia editors
MrEd's GUI toolbox is integrated with a thread system.
MrEd dispatches each GUI event to the handler thread via
synchronous (single-threaded) callback procedures, but
MrEd also supports multiple eventspaces, which permit
asynchronous (multi-threaded) event handling among
different sets of windows.
MrEd's underlying Scheme engine, "MzScheme", provides a fairly typical
interface to TCP/IP networking, so hooking a Common Lisp application
to a MrEd-based GUI over sockets should be relatively straightforward.
The *real* question is going to be the protocol between the CL application
and a MrEd-based GUI. I don't mean the syntax -- you can certainly use
S-exprs & READ [though one would of course want to stick to the common
subset of the CL & Scheme S-exprs syntaxes] -- I mean the semantics.
There's the inevitable question of trading off simplicity of interface
(which many presume to equate with portability, though that's really a
*different* issue) versus exposing the full functionality (or most of it)
of the backend GUI. Look at this and you'll see what I'm talking about:
<URL:http://www.cs.rice.edu/CS/PLT/packages/doc/mred/index.htm>
The good news is that there's a lot more than Tk there.
The bad news is that there's a lot more than Tk there. ;-} ;-}
+---------------
| I would prefer a very simple approuch like LispWorks CAPI (or simpler
| for the beginnigs). IMHO if we concentrate on simplicity we could
| have it in _very_ short time.
+---------------
Suggestion: Start by defining the protocol. Then publish it for comments.
-Rob
[*] While MzScheme itself does run on BeOS [and even on "bare" x86
PCs, as a kernel based on Utahs' "OSKit"], unfortunately MrEd doesn't,
at least not as distributed. If, as you say, wxWindows *does* run on
BeOS, it might be possible to port MrEd fairly straightforwardly
(though note that the wxWindows which MrEd uses has diverged somewhat
from Julian Smart's original version).
-----
Rob Warnock, 31-2-510 rpw3@sgi.com
Network Engineering http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
1600 Amphitheatre Pkwy. PP-ASEL-IA
Mountain View, CA 94043