API changes to message-dialog
[clg] / gtk / gtktree.lisp
index 861fdf5..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.5 2005/01/06 21:50:11 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)))
@@ -61,7 +62,7 @@
   (cell cell-renderer)
   ((callback %cell-layout-data-func) pointer)
   ((register-callback-function function) unsigned-int)
-  ((callback %destroy-user-data) pointer))
+  ((callback user-data-destroy-func) pointer))
 
 (defbinding cell-layout-clear-attributes () nil
   (cell-layout cell-layout)
     #'(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)
   (iter tree-iter))
 
 (defbinding tree-model-iter-nth-child
-    (tree-model parent &optional (iter (make-instance 'tree-iter))) boolean
+    (tree-model parent &optional (iter (make-instance 'tree-iter))) boolean
   (tree-model tree-model)
   (iter tree-iter :return)
   (parent (or null tree-iter))
   (selection tree-selection)
   ((callback %tree-selection-func) pointer)
   ((register-callback-function function) unsigned-int)
-  ((callback %destroy-user-data) pointer))
+  ((callback user-data-destroy-func) pointer))
 
 (defbinding tree-selection-get-selected 
     (selection &optional (iter (make-instance 'tree-iter))) boolean
   (parent (or null tree-iter))
   (sibling (or null tree-iter)))
 
-(defun tree-store-insert-after 
+(defun tree-store-insert-before 
     (store parent sibling &optional data (iter (make-instance 'tree-iter)))
   (%tree-store-insert-before store iter parent sibling)
   (when data (%tree-model-set store iter data))
   (tree-view tree-view)
   (tree-view-column tree-view-column))
 
-(defbinding tree-view-insert-column (view columnd position) int
+(defbinding tree-view-insert-column (view column position) int
   (view tree-view)
   (column tree-view-column)
   ((if (eq position :end) -1 position) int))