From 4fc1b6fe857abe6cae7ef8059ae9524d5ab89475 Mon Sep 17 00:00:00 2001 Message-Id: <4fc1b6fe857abe6cae7ef8059ae9524d5ab89475.1714644015.git.mdw@distorted.org.uk> From: Mark Wooding Date: Sun, 11 Feb 2001 20:28:07 +0000 Subject: [PATCH] Added event classes Organization: Straylight/Edgeware From: espen --- gdk/gdktypes.lisp | 268 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 251 insertions(+), 17 deletions(-) diff --git a/gdk/gdktypes.lisp b/gdk/gdktypes.lisp index a5e0e28..447b611 100644 --- a/gdk/gdktypes.lisp +++ b/gdk/gdktypes.lisp @@ -1,5 +1,5 @@ ;; Common Lisp bindings for GTK+ v2.0 -;; Copyright (C) 1999-2000 Espen S. Johnsen +;; Copyright (C) 1999-2000 Espen S. Johnsen ;; ;; This library is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public @@ -15,12 +15,12 @@ ;; 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: gdktypes.lisp,v 1.1 2000-08-14 16:44:41 espen Exp $ +;; $Id: gdktypes.lisp,v 1.2 2001-02-11 20:28:07 espen Exp $ (in-package "GDK") -(defclass color (alien-object) +(defclass color (alien-structure) ((pixel :allocation :alien :type unsigned-long) @@ -70,8 +70,12 @@ (defclass pixmap (drawable) (:metaclass gobject-class) (:alien-name "GdkPixmap")) -; (defclass bitmap (drawable)) -(deftype bitmap () 'pointer) +;; Bitmaps is not defined as a propper type in gdk, only as an alias for +;; GdkDrawable, so we have to define it this way as a workaround +(defclass bitmap (alien-object) + () + (:metaclass alien-class)) + ; (defclass geometry (alien-structure) ; ((min-width @@ -160,13 +164,14 @@ (defclass drag-context (gobject) (:alien-name "GdkDragContext")) +(defclass device (alien-structure) + () + (:metaclass alien-class)) + (defclass event (alien-structure) - ((type - :allocation :alien -; :accessor event-type - :type event-type) - (window + ((window :allocation :alien + :offset #.(size-of 'pointer) :accessor event-window :initarg :window :type window) @@ -174,26 +179,255 @@ (defclass event (alien-structure) :allocation :alien :accessor event-send-event :initarg :send-event - :type (signed 8))) + :type (boolean 8)) + (%align :allocation :alien :offset 2 :type (unsigned 8))) (:metaclass alien-class) (:alien-name "GdkEvent")) +(defclass timed-event (event) + ((time + :allocation :alien + :accessor event-time + :initarg :time + :type (unsigned 32))) + (:metaclass alien-class)) + +(defclass delete-event (event) + () + (:metaclass alien-class)) + +(defclass destroy-event (event) + () + (:metaclass alien-class)) (defclass expose-event (event) + ((x + :allocation :alien + :accessor event-x + :initarg :x + :type int) + (y + :allocation :alien + :accessor event-y + :initarg :y + :type int) + (width + :allocation :alien + :accessor event-width + :initarg :width + :type int) + (height + :allocation :alien + :accessor event-height + :initarg :height + :type int) + (count + :allocation :alien + :accessor event-count + :initarg :count + :type int)) + (:metaclass alien-class)) + +(defclass motion-notify-event (timed-event) + ((x + :allocation :alien + :accessor event-x + :initarg :x + :type double-float) + (y + :allocation :alien + :accessor event-y + :initarg :y + :type double-float) + (state + :allocation :alien + :offset #.(size-of 'pointer) + :accessor event-state + :initarg :state + :type unsigned-int) + (is-hint + :allocation :alien + :accessor event-is-hint + :initarg :is-hint + :type (signed 16) ; should it be (boolean 16)? + ) + (device + :allocation :alien + :offset 2 + :accessor event-device + :initarg :device + :type device) + (root-x + :allocation :alien + :accessor event-root-x + :initarg :root-x + :type double-float) + (root-y + :allocation :alien + :accessor event-root-y + :initarg :root-y + :type double-float)) + (:metaclass alien-class)) + +(defclass button-press-event (timed-event) + ((x + :allocation :alien + :accessor event-x + :initarg :x + :type double-float) + (y + :allocation :alien + :accessor event-y + :initarg :y + :type double-float) + (state + :allocation :alien + :offset #.(size-of 'pointer) + :accessor event-state + :initarg :state + :type modifier-type) + (button + :allocation :alien + :accessor event-button + :initarg :button + :type unsigned-int) + (device + :allocation :alien + :accessor event-device + :initarg :device + :type device) + (root-x + :allocation :alien + :accessor event-root-x + :initarg :root-x + :type double-float) + (root-y + :allocation :alien + :accessor event-root-y + :initarg :root-y + :type double-float)) + (:metaclass alien-class)) + +(defclass 2-button-press-event (button-press-event) () (:metaclass alien-class)) +(defclass 3-button-press-event (button-press-event) + () + (:metaclass alien-class)) -(defclass delete-event (event) +(defclass button-release-event (button-press-event) + () + (:metaclass alien-class)) + +(defclass key-press-event (event) + () + (:metaclass alien-class)) + +(defclass key-release-event (event) + () + (:metaclass alien-class)) + +(defclass enter-notify-event (event) + () + (:metaclass alien-class)) + +(defclass leave-notify-event (event) + () + (:metaclass alien-class)) + +(defclass focus-change-event (event) + () + (:metaclass alien-class)) + +(defclass configure-event (event) + ((x + :allocation :alien + :accessor event-x + :initarg :x + :type int) + (y + :allocation :alien + :accessor event-y + :initarg :y + :type int) + (width + :allocation :alien + :accessor event-width + :initarg :width + :type int) + (height + :allocation :alien + :accessor event-height + :initarg :height + :type int)) + (:metaclass alien-class)) + +(defclass map-event (event) () (:metaclass alien-class)) +(defclass unmap-event (event) + () + (:metaclass alien-class)) + +(defclass property-notify-event (event) + () + (:metaclass alien-class)) + +(defclass selection-clear-event (event) + () + (:metaclass alien-class)) +(defclass selection-request-event (event) + () + (:metaclass alien-class)) +(defclass selection-notify-event (event) + () + (:metaclass alien-class)) -;(define-boxed device-key) -;(define-boxed device-info) -;(define-boxed time-coord) -;(define-boxed ic) -;(define-boxed ic-attr) +(defclass drag-enter-event (event) + () + (:metaclass alien-class)) + +(defclass drag-leave-event (event) + () + (:metaclass alien-class)) + +(defclass drag-motion-event (event) + () + (:metaclass alien-class)) + +(defclass drag-status-event (event) + () + (:metaclass alien-class)) + +(defclass drag-start-event (event) + () + (:metaclass alien-class)) + +(defclass drag-finished-event (event) + () + (:metaclass alien-class)) + +(defclass client-event (event) + () + (:metaclass alien-class)) + +(defclass visibility-notify-event (event) + ((state + :allocation :alien + :accessor event-state + :initarg :state + :type visibility-state)) + (:metaclass alien-class)) + +(defclass no-expose-event (event) + () + (:metaclass alien-class)) + +(defclass scroll-event (timed-event) + () + (:metaclass alien-class)) -- [mdw]