guile-gtk-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Using 'set-cell-data-func' to transform model-data->cell-renderer


From: Diogo F . S . Ramos
Subject: Using 'set-cell-data-func' to transform model-data->cell-renderer
Date: Tue, 08 Mar 2011 23:03:38 -0300 (BRT)

I'm trying to use 'set-cell-data-func' to control how the data from a
gtk-store-model is displayed in a gtk-tree-view.

Everything works normal when I use 'set-attribute' to map a model
column to the "text" field of a gtk-cell-renderer-text.

When I use 'set-cell-data-func' however, apparently the function never
returns, not even showing the gtk-window.

There is a sample program below that shows this behavior.

I'm using guile version 1.8.7 with guile-gnome 2.16.1.

I don't know if I'm using the library wrong or if this is a bug.


#!/usr/bin/guile \
-e main -s
!#

(use-modules
 (oop goops)
 (gnome-2)
 (gnome gtk)
 (gnome gobject)
 (gnome gobject generics)
 (gnome gobject utils))

(define (main args)
  (let* ((win (make <gtk-window>
               #:type 'toplevel
               #:default-width 200
               #:default-height 200))
         (model (gtk-list-store-new (list <gchararray>)))
         (view (make <gtk-tree-view> #:model model))
         (col (make <gtk-tree-view-column> #:title "foo"))
         (cell (make <gtk-cell-renderer-text>)))
    (append-column view col)
    (pack-start col cell #f)

    ;; It doesn't work with this
    (set-cell-data-func
     col cell
     (lambda (col cell model iter)
       (set cell 'text "foo")))
    ;; It works with this
    ;; (add-attribute col cell "text" 0)

    (set-value model (append model) 0 "foo")
    (set-value model (append model) 0 "foo")

    (connect win 'delete-event (lambda (b c) #f))
    (connect win 'destroy (lambda (b) (gtk-main-quit)))
    (add win view)
    (show-all win)
    (gtk-main)))

-- 
Diogo F. S. Ramos



reply via email to

[Prev in Thread] Current Thread [Next in Thread]