[graphic-forms-cvs] r226 - in trunk: . docs/manual src/demos/unblocked src/uitoolkit/widgets

junrue at common-lisp.net junrue at common-lisp.net
Mon Aug 21 04:36:52 UTC 2006


Author: junrue
Date: Mon Aug 21 00:36:51 2006
New Revision: 226

Modified:
   trunk/NEWS.txt
   trunk/README.txt
   trunk/build.lisp
   trunk/config.lisp
   trunk/docs/manual/overview.texinfo
   trunk/graphic-forms-tests.asd
   trunk/src/demos/unblocked/tiles-panel.lisp
   trunk/src/demos/unblocked/unblocked-model.lisp
   trunk/src/demos/unblocked/unblocked-window.lisp
   trunk/src/uitoolkit/widgets/file-dialog.lisp
Log:
completed removal of Cells usage, updated dependency documentation

Modified: trunk/NEWS.txt
==============================================================================
--- trunk/NEWS.txt	(original)
+++ trunk/NEWS.txt	Mon Aug 21 00:36:51 2006
@@ -1,11 +1,16 @@
 
 
 . 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
+  to enable the stdcall calling convention for alien callbacks, located
+  in src/external-libraries/sbcl-callback-patch.
+
+. Implemented a plugin mechanism for integrating graphics libraries.
 
 . Implemented the standard color chooser dialog.
 
+. Simplified external library dependencies, getting rid of some and
+  bundling small libraries into the Graphic-Forms distribution.
+
 
 ==============================================================================
 

Modified: trunk/README.txt
==============================================================================
--- trunk/README.txt	(original)
+++ trunk/README.txt	Mon Aug 21 00:36:51 2006
@@ -16,9 +16,6 @@
    http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf/
    *note: ASDF is bundled with SBCL*
 
- - Cells (latest from CVS)
-   http://www.common-lisp.net/project/cells/
-
  - CFFI (cffi-060606 or later)
    http://common-lisp.net/project/cffi/
 
@@ -114,7 +111,6 @@
   ;; load the other dependencies besides ImageMagick. Or if your Lisp
   ;; image already has these systems loaded, set the variables to nil.
   ;;
-  ;;   gfsys::*cells-dir*
   ;;   gfsys::*cffi-dir*
   ;;   gfsys::*closer-mop-dir*
   ;;   gfsys::*lw-compat-dir*

Modified: trunk/build.lisp
==============================================================================
--- trunk/build.lisp	(original)
+++ trunk/build.lisp	Mon Aug 21 00:36:51 2006
@@ -44,7 +44,6 @@
 (defvar *asdf-repo-root*    (concatenate 'string *library-root* "asdf-repo/"))
 (defvar *project-root*      "c:/projects/public/")
 
-(setf   *cells-dir*           (concatenate 'string *asdf-repo-root* "cells/"))
 (setf   *cffi-dir*            (concatenate 'string *asdf-repo-root* "cffi-060606/"))
 (setf   *closer-mop-dir*      (concatenate 'string *asdf-repo-root* "closer-mop/"))
 (setf   *lw-compat-dir*       (concatenate 'string *asdf-repo-root* "lw-compat/"))

Modified: trunk/config.lisp
==============================================================================
--- trunk/config.lisp	(original)
+++ trunk/config.lisp	Mon Aug 21 00:36:51 2006
@@ -39,7 +39,6 @@
 
 (in-package #:graphic-forms-system)
 
-(defvar *cells-dir*           "cells/")
 (defvar *cffi-dir*            "cffi-060606/")
 (defvar *closer-mop-dir*      "closer-mop/")
 (defvar *lw-compat-dir*       "lw-compat/")
@@ -54,7 +53,6 @@
 
 (defun configure-asdf ()
   (pushnew *binary-data-dir*     asdf:*central-registry* :test #'equal)
-  (pushnew *cells-dir*           asdf:*central-registry* :test #'equal)
   (pushnew *cffi-dir*            asdf:*central-registry* :test #'equal)
   (pushnew *closer-mop-dir*      asdf:*central-registry* :test #'equal)
   (pushnew *lw-compat-dir*       asdf:*central-registry* :test #'equal)

Modified: trunk/docs/manual/overview.texinfo
==============================================================================
--- trunk/docs/manual/overview.texinfo	(original)
+++ trunk/docs/manual/overview.texinfo	Mon Aug 21 00:36:51 2006
@@ -70,14 +70,13 @@
 
 @section Dependencies
 
-The libraries that Graphic-Forms relies upon are:
+ at strong{Libraries required by Graphic-Forms to be downloaded
+separately:}
 
 @table @code
 @item ASDF
- at url{http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf}
-
- at item Cells (latest from CVS)
- at url{http://www.common-lisp.net/project/cells/}
+ at url{http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf}@*
+ at emph{Note that ASDF is bundled with SBCL.}
 
 @item CFFI
 @url{http://common-lisp.net/project/cffi}
@@ -85,21 +84,39 @@
 @item Closer to MOP
 @url{http://common-lisp.net/project/closer/downloads.html}
 
- at item ImageMagick
- at url{http://www.imagemagick.org/download/binaries/ImageMagick-6.2.6-5-Q16-windows-dll.exe}
+ at item lw-compat
+ at url{http://common-lisp.net/project/closer/downloads.html}
+ at end table
+
+ at strong{Required libraries bundled with Graphic-Forms:}
+
+ at table @code
+
+ at item Practical Common Lisp Chapter08 and Chapter24
+ at url{http://www.gigamonkeys.com/book/practicals-1.0.3.tar.gz}
 
 @item lisp-unit
 @url{http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.html}
 
- at item lw-compat
- at url{http://common-lisp.net/project/closer/downloads.html}
+ at end table
+
+ at strong{Optional libraries that can be used with Graphic-Forms:}
+
+ at table @code
+
+ at item ImageMagick
+ at url{http://imagemagick.org/script/binary-releases.php#windows}@*
+ at emph{Install the Q16 version and push the symbol
+:load-imagemagick-plugin onto *features* before executing ASDF.}
+
 @end table
 
 
 @section Building the Library and Running Tests
 
 Please see the @code{README.txt} file included in the
-distribution for instructions on how to load the ASDF system and run tests.
+distribution for instructions on how to load the test program
+ASDF system and run unit-tests, test programs, and demo programs.
 
 
 @section Support

Modified: trunk/graphic-forms-tests.asd
==============================================================================
--- trunk/graphic-forms-tests.asd	(original)
+++ trunk/graphic-forms-tests.asd	Mon Aug 21 00:36:51 2006
@@ -55,7 +55,6 @@
   :version "0.5.0"
   :author "Jack D. Unrue"
   :licence "BSD"
-  :depends-on ("cells")
   :components
     ((:module "src"
         :components

Modified: trunk/src/demos/unblocked/tiles-panel.lisp
==============================================================================
--- trunk/src/demos/unblocked/tiles-panel.lisp	(original)
+++ trunk/src/demos/unblocked/tiles-panel.lisp	Mon Aug 21 00:36:51 2006
@@ -117,7 +117,10 @@
         (shape-pnts (shape-pnts-of self)))
     (when (and (eql button :left-button) shape-pnts)
       (if (and tile-pnt (find tile-pnt shape-pnts :test #'eql-point))
-        (game-shape-data shape-pnts)
+        (progn
+          (update-game-tiles shape-pnts)
+          (update-panel (get-scoreboard-panel))
+          (update-panel (get-tiles-panel)))
         (draw-tiles-directly panel shape-pnts (shape-kind-of self)))))
   (setf (shape-kind-of self) 0)
   (setf (shape-pnts-of self) nil))

Modified: trunk/src/demos/unblocked/unblocked-model.lisp
==============================================================================
--- trunk/src/demos/unblocked/unblocked-model.lisp	(original)
+++ trunk/src/demos/unblocked/unblocked-model.lisp	Mon Aug 21 00:36:51 2006
@@ -48,66 +48,53 @@
         until (> entry score)
         finally (return level)))
 
-(defun revise-tiles (active-tiles orig-tiles shape-data)
-  (if shape-data
-    (loop with tmp = (clone-tiles active-tiles)
-          for pnt in shape-data do (set-tile tmp pnt 0)
-          finally (return (collapse-tiles tmp)))
-    orig-tiles))
-
-(cells:defmodel unblocked-game-model ()
-  ((level
-    :accessor level
-    :initform (cells:c? (lookup-level-reached (^score))))
-   (score
-    :accessor score
-    :initform (cells:c? (+ (or cells:.cache 0)
-                           (* 5 (length (^shape-data))))))
+(defun compute-new-game-tiles ()
+  (collapse-tiles (init-tiles +horz-tile-count+ +vert-tile-count+ (1- +max-tile-kinds+))))
+
+(defclass unblocked-game-model ()
+  ((score
+    :accessor score-of
+    :initform 0)
    (shape-data
-    :accessor shape-data
-    :initform (cells:c-in nil))
+    :accessor shape-data-of
+    :initform nil)
    (original-tiles
-    :accessor original-tiles
-    :initarg :original-tiles
-    :initform (cells:c-in (collapse-tiles (init-tiles +horz-tile-count+
-                                                      +vert-tile-count+
-                                                      (1- +max-tile-kinds+)))))
+    :accessor original-tiles-of
+    :initform nil)
    (active-tiles
-    :accessor active-tiles
-    :initform (cells:c? (revise-tiles cells:.cache (^original-tiles) (^shape-data))))))
+    :accessor active-tiles-of
+    :initform nil)))
 
 (defvar *game* (make-instance 'unblocked-game-model))
 
 (defun new-game ()
-  (cells:cells-reset)
-  (setf *game* (make-instance 'unblocked-game-model)))
+  (let ((tiles (compute-new-game-tiles)))
+    (setf (score-of *game*)          0
+          (original-tiles-of *game*) tiles
+          (active-tiles-of *game*)   tiles)))
 
 (defun restart-game ()
-  (let ((saved-tiles (original-tiles *game*)))
-    (cells:cells-reset)
-    (setf *game* (make-instance 'unblocked-game-model :original-tiles saved-tiles))))
+  (setf (score-of *game*)        0
+        (active-tiles-of *game*) (original-tiles-of *game*)))
 
 (defun game-tiles ()
-  (active-tiles *game*))
+  (active-tiles-of *game*))
 
-(defun game-shape-data (pnts)
-  (setf (shape-data *game*) pnts))
+(defun update-game-tiles (shape-data)
+  (setf (active-tiles-of *game*)
+        (if shape-data
+          (progn
+            (incf (score-of *game*) (* 5 (length shape-data)))
+            (loop with tmp = (clone-tiles (active-tiles-of *game*))
+                  for pnt in shape-data do (set-tile tmp pnt 0)
+                  finally (return (collapse-tiles tmp))))
+          (original-tiles-of *game*))))
 
 (defun game-level ()
-  (level *game*))
+  (lookup-level-reached (score-of *game*)))
 
 (defun game-points-needed ()
-  (- (nth (1- (level *game*)) *points-needed-table*) (score *game*)))
+  (- (nth (1- (game-level)) *points-needed-table*) (score-of *game*)))
 
 (defun game-score ()
-  (score *game*))
-
-(defun update-panel (panel)
-  (update-buffer (gfw:dispatcher panel))
-  (gfw:redraw panel))
-
-(cells:defobserver score ((self unblocked-game-model))
-  (update-panel (get-scoreboard-panel)))
-
-(cells:defobserver active-tiles ((self unblocked-game-model))
-  (update-panel (get-tiles-panel)))
+  (score-of *game*))

Modified: trunk/src/demos/unblocked/unblocked-window.lisp
==============================================================================
--- trunk/src/demos/unblocked/unblocked-window.lisp	(original)
+++ trunk/src/demos/unblocked/unblocked-window.lisp	Mon Aug 21 00:36:51 2006
@@ -65,6 +65,10 @@
         (kind (shape-kind shape)))
     (and (> size 1) (/= kind 0) (/= kind +max-tile-kinds+))))
 
+(defun update-panel (panel)
+  (update-buffer (gfw:dispatcher panel))
+  (gfw:redraw panel))
+
 (defun reveal-unblocked (disp item)
   (declare (ignore disp item))
   (let ((shape (find-shape (game-tiles) #'accept-shape-p)))

Modified: trunk/src/uitoolkit/widgets/file-dialog.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/file-dialog.lisp	(original)
+++ trunk/src/uitoolkit/widgets/file-dialog.lisp	Mon Aug 21 00:36:51 2006
@@ -124,7 +124,7 @@
         (title-buffer (cffi:null-pointer))
         (dir-buffer (cffi:null-pointer))
         (ext-buffer (cffi:null-pointer))
-        (file-buffer (cffi:foreign-alloc :char :count 1024 :initial-element #\Null))) ; see FIXME above
+        (file-buffer (cffi:foreign-alloc :char :count 1024 :initial-element 0))) ; see FIXME above
     (if text
       (setf title-buffer (collect-foreign-strings (list text))))
     (if initial-directory



More information about the Graphic-forms-cvs mailing list