chiark / gitweb /
Added multi-threading support
[clg] / gtk / gtktree.lisp
index 83e970c183f8692f8250ac4dfc17136df704e9c8..81d647424e0ccd53859a404a14ac2a9cd026defa 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")
@@ -81,13 +81,16 @@ (defmethod initialize-instance ((list-store list-store) &key column-types
   (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 @@ (defbinding %tree-model-get-value () nil
   (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 @@ (defun tree-model-row-setter (model)
                         (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)