;; 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)