Welcome to the MUX-Window Programming Guide! I hope you find this guide useful and enlightening.
This document covers the basics of programming in the MUX-Window System. Throughout this guide, I'll show you how to get things done, and get them done immediately.
The MUX-Window Programming Guide is not a reference, but a tutorial. It is assumed that the reader has a working knowledge of the Action! programming language. If you do not know Action!, I suggest you learn it before trying to tackle your own programs, but simply knowing how to get a pre-written program compiled and running is enough to use the examples in this guide.
There are a number of reasons to use the MUX-Window System:
The MUX-Window System supplies tools to create a smooth and flexible user interface. This decade is one where users are growing accustomed to window-style interfaces. Graphical interfaces are easier to learn and use than text interfaces. The successes of the Commodore Amiga, Apple Macintosh, X Window System, MS-Windows and Atari ST are all proof of this. Although one could claim that MUX-Window is simply a part of the trend toward windowing systems, it has more flexibility than many of the fore-mentioned systems.
This is because, to a large extent, those less flexible systems are tied to a single hardware environment and a single vendor. At this writing, the only Window Manager for MUX-Window is our (New Breed Software's) "MUX-W", but this interface is easily replace with any other interface. Also, the MUX-Window System, although currently tied to the Atari Classic line of computers, even has the potential of becoming multi-platform!
By separating the window manager and the protocol, it would be possible to link together many different makes of hardware without costly emulation cards or software. Because the user interface is simply making MUX-Window calls, there's no reliance on any Operating System.
This is all because of the design; provide machanism, not policy. The software designer and the user have the final say on how the interface will look.
The MUX-Window System allows devices such as mice, joysticks, keyboards, and of course graphics displays to be shared by several programs simultaneously.
Now that I've told you why the MUX-Window System is such a great interface, I'll explain some of the conceptual details of the system.
The MUX-Window architecture is a simple client/server system where the display "server" is what controls and draws output and intercepts user input, while "clients" are the applications that perform specific tasks (word processing, desk top publishing, file management, etc.) The MUX-Window system distributes processing: the clients are running on seperate machines networked to the server.
In most cases, client/server relationships are thought of in completely opposite terms than this. Clients (programs AND the interface) share userless resources like printers and disk drives.
A server, or "display" is a keyboard, pointing device (mouse, joystick, etc.), and a screen. The server keeps track of multiple inputs from the clients, allowing the user to run many clients at once.
The server:
Currently, the main development language for MUX-Window client applications is Action!. The MUX Action! Library is a collection of functions and procedures which simply send calls (in the MUX-Protocol) out to the server over the network and returns any results.
The MUX Action! Toolkits also add more complex functions and procedures which are not actually part of the MUX-Protocol. These include creating and managing buttons, scrollbars and text areas.
[ UNDER CONSTRUCTION ]