[r6rs-discuss] Standard GUI Library

From: Brian C. Barnes <bcbarnes>
Date: Mon, 4 Jun 2007 06:30:26 -0500

I think I would rather see the time spent on standardizing on a method of
accessing existing GUI (and other) libraries.

 

Brian.

 

From: r6rs-discuss-bounces at lists.r6rs.org
[mailto:r6rs-discuss-bounces at lists.r6rs.org] On Behalf Of Erich Rast
Sent: Monday, June 04, 2007 05:08
To: r6rs-discuss at lists.r6rs.org
Subject: [r6rs-discuss] Standard GUI Library

 

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/68e46bbc/attachment.htm
Received on Mon Jun 04 2007 - 07:30:26 UTC

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