X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/75689fea8b73ccc1e8cb32b671b7fd881da40cf3..e9de85978fd997e7412502ad5977b013c3fca93f:/gtk/gtktree.lisp diff --git a/gtk/gtktree.lisp b/gtk/gtktree.lisp index 83e970c..81d6474 100644 --- a/gtk/gtktree.lisp +++ b/gtk/gtktree.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gtktree.lisp,v 1.16 2006-02-26 15:30:01 espen Exp $ +;; $Id: gtktree.lisp,v 1.18 2006-03-03 19:00:12 espen Exp $ (in-package "GTK") @@ -81,13 +81,16 @@ (call-next-method) (%list-store-set-column-types list-store column-types) (when column-names - (setf (object-data list-store 'column-names) column-names)) + (setf + (object-data list-store 'column-names) + (coerce column-names 'vector))) (when initial-content (loop with iter = (make-instance 'tree-iter) for row in initial-content do (list-store-append list-store row iter)))) +(defgeneric column-setter-name (store)) (defmethod column-setter-name ((list-store list-store)) (declare (ignore list-store)) @@ -321,7 +324,9 @@ (column int) (gvalue gvalue)) -(defun tree-model-value (model row column) +(defgeneric tree-model-value (model row column)) + +(defmethod tree-model-value ((model tree-model) row column) (let ((index (column-index model column)) (iter (etypecase row (tree-iter row) @@ -460,7 +465,9 @@ (funcall setter value iter)) row setters))))))) -(defun (setf tree-model-value) (value model row column) +(defgeneric (setf tree-model-value) (value model row column)) + +(defmethod (setf tree-model-value) (value (model tree-model) row column) (let ((iter (etypecase row (tree-iter row) (tree-path (multiple-value-bind (valid iter)