[graphic-forms-cvs] r227 - in trunk: . docs/manual docs/website

junrue at common-lisp.net junrue at common-lisp.net
Mon Aug 21 06:49:16 UTC 2006


Author: junrue
Date: Mon Aug 21 02:49:15 2006
New Revision: 227

Modified:
   trunk/NEWS.txt
   trunk/README.txt
   trunk/docs/manual/overview.texinfo
   trunk/docs/website/index.html
Log:
doc updates in preparation for the 0.5.0 release

Modified: trunk/NEWS.txt
==============================================================================
--- trunk/NEWS.txt	(original)
+++ trunk/NEWS.txt	Mon Aug 21 02:49:15 2006
@@ -1,15 +1,90 @@
 
+Release 0.5.0 of Graphic-Forms, a Common Lisp library for Windows GUI
+programming, is now available. This is an alpha release, meaning that
+the feature set and API have not yet stabilized.
+
+Here is what's new in this release:
+
+. SBCL is now supported (version 0.9.15 tested). Graphic-Forms includes
+  a small patch provided to the SBCL community by Alastair Bridgewater
+  to enable the stdcall calling convention for alien callbacks. Please
+  see src/external-libraries/sbcl-callback-patch
+
+. Implemented a plugin mechanism for integrating graphics libraries. This
+  means that ImageMagick is now optional -- if your application can get
+  by with just BMP and ICO formats, then the default plugin (which has no
+  external dependencies) may be used. This feature also allows applications
+  to integrate other graphics libraries of their choice.
+
+. In addition to ImageMagick now being optional, external library
+  dependencies have been further simplified. Several small libraries
+  are now directly bundled with the Graphic-Forms. Cells is no longer
+  used in the library proper nor in the demos (but may return at a
+  later point).
+
+. Implemented a class called icon-bundle which may be populated with
+  multiple images and then used to set icon data for window frames.
+  This includes the concept of there being 'large' and 'small' icon
+  sizes.
+
+. Simplified the argument lists for the event-*** generic functions.
+  Provided gfw:obtain-event-time as a substitute for passing a time
+  argument to every function (for which the vast majority of methods
+  had no use).
+
+. Provided a new generic function called event-session so applications
+  can participate in the WM_QUERYENDSESSION / WM_ENDSESSION protocol.
+
+. Provided event-activate and event-deactivate generic functions so
+  applications can respond to window activation state changes.
+
+. Defined generic functions for querying undo and redo state. Implemented
+  corresponding methods for edit controls.
+
+. Defined generic functions for configuring auto-scrolling and scrollbar
+  visibility. Implemented corresponding methods for edit controls.
+
+. Defined generic functions representing text clipboard data convenience
+  functionality. Implemented corresponding methods for edit controls.
 
-. SBCL 0.9.15 is now supported. Graphic-Forms includes a small patch
-  to enable the stdcall calling convention for alien callbacks, located
-  in src/external-libraries/sbcl-callback-patch.
+. Made other miscellaneous improvements to flesh out edit control
+  support.
 
-. Implemented a plugin mechanism for integrating graphics libraries.
+. Implemented the standard color chooser dialog and associated
+  convenience macro 'with-color-dialog'.
 
-. Implemented the standard color chooser dialog.
+. Added the macro 'with-graphics-context' as a convenience for code that
+  needs to instantiate a context outside of event-paint.
 
-. Simplified external library dependencies, getting rid of some and
-  bundling small libraries into the Graphic-Forms distribution.
+. Heavily revised internal layout manager code in preparation for
+  supporting more sophisticated layouts. A new class called layout-managed
+  has been created to serve as a mix-in when defining objects (not
+  necessarily only windows) that have children to be sized and positioned.
+
+. Implemented a new demo program called textedit which is essentially
+  a Notepad clone. Its purpose is to show off the multi-line edit
+  control and the standard Find/Replace dialog.
+
+. Upgraded to the latest lisp-unit and changed test loading code so that
+  unit-tests are no longer compiled.
+
+. Wrote more documentation and reorganized existing content a bit.
+  Added discussion of certain naming convention choices.
+
+. Made a variety of bug fixes.
+
+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.5.0.zip?download
+
+The project website is:
+http://common-lisp.net/project/graphic-forms/
+
+Jack Unrue
+jdunrue (at) gmail (dot) com
+25 August 2006
 
 
 ==============================================================================

Modified: trunk/README.txt
==============================================================================
--- trunk/README.txt	(original)
+++ trunk/README.txt	Mon Aug 21 02:49:15 2006
@@ -1,5 +1,5 @@
 
-Graphic-Forms README for version 0.5.0
+Graphic-Forms README for version 0.5.0 (25 August 2006)
 Copyright (c) 2006, Jack D. Unrue
 
 Graphic-Forms is a user interface library implemented in Common Lisp focusing
@@ -10,7 +10,8 @@
 Dependencies
 ------------
 
-Graphic-Forms depends on the following packages:
+Graphic-Forms requires the following libraries which must be downloaded
+separately:
 
  - ASDF
    http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf/
@@ -19,14 +20,13 @@
  - CFFI (cffi-060606 or later)
    http://common-lisp.net/project/cffi/
 
- - lw-compat
+ - Closer to MOP
    http://common-lisp.net/project/closer/downloads.html
 
- - Closer to MOP
+ - lw-compat
    http://common-lisp.net/project/closer/downloads.html
 
-The following libraries are bundled with Graphic-Forms, thus do not need
-to be downloaded separately:
+The following libraries are bundled with Graphic-Forms:
 
  - Practical Common Lisp Chapter08 and Chapter24
    http://www.gigamonkeys.com/book/practicals-1.0.3.tar.gz
@@ -43,8 +43,8 @@
 Supported Common Lisp Implementations
 -------------------------------------
 
-Graphic-Forms currently supports CLISP 2.38, LispWorks 4.4.6, and SBCL 0.9.15
-(the latter with a small patch).
+Graphic-Forms currently supports CLISP 2.38 or higher, LispWorks 4.4.6,
+and SBCL 0.9.15 (the latter with a small patch).
 
 
 Known Problems
@@ -58,103 +58,102 @@
 
    http://sourceforge.net/tracker/index.php?func=detail&aid=1463994&group_id=1355&atid=101355
 
-   may result in intermittent GPFs when windows with layout managers are
-   resized.
-
-2. Image loading currently requires installation of the ImageMagick
-   library as described in the next section. I have tested with Windows
-   BMP files (and this is what the image-tester application displays).
-   ImageMagick itself supports many image formats, but Graphic-Forms
-   has not been tested with all of them. Therefore, images may not
-   display properly, expecially when a transparency is selected.
-
-3. The src/demos/unblocked directory contains a start at a demo
-   program in the form of a simple game where one clicks on block
-   shapes to score points, and the rest of the blocks fall down to
-   fill in the gaps. This demo program is not yet finished, but the
-   source code can still serve as sample code.
-
-4. The text-extent generic function currently does not return
-   the correct text height. As a workaround, get the text metrics
-   for the desired font and base height calculations on that
-   value. The text-extent function does return the correct width.
-
+   may result in a GPF if a window's layout manager is changed. Compared
+   to prior releases of Graphic-Forms, there is much less chance of this
+   problem affecting layout management.
+
+2. Please be advised that SBCL is itself still in the early stages of
+   supporting Windows, and as a consequence, you may experience problems
+   such as 'GC invariant lost' errors that result in a crash to LDB.
+
+3. The gfg:text-extent method currently does not return the correct text
+   height value. As a workaround, get the text metrics for the font and
+   compute height from that. The gfg:text-extent function does return
+   the correct width.
 
 
 How To Configure and Build
 --------------------------
 
-NOTE: in a future release, this project will be packaged for use
-with asdf-install.
+NOTE: in a future release, this project will be packaged for delivery
+via asdf-install.
 
-1. Install ImageMagick 6.2.6.5-Q16 (note in particular that it is the Q16
-   version that is needed, not the Q8 version). The default installation
-   directory is "c:/Program Files/ImageMagick-6.2.6-Q16/".
+1. [OPTIONAL] Install ImageMagick 6.2.6.5-Q16 (note in particular that it
+   is the Q16 version that is needed, not the Q8 version). The default
+   installation directory is "c:/Program Files/ImageMagick-6.2.6-Q16/".
 
 2. Extract the Graphic-Forms distribution archive somewhere on your
    machine (or check out the source from Subversion).
 
 3. Change to the Graphic-Forms top-level directory.
 
-4. Load ASDF into your Lisp image if it is not already present.
+4. Load ASDF into your Lisp image if it is not already present. Note that
+   SBCL bundles ASDF, so in this case you just need to (require 'asdf)
 
-5. Execute the following forms from your REPL
-
-  (load "config.lisp")
+5. Execute the following forms at your REPL
 
   ;;
-  ;; If ImageMagick is not installed in the default location, execute:
+  ;; If you need the ImageMagick plugin, execute:
+
+  (push :load-imagemagick-plugin *features*)
+  (setf cl-user::*magick-library-directory* "c:/path/to/ImageMagick/")
+
+  ;; ... the latter being necessary only if ImageMagick is not installed
+  ;; in the default location.
+
   ;;
-  (setf cl-user::*magick-library-directory* "c:/path/to/your/ImageMagick/install/")
+  ;; Next, execute:
 
-  ;; setf these variables as needed for your specific environment to
+  (load "config.lisp")
+
+  ;;
+  ;; Set these variables as needed for your specific environment to
   ;; load the other dependencies besides ImageMagick. Or if your Lisp
   ;; image already has these systems loaded, set the variables to nil.
   ;;
   ;;   gfsys::*cffi-dir*
   ;;   gfsys::*closer-mop-dir*
   ;;   gfsys::*lw-compat-dir*
-  ;;
-  ;; Set the following var only if you want to run the unit-tests.
-  ;; Its value is the path to the lisp-unit.lisp source file minus
-  ;; the file extension.
-  ;;
-  ;;   gfsys::*lisp-unit-file*
 
+  ;;
   ;; Execute the following form to populate asdf:*central-registry*
   ;; Note that it will skip any systems whose location variables were
   ;; set to nil in the previous step.
-  ;;
+
   (gfsys::configure-asdf)
 
-  ;; Now load the graphic-forms system and its dependencies.
   ;;
+  ;; Now load the graphic-forms system and its dependencies.
+
   (asdf:operate 'asdf:load-op :graphic-forms-uitoolkit)
 
 6. You may optionally compile the reference manual. GNU Make and
-   makeinfo are prerequisites. Assuming you already have those
-   components installed, the reference manual can be built by
-   opening a command prompt and cd'ing to the `docs\manual'
+   makeinfo (version 4.8) are prerequisites. Assuming you already
+   have those components installed, the reference manual can be
+   built by opening a command prompt and cd'ing to the `docs\manual'
    subdirectory, then typing `make'. The output will be
-   produced within a subdirectory called `reference'.
+   deposited in a subdirectory called `reference'.
 
 7. Proceed to the next section to run the tests, or start coding!
 
 
-How To Run Tests And Samples
-----------------------------
+How To Run Tests And Demos
+--------------------------
 
 1. Load the graphic-forms-uitoolkit system as described in the previous
    section.
 
 2. Execute the following forms from your REPL:
 
-  (load (compile-file gfsys::*lisp-unit-file*))
+  ;;
+  ;; configure ASDF for the test programs and then load it
 
-  (asdf:operate 'asdf:load-op :graphic-forms-tests)
+  (load "tests.lisp")
+  (gfsys::load-tests)
 
-  ;; execute demos and test programs
   ;;
+  ;; execute demos and test programs
+
   (gft:unblocked)
 
   (gft:textedit)
@@ -169,14 +168,15 @@
 
   (gft:windlg)
 
-  ;; execute the unit-tests
   ;;
+  ;; execute the unit-tests
+
   (in-package :gft)
   (run-tests)
 
 
-Support and Feedback
---------------------
+Feedback and Bug Reports
+------------------------
 
 Please provide feedback via the following channels:
 

Modified: trunk/docs/manual/overview.texinfo
==============================================================================
--- trunk/docs/manual/overview.texinfo	(original)
+++ trunk/docs/manual/overview.texinfo	Mon Aug 21 02:49:15 2006
@@ -14,19 +14,18 @@
 focusing on the Windows platform. Graphic-Forms is licensed under the
 terms of the BSD License.
 
-The goal is to provide a Lisp-based toolkit for developing GUI
-applications on Windows. Platform-specific features are encapsulated
-by a thin abstraction layer that presents a more Lisp-friendly
-interface for programmers. The library can be extended by using the
-Lisp bindings for system APIs, rather than requiring knowledge of
-some other programming language.
+The goal is to provide a Common Lisp-based toolkit for developing GUI
+applications on Windows. GUI features are encapsulated by a thin
+abstraction layer offering a Lisp-friendly interface. The library can
+be extended via Common Lisp bindings for system APIs, avoiding a
+prerequisite for coding ability in a non-Lisp programming language.
 
 Why implement another UI toolkit? Applications that need portability
-across windowing systems are already served by projects such as McCLIM
-or LTK or wxCL in the open-source world, or the toolkits provided by
-commercial vendors. The audience served by Graphic-Forms consists of
+across windowing systems are served today by projects such as
+LTK or wxCL in the open-source world, or the toolkits provided by
+commercial vendors. The target audience of Graphic-Forms consists of
 GUI developers focused on the Windows platform who want to leverage
-platform features without compromises due to portability.
+platform-specific features.
 
 Long-term goals for this project may include implementing an application
 framework on top of the toolkit, or a rapid UI development language, or

Modified: trunk/docs/website/index.html
==============================================================================
--- trunk/docs/website/index.html	(original)
+++ trunk/docs/website/index.html	Mon Aug 21 02:49:15 2006
@@ -30,46 +30,47 @@
   terms of the
   <a href="http://home.earthlink.net/~jdunrue/license.html">BSD License</a>.</p>
 
-  <p>The goal is to provide a Lisp-based toolkit for developing GUI
-     applications on Windows. Platform-specific features are encapsulated
-     by a thin abstraction layer that presents a more Lisp-friendly interface
-     for programmers. The library can be extended by using the Lisp
-     bindings for system APIs, rather than requiring knowledge of some other
-     programming language.</p>
-  <p>Why implement another UI toolkit? Applications that need portability
-     across windowing systems are already served by projects such as
-     <a href="http://common-lisp.net/project/mcclim/">McCLIM</a>
-     or
+  <p>The goal is to provide a <a href="http://www.lisp.org">Common Lisp</a>-based
+     toolkit for developing GUI applications on Windows. GUI features
+     are encapsulated by a thin abstraction layer offering a Lisp-friendly
+     interface. The library can be extended via
+     <a href="http://www.lisp.org">Common Lisp</a> bindings for system APIs,
+     avoiding a prerequisite for coding ability in a non-Lisp programming
+     language.</p>
+  <p>Why implement another UI toolkit? Applications requiring portability
+     across windowing systems are served today by projects such as
      <a href="http://www.peter-herth.de/ltk/">LTK</a>
      or
      <a href="http://www.wxcl-project.org">wxCL</a>
      in the open-source world, or the toolkits provided by commercial
-     vendors. The audience served by Graphic-Forms consists of GUI
+     vendors. The target audience of Graphic-Forms consists of GUI
      developers focused on the Windows platform who want to leverage
-     platform features without compromises due to portability.
+     platform-specific features.
   <p>Long-term goals for this project may include implementing an application
      framework on top of the toolkit, or a rapid UI development language, or a
      UI design tool, or some combination thereof.</p>
 
  <h3>Status</h3>
 
- <p>The current release is
-    <a href="http://sourceforge.net/project/showfiles.php?group_id=163034">version 0.4.0</a>.
-    This library is in the alpha stage of development, which means that new
-    features are still being added and existing features require considerable
-    testing. Brave souls who experiment with the code should expect significant
-    API and behavior changes for at least several more releases.</p>
+ <p>The current version is
+    <a href="http://prdownloads.sourceforge.net/graphic-forms/graphic-forms-0.5.0.zip?download">
+    0.5.0</a>, released on 25 August 2006.</p>
+ <p>Graphic-Forms is in the alpha stage of development,
+    meaning new features are still being added and existing features require
+    considerable testing. Brave souls who experiment with the code should expect
+    significant API and behavior changes for at least several more releases.</p>
 
  <p>The supported Lisp implementations are:
  <ul>
-   <li><a href="http://clisp.cons.org/">CLISP 2.38</a></li>
+   <li><a href="http://clisp.cons.org/">CLISP 2.38 or later</a></li>
    <li><a href="http://www.lispworks.com/">LispWorks 4.4.6</a></li>
+   <li><a href="http://sbcl.sourceforge.net/">SBCL 0.9.15 or later</a></li>
  </ul>
 
  <p>The supported Windows versions are:
  <ul>
    <li>XP SP2</li>
-   <li>Vista <i>(in progress, testing on Beta 2 currently underway)</i></li>
+   <li>Vista <i>(testing on Beta 2 currently underway)</i></li>
  </ul>
 
  <h3 id="mailinglists">Mailing Lists</h3>



More information about the Graphic-forms-cvs mailing list