Update of /project/cells-gtk/cvsroot/root/gtk-ffi In directory common-lisp:/tmp/cvs-serv32582/root/gtk-ffi
Modified Files: gtk-utilities.lisp Log Message: Replaced hello-c:ff-defun-callable with cffi:defcallback. Replaced some fgn-alloc fgn-free stuff with equivalent cffi.
--- /project/cells-gtk/cvsroot/root/gtk-ffi/gtk-utilities.lisp 2006/01/03 19:10:45 1.16 +++ /project/cells-gtk/cvsroot/root/gtk-ffi/gtk-utilities.lisp 2006/02/11 03:48:09 1.17 @@ -82,46 +82,36 @@ ,@body) (gdk-threads-leave)))
-(ffx:ff-defun-callable :cdecl :int button-press-event-handler - ((widget :pointer-void) (signal (* gdk-event-button)) (data :pointer-void)) +(cffi:defcallback button-press-event-handler :int + ((widget :pointer) (signal :pointer) (data :pointer)) (let ((event (gdk-event-button-type signal))) - (when (or (eql (event-type event) :button_press) + (when (or (eql (event-type event) :button_press) (eql (event-type event) :button_release)) (when (= (gdk-event-button-button signal) 3) - (gtk-menu-popup widget nil nil nil nil 3 - (gdk-event-button-time signal))))) + (gtk-menu-popup widget nil nil nil nil 3 + (gdk-event-button-time signal))))) 0)
(defun gtk-widget-set-popup (widget menu) (gtk-signal-connect-swap widget "button-press-event" - (ffx:ff-register-callable 'button-press-event-handler) + (cffi:get-callback 'button-press-event-handler) :data menu) (gtk-signal-connect-swap widget "button-release-event" - (ffx:ff-register-callable 'button-press-event-handler) + (cffi:get-callback 'button-press-event-handler) :data menu))
(defun gtk-list-store-new (col-types) - (let ((c-types (ffx:fgn-alloc :int (length col-types)))) + (let ((c-types (cffi:foreign-alloc :int :count (length col-types)))) ;(ffx:fgn-alloc :int (length col-types)))) (loop for type in col-types for n upfrom 0 - do (setf (ffx:elti c-types n) (as-gtk-type type))) + do (setf (cffi:mem-aref c-types :int n) (coerce (as-gtk-type type) 'integer))) (prog1 (gtk-list-store-newv (length col-types) c-types) - (ffx:fgn-free c-types)))) + (cffi:foreign-free c-types))))
(defun gvi (&optional (key :anon)) - key -;;; (ukt:trc nil "gvi> " keY) -;;; (let ((tv (ffx:fgn-alloc :int 32))) -;;; (dotimes (n 32) (setf (ffx:elti tv n) 0)) -;;; (loop for type in '(:string :icon :int :string) -;;; do (print (list tv type (as-gtk-type type) -;;; (g_value_init tv (as-gtk-type type)))) -;;; (g_value_unset tv)) -;;; (ffx:fgn-free tv)) - ) - + key)
(defun gtk-list-store-set (lstore iter types-lst data-lst) (with-g-value (value) @@ -156,10 +146,10 @@ (gvi :post-set))))
(defun gtk-tree-store-new (col-types) - (let ((gtk-types (ffx:fgn-alloc :int (length col-types)))) + (let ((gtk-types (cffi:foreign-alloc :int :count (length col-types)))) ;(ffx:fgn-alloc :int (length col-types)) (loop for type in col-types for tn upfrom 0 - do (setf (ffx:elti gtk-types tn) (as-gtk-type type))) + do (setf (cffi:mem-aref gtk-types :int tn) (coerce (as-gtk-type type) 'integer))) (gtk-tree-store-newv (length col-types) gtk-types)))
(defun gtk-tree-store-set (tstore iter types-lst data-lst) @@ -234,7 +224,7 @@ (DECLARE (ignorable tree-column data)) (ukt:trc nil "gtv-render-cell (callback)> entry" tree-column cell-renderer model iter data) - (let ((return-buffer (ffx:fgn-alloc :int 16))) + (let ((return-buffer (cffi:foreign-alloc :int :count 16))) (gtk-tree-model-get model iter col return-buffer -1) (let* ((returned-value (deref-pointer-runtime-typed return-buffer @@ -267,9 +257,8 @@ (when cell-attrib-f (loop for property in (parse-cell-attrib (funcall cell-attrib-f item-value)) do (apply #'gtk-object-set-property cell-renderer property))) - (when ret$ - (uffi:free-foreign-object ret$)) - (ffx:fgn-free return-buffer))) + (when ret$ (cffi:foreign-free ret$)) + (cffi:foreign-free return-buffer))) 1))
(defun gtk-file-chooser-get-filenames-strs (file-chooser)