From owner-freebsd-hackers Mon Dec 1 15:18:01 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id PAA01463 for hackers-outgoing; Mon, 1 Dec 1997 15:18:01 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from rhiannon.clari.net.au (rhiannon.clari.net.au [203.27.85.9]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id PAA01451 for ; Mon, 1 Dec 1997 15:17:52 -0800 (PST) (envelope-from peter@rhiannon.clari.net.au) Received: (from root@localhost) by rhiannon.clari.net.au (8.8.5/8.8.5) id KAA13463; Tue, 2 Dec 1997 10:17:43 +1100 (EST) Date: Tue, 2 Dec 1997 10:17:43 +1100 (EST) From: Peter Hawkins Message-Id: <199712012317.KAA13463@rhiannon.clari.net.au> To: freebsd-hackers@freebsd.org Subject: GUI wizard interface Cc: danny@hilink.com.au, j@uriah.heep.sax.de, peter@rhiannon.clari.net.au Sender: owner-freebsd-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I have almost finished writing the first release of a new library intended to make it very easy to put a graphical front end on wizards and managemant tools. Basically all you need to do is write your back end, then define a finite state machine to interface it. The latter is a 5 minute job. You then call the library with a single but fairly versatile and extendable syntax with an option either to: 1. display via ncurses 2. display via X11 3. Have the library spawn of a specially tailored HTTPD on a port of your choice and connect to your tool via your browser. This httpd draws its windows by counting spaces rather than with frames so lynx works fine. It has the ability to keep logs on who connects from where and (shortly) will enable passwording - currently I use ipfw to restrict access. Images it uses are compiled into the library itself so there is no need to maintain multiple files and the images are used by the X11 interface in the form of X bitmaps (again inside the library). To whatever extent is possible it uses the lowest common denominator (very basic html etc) and provides as similar an appearance on any of the displays as it can. Also the interface for driving it in any display mode is identical - in httpd mode, it stores information sent to it when you call it so that it is able to send it when someone connects later. In this way, it maintains the appearance to your code of being called from your library then returning a result for your code to continue. I would like comments on this and in particular, I would be interested to see if there is interest in using it to provide a similar look and feel for management utilities under FreeBSD (though the code is portable). Please note that I believe that with the gui end "in the bag", the whipping up of your favorite tool is likely to be a damn side easier so that they're likely to proliferate. Peter