Monday, August 20, 2007

Graphic-Forms version 0.8.0

Release 0.8.0 of Graphic-Forms, a Common Lisp library for Windows GUI programming, is now available. The API and feature set is still evolving, so this is still another alpha release.

New in this release:

- Added a new macro GFW:DEFMENU2 and associated function GFW:MAKE-MENU to allow applications to create reusable menu factories.

- Latest CFFI is required to take advantage of built-in support for the stdcall calling convention as well as improved interface for defining foreign types and translators.

- Integrated patch submitted by Leon van Dyk that enables dialog-only applications. The GFT::STANDALONE-DIALOG function demonstrates this feature, but NOTE that when this is invoked from SLIME, an old problem reappears where the dialog is not initially visible; however, the same demo run directly from the REPL works OK.

- Ported the library to Allegro CL 8.0.

- Upgraded to LispWorks 5.0.1 (note: 4.4.6 is no longer supported)

- Implemented GFW:STATUS-BAR which currently allow a single text field. Multi-part status bars, and nested widget support, will be added in a future release.

- Implemented GFW:PROGRESS-BAR, which provides visual progress feedback. This control can be configured for horizontal or vertical orientation, and can display a segmented or continuous indicator.

- Simplified the mechanism for specifying fixed, non-resizable windows by adding a new GFW:TOP-LEVEL style called :FIXED-SIZE and enhancing GFW:PACK to do the right thing if that style flag has been specified.

- Greatly expanded the symbols for accessing predefined colors, and now provide access to system color settings in a similar manner.

- Implemented a new graphics context function GFG:CLEAR that is a convenient way to fill a window or image with a background color.

- GFS:OBTAIN-SYSTEM-METRICS now includes version information for comctl32.dll and shell32.dll.

The README.txt file in the release zip file also has additional important information about this release.

Download the release zip file here:
http://prdownloads.sourceforge.net/graphic-forms/graphic-forms-0.8.0.zip?download

The project website is:
http://common-lisp.net/project/graphic-forms/

Jack Unrue
jdunrue (at) gmail (dot) com
20 August 2007

2 comments:

malkia said...

Good stuff Jack!

For some reason I can't get it to run on my Professional LW 5.0.2

It gives me this:
; (METHOD CFFI:TRANSLATE-TO-FOREIGN (GRAPHIC-FORMS.UITOOLKIT.SYSTEM:RECTANGLE GRAPHIC-FORMS.UITOOLKIT.SYSTEM::RECT-POINTER-TYPE))
; (TOP-LEVEL-FORM 7)
Warning: COMPILE-FILE warned while performing #ASDF:COMPILE-OP NIL 2192C73B on
#ASDF:CL-SOURCE-FILE "datastructs" 218F2A8B>.
Warning: COMPILE-FILE failed while performing #ASDF:COMPILE-OP NIL 2192C73B on
#ASDF:CL-SOURCE-FILE "datastructs" 218F2A8B.
; Loading fasl file D:\lw\sp\graphic-forms-0.8.0\src\uitoolkit\system\datastructs.ofasl

Error: POINT-POINTER-TYPE is not the name of a class

Jack Unrue said...

It's possible the problem is that you're using an older version of CFFI that does not have the define-foreign-type enhancements. Please try upgrading to the latest CFFI.

Otherwise, you'll have to do some investigating, e.g., try reproducing the error with a simple test case that just uses cffi:define-foreign-type and then implements cffi:translate-from-foreign or cffi:free-translated-object.

It would be great if you posted your results to graphic-forms-devel. Thanks!