X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/c07660b35e589c4ffc05b9b859808c4cca0a4435..580820d8044f45eb58f39b9d52d185d2efd16bcd:/gdk/gdkevents.lisp diff --git a/gdk/gdkevents.lisp b/gdk/gdkevents.lisp index d4ccd58..8de9d9a 100644 --- a/gdk/gdkevents.lisp +++ b/gdk/gdkevents.lisp @@ -15,16 +15,42 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gdkevents.lisp,v 1.6 2004-12-20 00:09:57 espen Exp $ +;; $Id: gdkevents.lisp,v 1.9 2005-03-06 17:26:22 espen Exp $ (in-package "GDK") -(defvar *event-classes* (make-hash-table)) +(define-flags-type event-mask + (:exposure 2) + :pointer-motion + :pointer-motion-hint + :button-motion + :button1-motion + :button2-motion + :button3-motion + :button-press + :button-release + :key-press + :key-release + :enter-notify + :leave-notify + :focus-change + :structure + :property-change + :visibility-notify + :proximity-in + :proximity-out + :substructure + :scroll + (:all-events #x3FFFFE)) + +(register-type 'event-mask '|gdk_event_mask_get_type|) ;;;; Metaclass for event classes +(defvar *event-classes* (make-hash-table)) + (eval-when (:compile-toplevel :load-toplevel :execute) (defclass event-class (boxed-class) ((event-type :reader event-class-type))) @@ -35,11 +61,12 @@ (defmethod shared-initialize ((class event-class) names &key name type) + (let ((class-name (or name (class-name class)))) + (unless (eq class-name 'event) + (register-type-alias class-name 'event))) (call-next-method) (setf (slot-value class 'event-type) (first type)) - (setf (gethash (first type) *event-classes*) class) - (let ((class-name (or name (class-name class)))) - (register-type class-name 'event))) + (setf (gethash (first type) *event-classes*) class)) (let ((reader (reader-function 'event-type))) (defun %event-class (location)