[r6rs-discuss] Standard GUI Library

From: Erich Rast <erich>
Date: Mon, 4 Jun 2007 12:07:49 +0200

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
Received on Mon Jun 04 2007 - 06:07:49 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC