[pal-cvs] CVS pal

tneste tneste at common-lisp.net
Tue Jul 3 18:42:35 UTC 2007


Update of /project/pal/cvsroot/pal
In directory clnet:/tmp/cvs-serv27783

Modified Files:
	pal-macros.lisp pal.lisp todo.txt 
Log Message:
Removed MOUSE-BUTTON-DOWN/UP-FN from event handling functions. Use KEY-*-FN instead

--- /project/pal/cvsroot/pal/pal-macros.lisp	2007/07/03 18:10:33	1.3
+++ /project/pal/cvsroot/pal/pal-macros.lisp	2007/07/03 18:42:35	1.4
@@ -112,7 +112,7 @@
   `(when ,fn
      (funcall ,fn , at args)))
 
-(defmacro do-event (event key-up-fn key-down-fn mouse-motion-fn mouse-button-up-fn mouse-button-down-fn quit-fn)
+(defmacro do-event (event key-up-fn key-down-fn mouse-motion-fn quit-fn)
   `(loop while (pal-ffi:poll-event ,event)
       do
       (let ((type (cffi:mem-ref ,event :uint8)))
@@ -143,16 +143,18 @@
            (funcall? ,mouse-motion-fn *mouse-x* *mouse-y*))
 
           ((= type pal-ffi:+mouse-button-up-event+)
-           (let ((button (cffi:foreign-slot-value ,event 'pal-ffi:mouse-button-event 'pal-ffi:button)))
-             (setf (gethash (read-from-string (format nil ":key-mouse-~a" button))
+           (let* ((button (cffi:foreign-slot-value ,event 'pal-ffi:mouse-button-event 'pal-ffi:button))
+                  (keysym (read-from-string (format nil ":key-mouse-~a" button))))
+             (setf (gethash keysym
                             *pressed-keys*) nil)
-             (funcall? ,mouse-button-up-fn button)))
+             (funcall? ,key-up-fn keysym)))
 
           ((= type pal-ffi:+mouse-button-down-event+)
-           (let ((button (cffi:foreign-slot-value ,event 'pal-ffi:mouse-button-event 'pal-ffi:button) ))
-             (setf (gethash (read-from-string (format nil ":key-mouse-~a" button))
+           (let* ((button (cffi:foreign-slot-value ,event 'pal-ffi:mouse-button-event 'pal-ffi:button))
+                 (keysym (read-from-string (format nil ":key-mouse-~a" button))))
+             (setf (gethash keysym
                             *pressed-keys*) t)
-             (funcall? ,mouse-button-down-fn button)))
+             (funcall? ,key-down-fn keysym)))
 
           ((= type pal-ffi:+quit-event+)
            (if ,quit-fn
@@ -161,12 +163,12 @@
            )))))
 
 
-(defmacro event-loop ((&key key-up-fn key-down-fn mouse-motion-fn mouse-button-up-fn mouse-button-down-fn quit-fn) &body redraw)
+(defmacro event-loop ((&key key-up-fn key-down-fn mouse-motion-fn quit-fn) &body redraw)
   (let ((event (gensym)))
     `(block event-loop
        (cffi:with-foreign-object (,event :char 1000)
          (loop
-            (do-event ,event ,key-up-fn ,key-down-fn ,mouse-motion-fn ,mouse-button-up-fn ,mouse-button-down-fn ,quit-fn)
+            (do-event ,event ,key-up-fn ,key-down-fn ,mouse-motion-fn ,quit-fn)
             , at redraw
             (update-screen))))))
 
--- /project/pal/cvsroot/pal/pal.lisp	2007/07/03 18:27:22	1.4
+++ /project/pal/cvsroot/pal/pal.lisp	2007/07/03 18:42:35	1.5
@@ -177,10 +177,10 @@
 (defun get-mouse-y ()
   *mouse-y*)
 
-(defun dispatch-event (&key key-up-fn key-down-fn mouse-motion-fn mouse-button-up-fn mouse-button-down-fn quit-fn)
+(defun dispatch-event (&key key-up-fn key-down-fn mouse-motion-fn quit-fn)
   (block event-loop
     (cffi:with-foreign-object (event :char 100)
-      (do-event event key-up-fn key-down-fn mouse-motion-fn mouse-button-up-fn mouse-button-down-fn quit-fn))))
+      (do-event event key-up-fn key-down-fn mouse-motion-fn quit-fn))))
 
 (defun wait-keypress ()
   (let ((key nil))
@@ -557,9 +557,6 @@
                   (ty (/ (- y dy) (pal-ffi:image-texture-height image))))
              (pal-ffi:gl-tex-coord2f tx ty)
              (pal-ffi:gl-vertex2f x y))))))
-    ((and (listp fill) image)
-     (set-image image)
-     )
     ((eq nil fill)
      (pal-ffi:gl-push-attrib (logior pal-ffi:+gl-color-buffer-bit+ pal-ffi:+gl-current-bit+ pal-ffi:+gl-line-bit+ pal-ffi:+gl-enable-bit+))
      (set-blend-color r g b a)
@@ -578,7 +575,9 @@
      (with-gl pal-ffi:+gl-polygon+
        (dolist (p points)
          (pal-ffi:gl-vertex2f (vx p) (vy p))))
-     (pal-ffi:gl-pop-attrib))))
+     (pal-ffi:gl-pop-attrib))
+    (t
+     (set-image image))))
 
 
 
--- /project/pal/cvsroot/pal/todo.txt	2007/07/03 18:10:33	1.3
+++ /project/pal/cvsroot/pal/todo.txt	2007/07/03 18:42:35	1.4
@@ -21,3 +21,4 @@
 
 - Make it run on OS X.
 
+- TrueType font support.




More information about the Pal-cvs mailing list