X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/56460319be51dd9ffc1005dca03a7b145ff4734b..4280ef98d488972c3c18fd9b727b58bfe04e6236:/gdk/gdktypes.lisp diff --git a/gdk/gdktypes.lisp b/gdk/gdktypes.lisp index 3ffc850..414fb27 100644 --- a/gdk/gdktypes.lisp +++ b/gdk/gdktypes.lisp @@ -15,13 +15,21 @@ ;; 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.5 2001-11-12 22:29:17 espen Exp $ +;; $Id: gdktypes.lisp,v 1.14 2005-02-26 10:44:09 espen Exp $ (in-package "GDK") (eval-when (:compile-toplevel :load-toplevel :execute) - (init-types-in-library "libgdk-x11-1.3.so") - (init-types-in-library "libgdk_pixbuf-1.3.so")) + (init-types-in-library #.(concatenate 'string + (pkg-config:pkg-variable "gtk+-2.0" "libdir") + "/libgdk-x11-2.0.so") :prefix "gdk_") + (init-types-in-library #.(concatenate 'string + (pkg-config:pkg-variable "gtk+-2.0" "libdir") + "/libgdk-x11-2.0.so") :prefix "_gdk_") + (init-types-in-library #.(concatenate 'string + (pkg-config:pkg-variable "gtk+-2.0" "libdir") + "/libgdk_pixbuf-2.0.so") :prefix "gdk_")) + (defclass color (boxed) ((pixel @@ -33,7 +41,7 @@ (defclass color (boxed) :type unsigned-short) (green :allocation :alien - :accessor color-grenn + :accessor color-green :type unsigned-short) (blue :allocation :alien @@ -43,31 +51,203 @@ (defclass color (boxed) (:alien-name "GdkColor")) -(eval-when (:compile-toplevel :load-toplevel :execute) - (define-types-by-introspection "Gdk" - ("GdkFunction" :type gc-function) - ("GdkGC" :type gc) - ("GdkDrawableImplX11" :ignore t) - ("GdkWindowImplX11" :ignore t) - ("GdkPixmapImplX11" :ignore t) - ("GdkGCX11" :ignore t) - ("GdkColor" :ignore t) - ("GdkEvent" :ignore t))) +(deftype point () '(vector int 2)) +(deftype segment () '(vector int 4)) +(deftype trapezoid () '(vector double-float 6)) +(deftype atom () 'unsigned-int) + + +;; 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) + (:alien-name "GdkRectangle")) + + +(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 + + ("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 (struct) +(defclass cursor (boxed) ((type :allocation :alien - :accessor cursor-type - :initarg :type - :type cursor-type)) - (:metaclass proxy-class) - (:copy %cursor-copy) - (:free %cursor-free)) + :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) + (:alien-name "GdkCursor")) -(defclass device (struct) - () - (:metaclass proxy-class)) +(defclass geometry (struct) + ((min-width + :allocation :alien + :accessor geometry-min-width + :initarg :min-width + :type int) + (min-height + :allocation :alien + :accessor geometry-min-height + :initarg :min-height + :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-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))