;; 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.24 2006-09-15 07:43:00 espen Exp $
+;; $Id: gtktree.lisp,v 1.26 2007-01-07 19:56:05 espen Exp $
(in-package "GTK")
;;;; Cell Renderer
-(defmethod compute-signal-function ((gobject cell-renderer-toggle) (signal (eql 'toggled)) function object)
- (declare (ignore gobject signal function object))
+(defmethod compute-signal-function ((gobject cell-renderer-toggle) (signal (eql 'toggled)) function object args)
+ (declare (ignore gobject signal function object args))
(let ((function (call-next-method)))
#'(lambda (object path)
(funcall function object (ensure-tree-path path)))))
;;; Tree Model
+(defgeneric tree-model-value (model row column))
+(defgeneric (setf tree-model-value) (value model row column))
+(defgeneric tree-model-row-data (model row))
+(defgeneric (setf tree-model-row-data) (data model row))
+(defgeneric tree-model-column-index (model column))
+(defgeneric tree-model-column-name (model index))
+
+
(defbinding %tree-row-reference-new () pointer
(model tree-model)
(path tree-path))
(column int)
(gvalue gvalue))
-(defgeneric tree-model-value (model row column))
-
(defmethod tree-model-value ((model tree-model) row column)
(let ((index (tree-model-column-index model column)))
(with-gvalue (gvalue)
(%tree-model-get-value model (ensure-tree-iter model row) index gvalue))))
-(defgeneric tree-model-row-data (model row))
-
(defmethod tree-model-row-data ((model tree-model) row)
(coerce
(loop
(tree-model tree-model)
(iter tree-iter))
-(defbinding tree-model-iter-n-children () int
+(defbinding tree-model-iter-n-children (tree-model &optional iter) int
(tree-model tree-model)
- (iter tree-iter))
+ (iter (or null tree-iter)))
(defbinding tree-model-iter-nth-child
(tree-model parent n &optional (iter (make-instance 'tree-iter))) boolean
(iter tree-iter)
(new-order int))
-
(defmethod tree-model-column-index ((model tree-model) column)
(or
(etypecase column
(svref (user-data model 'column-names) index))
-(defgeneric (setf tree-model-value) (value model row column))
-
-(defgeneric (setf tree-model-row-data) (data model row))
-
(defmethod (setf tree-model-row-data) ((data list) (model tree-model) (iter tree-iter))
(loop
for (column value) on data by #'cddr