X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/f4175703fcb0b913a124d9391161fd735cd6a230..b1bd926714a41589d68b83d72d511fb91655c48d:/gtk/gtktree.lisp diff --git a/gtk/gtktree.lisp b/gtk/gtktree.lisp index 7864a12..d01bc2c 100644 --- a/gtk/gtktree.lisp +++ b/gtk/gtktree.lisp @@ -1,5 +1,5 @@ ;; Common Lisp bindings for GTK+ v2.0 -;; Copyright (C) 1999-2001 Espen S. Johnsen +;; Copyright (C) 1999-2005 Espen S. Johnsen ;; ;; 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.3 2004-11-21 17:57:56 espen Exp $ +;; $Id: gtktree.lisp,v 1.8 2005-03-03 10:05:32 espen Exp $ (in-package "GTK") @@ -47,11 +47,12 @@ (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) @@ -274,6 +275,12 @@ #'(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) @@ -292,7 +299,7 @@ (reference tree-row-reference)) -(defbinding tree-model-get-column-type () type-number +(defbinding tree-model-get-column-type () gtype ;type-number (tree-model tree-model) (index int)) @@ -312,9 +319,9 @@ (column int) (gvalue gvalue)) -(defun tree-model-get-column-value (model iter column) +(defun tree-model-column-value (model iter column) (let ((index (column-index model column))) - (with-gvalue (gvalue (tree-model-get-column-type model index)) + (with-gvalue (gvalue) (%tree-model-get-value model iter index gvalue)))) (defbinding tree-model-iter-next () boolean @@ -337,7 +344,7 @@ (iter tree-iter)) (defbinding tree-model-iter-nth-child - (tree-model parent &optional (iter (make-instance 'tree-iter))) boolean + (tree-model parent n &optional (iter (make-instance 'tree-iter))) boolean (tree-model tree-model) (iter tree-iter :return) (parent (or null tree-iter)) @@ -418,7 +425,8 @@ (let ((setter (mkbinding (column-setter-name model) nil (type-of model) 'tree-iter 'int - (type-from-number (tree-model-get-column-type model index)) +; (type-from-number (tree-model-get-column-type model index)) + (tree-model-get-column-type model index) 'int))) #'(lambda (value iter) (funcall setter model iter index value -1)))))))) @@ -465,7 +473,7 @@ (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 @@ -588,7 +596,7 @@ (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)) @@ -684,7 +692,7 @@ (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))