[racket-dev] status of the new `racket/gui'
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.