Есть некая структура, по типу (defstruct tvi title value)
Я хочу отображать её слоты в столбцах tree-view и сортировать их
Для этого использую array-list-store. Точно так, как это делается в файле gtk.demo.lisp (функция test-treeview-list)
(let* ((window (make-instance 'gtk-window :type :toplevel :title "Treeview (list)"))
(model (make-instance 'array-list-store))
....
(tv (make-instance 'tree-view :headers-visible t :width-request 100 :height-request 400 :rules-hint t))
....
)
(store-add-column model "gchararray" #'tvi-title)
(store-add-column model "gint" #'tvi-value)
(store-add-item model (make-tvi :title "Monday" :value 1))
(store-add-item model (make-tvi :title "Tuesday" :value 2))
(store-add-item model (make-tvi :title "Wednesday" :value 3))
(store-add-item model (make-tvi :title "Thursday" :value 4))
(store-add-item model (make-tvi :title "Friday" :value 5))
(store-add-item model (make-tvi :title "Saturday" :value 6))
(store-add-item model (make-tvi :title "Sunday" :value 7))
(setf (tree-view-model tv) model)
....
Далее идет такой код
(let ((column (make-instance 'tree-view-column :title "Title" :sort-column-id 0))
(renderer (make-instance 'cell-renderer-text :text "A text")))
(tree-view-column-pack-start column renderer)
(tree-view-column-add-attribute column renderer "text" 0)
(tree-view-append-column tv column)
(print (tree-view-column-tree-view column))
(print (tree-view-column-cell-renderers column)))
(let ((column (make-instance 'tree-view-column :title "Value"))
(renderer (make-instance 'cell-renderer-text :text "A text")))
(tree-view-column-pack-start column renderer)
(tree-view-column-add-attribute column renderer "text" 1)
(tree-view-append-column tv column)
(print (tree-view-column-tree-view column))
(print (tree-view-column-cell-renderers column)))
Теперь при нажатии на столбец в tree-view получаю (у себя и в gtk-demo:test-treeview-list):
(<unknown>:4169): Gtk-CRITICAL **: IA__gtk_tree_sortable_get_sort_column_id: assertion `GTK_IS_TREE_SORTABLE (sortable)' failed
(<unknown>:4169): Gtk-CRITICAL **: IA__gtk_tree_sortable_has_default_sort_func: assertion `GTK_IS_TREE_SORTABLE (sortable)' failed
(<unknown>:4169): Gtk-CRITICAL **: IA__gtk_tree_sortable_set_sort_column_id: assertion `GTK_IS_TREE_SORTABLE (sortable)' failed
Вопрос: есть ли какой-то аналог gtk_tree_sortable_set_default_sort_func в cl-gtk2. Код пробовал смотреть, но там всё слишком заумно ;)
P.S. И да, есть ли какая-либо документация лучше http://common-lisp.net/project/cl-gtk2/doc/gtk/? Гугль дал только это + как написать hello-world на lisper.ru