X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/560af5c515eb5b6206040a9334de4254d2650147..c046c2f653233b4e09830f672159ae205f59c6f6:/gdk/gdktypes.lisp diff --git a/gdk/gdktypes.lisp b/gdk/gdktypes.lisp index a5e0e28..8564ad2 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-2001 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,20 @@ ;; 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.18 2005-03-11 16:48:08 espen Exp $ (in-package "GDK") +(eval-when (:compile-toplevel :load-toplevel :execute) + (init-types-in-library #.(concatenate 'string + (pkg-config:pkg-variable "gtk+-2.0" "libdir") + "/libgdk-x11-2.0.so") :prefix ("gdk_" "_gdk_")) + (init-types-in-library #.(concatenate 'string + (pkg-config:pkg-variable "gtk+-2.0" "libdir") + "/libgdk_pixbuf-2.0.so") :prefix "gdk_")) -(defclass color (alien-object) + +(defclass color (boxed) ((pixel :allocation :alien :type unsigned-long) @@ -30,170 +38,226 @@ (defclass color (alien-object) :type unsigned-short) (green :allocation :alien - :accessor color-grenn + :accessor color-green :type unsigned-short) (blue :allocation :alien :accessor color-blue :type unsigned-short)) - (:metaclass alien-class) - (:alien-name "GdkColor")) - - -(defclass visual (static-structure) - () - (:metaclass alien-class) - (:alien-name "GdkVisual")) - - -(defclass colormap (gobject) - () - (:metaclass gobject-class) - (:alien-name "GdkColormap")) - - -(defclass drawable (gobject) - () - (:metaclass gobject-class) - (:alien-name "GdkDrawable")) - - -(defclass window (drawable) - () - (:metaclass gobject-class) - (:alien-name "GdkWindow") - (:type-init "gdk_window_object_get_type")) - - -(defclass pixmap (drawable) - () - (:metaclass gobject-class) - (:alien-name "GdkPixmap")) - -; (defclass bitmap (drawable)) -(deftype bitmap () 'pointer) - -; (defclass geometry (alien-structure) -; ((min-width -; :allocation :alien -; :accessor geometry-min-width -; :initarg :min-width -; :type int) -; (min-height -; :allocation :alien -; :accessor geometry-min-height -; :initarg :min-heigth -; :type int) -; (max-width -; :allocation :alien -; :accessor geometry-max-width -; :initarg :max-width -; :type int) -; (max-height -; :allocation :alien -; :accessor geometry-max-height -; :initarg :max-heigth -; :type int) -; (base-width -; :allocation :alien -; :accessor geometry-base-width -; :initarg :base-width -; :type int) -; (base-height -; :allocation :alien -; :accessor geometry-base-height -; :initarg :base-heigth -; :type int) -; (width-inc -; :allocation :alien -; :accessor geometry-width-inc -; :initarg :width-inc -; :type int) -; (height-inc -; :allocation :alien -; :accessor geometry-height-inc -; :initarg :heigth-inc -; :type int) -; (min-aspect -; :allocation :alien -; :accessor geometry-min-aspect -; :initarg :min-aspect -; :type double-float) -; (max-aspect -; :allocation :alien -; :accessor geometry-max-aspect -; :initarg :max-aspect -; :type double-float)) -; (:metaclass alien-class)) - - -(defclass image (gobject) - () - (:metaclass gobject-class) - (:alien-name "GdkImage")) - + (:metaclass boxed-class)) -(defclass gc (gobject) - () - (:metaclass gobject-class) - (:alien-name "GdkGC")) +(deftype point () '(vector int 2)) +(deftype segment () '(vector int 4)) +(deftype trapezoid () '(vector double-float 6)) +(deftype atom () 'unsigned-int) -(defclass font (alien-object) - () - (:metaclass alien-class) - (:alien-name "GdkFont")) - -(defclass cursor (alien-object) +;; Could this just as well have been a vector? +(defclass rectangle (boxed) + ((x + :allocation :alien + :accessor rectangle-x + :initarg :x + :type int) + (y + :allocation :alien + :accessor rectangle-y + :initarg :y + :type int) + (width + :allocation :alien + :accessor rectangle-width + :initarg :width + :type int) + (height + :allocation :alien + :accessor rectangle-height + :initarg :height + :type int)) + (:metaclass boxed-class)) + + +(define-types-by-introspection "Gdk" + ("GdkFunction" :type gc-function) + ("GdkWMDecoration" :type wm-decoration) + ("GdkWMFunction" :type wm-function) + ("GdkGC" :type gc) + ("GdkGCX11" :type gc-x11) + ("GdkGCValuesMask" :type gc-values-mask) + ("GdkDrawableImplX11" :ignore t) + ("GdkWindowImplX11" :ignore t) + ("GdkPixmapImplX11" :ignore t) + ("GdkGCX11" :ignore t) + ("GdkColor" :ignore t) + ("GdkEvent" :ignore t) + ("GdkRectngle" :ignore t) + ("GdkCursor" :ignore t) + ("GdkFont" :ignore t) ; deprecated + ("GdkEventMask" :ignore t) ; manually defined + + ("GdkDisplay" + :slots + ((name + :allocation :virtual + :getter "gdk_display_get_name" + :reader display-name + :type (copy-of string)) + (screens + :allocation :virtual + :getter display-screens) + (devices + :allocation :virtual + :getter "gdk_display_list_devices" + :reader display-devices + :type (copy-of (glist device))))) + + ("GdkDrawable" + :slots + ((display + :allocation :virtual + :getter "gdk_drawable_get_display" + :reader drawable-display + :type display) + (screen + :allocation :virtual + :getter "gdk_drawable_get_screen" + :reader drawable-screen + :type screen) + (visual + :allocation :virtual + :getter "gdk_drawable_get_visual" + :reader drawable-visual + :type visual) + (colormap + :allocation :virtual + :getter "gdk_drawable_get_colormap" + :setter "gdk_drawable_set_colormap" + :unbound nil + :accessor drawable-colormap + :initarg :colormap + :type colormap) + (depth + :allocation :virtual + :getter "gdk_drawable_get_depth" + :reader drawable-depth + :type int) + (with + :allocation :virtual + :getter drawable-width) + (height + :allocation :virtual + :getter drawable-height))) + + ("GdkWindow" + :slots + ((state + :allocation :virtual + :getter "gdk_window_get_state" + :reader window-state + :type window-state) + (parent + :allocation :virtual + :getter "gdk_window_get_parent" + :reader window-parent + :type window) + (toplevel + :allocation :virtual + :getter "gdk_window_get_toplevel" + :reader window-toplevel + :type window) + (children + :allocation :virtual + :getter "gdk_window_get_children" + :reader window-children + :type (glist window)) + (events + :allocation :virtual + :getter "gdk_window_get_events" + :setter "gdk_window_set_events" + :accessor window-events + :type event-mask) + (group + :allocation :virtual + :getter "gdk_window_get_group" + :setter "gdk_window_set_group" + :unbound nil + :accessor window-group + :type window)))) + + +(deftype bitmap () 'pixmap) + +(defclass cursor (boxed) ((type :allocation :alien - :accessor cursor-type - :initarg :type - :type cursor-type)) - (:metaclass alien-class)) - - -(defclass drag-context (gobject) - () - (:metaclass gobject-class) - (:alien-name "GdkDragContext")) + :reader cursor-type + :type cursor-type) + (ref-count + :allocation :alien + :type unsigned-int) + (display + :allocation :virtual + :getter "gdk_cursor_get_display" + :reader cursor-display + :type display)) + (:metaclass boxed-class)) -(defclass event (alien-structure) - ((type +(defclass geometry (struct) + ((min-width :allocation :alien -; :accessor event-type - :type event-type) - (window + :accessor geometry-min-width + :initarg :min-width + :type int) + (min-height :allocation :alien - :accessor event-window - :initarg :window - :type window) - (send-event + :accessor geometry-min-height + :initarg :min-height + :type int) + (max-width :allocation :alien - :accessor event-send-event - :initarg :send-event - :type (signed 8))) - (:metaclass alien-class) - (:alien-name "GdkEvent")) - - -(defclass expose-event (event) - () - (:metaclass alien-class)) - - -(defclass delete-event (event) - () - (:metaclass alien-class)) - - - - -;(define-boxed device-key) -;(define-boxed device-info) -;(define-boxed time-coord) -;(define-boxed ic) -;(define-boxed ic-attr) - + :accessor geometry-max-width + :initarg :max-width + :type int) + (max-height + :allocation :alien + :accessor geometry-max-height + :initarg :max-height + :type int) + (base-width + :allocation :alien + :accessor geometry-base-width + :initarg :base-width + :type int) + (base-height + :allocation :alien + :accessor geometry-base-height + :initarg :base-height + :type int) + (width-inc + :allocation :alien + :accessor geometry-width-inc + :initarg :width-inc + :type int) + (height-inc + :allocation :alien + :accessor geometry-height-inc + :initarg :height-inc + :type int) + (min-aspect + :allocation :alien + :accessor geometry-min-aspect + :initarg :min-aspect + :type double-float) + (max-aspect + :allocation :alien + :accessor geometry-max-aspect + :initarg :max-aspect + :type double-float) + (gravity + :allocation :alien + :accessor geometry-gravity + :initarg :gravity + :type gravity)) + (:metaclass struct-class))