From 2194eebc575bb8086bb20ee75bde4488e4a67fda Mon Sep 17 00:00:00 2001 From: Dmitry Kalyanov Date: Thu, 19 Mar 2009 02:17:41 +0300 Subject: [PATCH] added cffi type translator for GdkAtom --- gdk/gdk.functions.lisp | 7 +++++++ gdk/gdk.objects.lisp | 11 +++++++++++ gdk/gdk.package.lisp | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gdk/gdk.functions.lisp b/gdk/gdk.functions.lisp index 4d6f0bf..96a5bf1 100644 --- a/gdk/gdk.functions.lisp +++ b/gdk/gdk.functions.lisp @@ -47,3 +47,10 @@ (x :int) (y :int) (layout (g-object pango-layout))) + +(defcfun gdk-atom-name (glib:g-string :free-from-foreign t) + (atom gdk-atom)) + +(defcfun gdk-atom-intern gdk-atom + (name :string) + (only-if-exists :boolean)) \ No newline at end of file diff --git a/gdk/gdk.objects.lisp b/gdk/gdk.objects.lisp index 4a6798d..bc1fceb 100644 --- a/gdk/gdk.objects.lisp +++ b/gdk/gdk.objects.lisp @@ -167,6 +167,17 @@ (defctype gdk-atom :pointer) +(define-foreign-type gdk-atom-as-string-type () + () + (:actual-type :pointer) + (:simple-parser gdk-atom-as-string)) + +(defmethod translate-from-foreign (value (type gdk-atom-as-string-type)) + (gdk-atom-name value)) + +(defmethod translate-to-foreign (value (type gdk-atom-as-string-type)) + (gdk-atom-intern value nil)) + (define-g-boxed-class nil event-property ((event type :property-notify)) (atom gdk-atom) (time :uint32) diff --git a/gdk/gdk.package.lisp b/gdk/gdk.package.lisp index d1a6cfc..935593b 100644 --- a/gdk/gdk.package.lisp +++ b/gdk/gdk.package.lisp @@ -7,7 +7,7 @@ #:gdk-gc-new #:drawable-get-size #:gdk-draw-layout - )) + #:gdk-atom-as-string)) (in-package :gdk) -- 1.7.10.4