[r6rs-discuss] Standard GUI Library

Erich Rast erich at snafu.de
Mon Jun 4 06:07:49 EDT 2007


Dear fellow Schemers,

I'm new to the R6RS discussion list and would like to make an  
informal comment only, as I figure it might be too late in the  
standard process to take my suggestion into account. I'd like to see  
Scheme become a `mainstream' language outside the academic  
environment, and I believe that the standard library document should  
therefore specify an optional, but rich common GUI toolkit and  
perhaps also a System library.

SGUI: Scheme GUI Toolkit

The SGUI library provides functions and datastructures for creating  
applcations with graphical user interface. User interfaces created  
with SGUI may have a platform-dependent look-and-feel, but behave  
similarly and provide equivalent functionality on different  
platforms. SGUI allows for the creation and handling of the following  
common user interface objects:

* reading, writing, and displaying png and jpg images with support  
for transparency
* drawing primitives for drawing lines, rectangles, ovals, polygons,  
and curves in images
* colors
* windows
* menu bars
* menus and popup menus
* checkboxes
* radio buttons
* tab panes
* push buttons
* styled, non-editable text labels
* layout management
* support for complying with platform-dependent layout guidlines
* styled user-editable text fields
* user-editable multi-line styled text fields with enhanced editor  
functionality and styled text
* handling of text styles and fonts
* alert and message dialogs with native `look-and-feel'
* single and multi-line listboxes

(this list might be incomplete)

There is also a need for a standardized way to access various  
platform-dependent data and events such as system tray, application  
name, minimal support for system events like Quit, Open, and Print  
events on OS X, common system paths (aplication, user, temporary  
files, preferences directories), obtaining screen size and  
resolution, switching to full-screen display. This could reside in  
another library System and could also be the place for an FFI.

Of course, it's a lot of work and might have been discussed (and  
rejected?) earlier. However, the more of this is specified by  
optional standard libraries, the better. Over the years it has become  
my impression that easy and portable access to standard GUI toolkits  
and other platform-specific functionality needed for writing  
graphical end-user applications is the main reason why a language  
becomes widely popular. Moreover, I believe that it is a mistake to  
opt for minimality when it comes to platform support. Within  
reasonable bounds, the GUI abstraction layer should be as exhaustive  
as possible, because the more it is standardized now, the less of a  
mess it will become later. (It should always be possible to test  
whether some feature in SGUI and System is available.)

Given the size of the task, perhaps a separate standardisation  
process would be needed for GUI and System standard libraries.  
Anyway, R6RS would vastly benefit from those libraries---even if  
there wasn't even a single implementation supporting them at the  
beginning.

Best regards,

Erich

-----
Erich Rast, Ph.D.  / Torstr. 80 / 10119 Berlin / Germany
phone (+49)(0)30 657 08 609 / email erich at snafu.de


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.r6rs.org/pipermail/r6rs-discuss/attachments/20070604/494ab21c/attachment.htm 


More information about the r6rs-discuss mailing list