[racket-dev] status of the new `racket/gui'

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon Aug 16 20:06:24 EDT 2010

The `racket/gui' re-implementation has improved over the past two
weeks. It's still not ready for everyday use or even bug reports, but
it's getting closer. The most visible difference is that controls and
canvases refresh and resize more cleanly. The least visible difference
is that a complete memory-management strategy is in place (e.g., unused
widgets are garbage-collected).

The code is still hosted here:

   http://github.com/mflatt/gr2

Beware that I occasionally pull with `--rebase' from the main Racket
repository and push to gr2 with `--force'.


Sam helpfully filled in a binding to the the Gtk file dialog. If anyone
is interested in helping further, here's my current wish list:

 * Standard file dialogs under Cocoa.

 * Enabling a canvas to serve as an OpenGL context.

 * Implement `printer-dc%' along with platform-specific printer and
   print-setup dialogs.


Some other things I'm still working on:

 * Display shortcut bindings in Gtk menus, get all keybindings working,
   and generally sort out the fine points of keyboard events.

 * Everything related to `cursor%'.

 * Make Cocoa `tab-panel%' look right in no-border mode (like in
   DrRacket's main window).

 * Sort out `register-collecting-blit', which is tough to reconcile
   both with implementing the binding in Racket and with a refresh
   model that effectively prohibits direct drawing onto the screen.

 * Smooth over the difference between platform-specific and
   platform-independent bitmap rendering.



Posted on the dev mailing list.