added cffi type translator for GdkAtom
authorDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Wed, 18 Mar 2009 23:17:41 +0000 (02:17 +0300)
committerDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Wed, 18 Mar 2009 23:17:41 +0000 (02:17 +0300)
gdk/gdk.functions.lisp
gdk/gdk.objects.lisp
gdk/gdk.package.lisp

index 4d6f0bf..96a5bf1 100644 (file)
   (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
index 4a6798d..bc1fceb 100644 (file)
 
 (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)
index d1a6cfc..935593b 100644 (file)
@@ -7,7 +7,7 @@
            #:gdk-gc-new
            #:drawable-get-size
            #:gdk-draw-layout
-           ))
+           #:gdk-atom-as-string))
 
 (in-package :gdk)