chiark / gitweb /
Added event classes
authorespen <espen>
Sun, 11 Feb 2001 20:28:07 +0000 (20:28 +0000)
committerespen <espen>
Sun, 11 Feb 2001 20:28:07 +0000 (20:28 +0000)
gdk/gdktypes.lisp

index a5e0e28fdc5c594db26a38dd2a5b320a656bdcdf..447b611decc2ae241bda0e8d0f3b7eabceb47d30 100644 (file)
@@ -1,5 +1,5 @@
 ;; Common Lisp bindings for GTK+ v2.0
-;; Copyright (C) 1999-2000 Espen S. Johnsen <espejohn@online.no>
+;; Copyright (C) 1999-2000 Espen S. Johnsen <esj@stud.cs.uit.no>
 ;;
 ;; This library is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public
 ;; 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))