Added gffi to the list of used packages and cleaned up
[clg] / gtk / gtktree.lisp
index 83e970c..81d6474 100644 (file)
@@ -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")
   (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))
   (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)
                         (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)