Reverted a previous change which didn't work
[clg] / gtk / gtktree.lisp
index 8025a15..d25cfb1 100644 (file)
@@ -1,5 +1,5 @@
 ;; Common Lisp bindings for GTK+ v2.0
-;; Copyright (C) 1999-2001 Espen S. Johnsen <esj@stud.cs.uit.no>
+;; Copyright (C) 1999-2005 Espen S. Johnsen <espen@users.sf.net>
 ;;
 ;; This library is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public
@@ -15,7 +15,7 @@
 ;; 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: gtktree.lisp,v 1.6 2005/02/03 23:09:09 espen Exp $
+;; $Id: gtktree.lisp,v 1.8 2005/03/03 10:05:32 espen Exp $
 
 
 (in-package "GTK")
 (defbinding cell-layout-clear () nil
   (cell-layout cell-layout))
 
-(defbinding cell-layout-add-attribute (cell-layout cell attribute column) nil
+(defbinding cell-layout-add-attribute 
+    (cell-layout cell attribute column &optional model) nil
   (cell-layout cell-layout)
   (cell cell-renderer)
   ((string-downcase attribute) string)
-  (column int))
+  ((if model (column-index model column) column) int))
 
 (def-callback-marshal %cell-layout-data-func 
     (nil cell-layout cell-renderer tree-model (copy-of tree-iter)))
     #'(lambda (location &optional (offset 0))
        (%tree-path-to-vector (funcall reader location offset)))))
 
+(defmethod destroy-function ((type (eql 'tree-path)) &rest args)
+  (declare (ignore type args))
+  (let ((reader (reader-function 'pointer)))
+    #'(lambda (location &optional (offset 0))
+       (%tree-path-free (funcall reader location offset)))))
+
 
 (defbinding %tree-row-reference-new () pointer
   (model tree-model)