Jan. 31st, 2009

Смог понять, как создавать свои типы GObject'ов и реализовывать в них интерфейсы (с помощью одного макроса по описанию интерфейса генерируется код инициализации интерфейса, callback'и, перенаправляющие вызов метода интерфейса в вызов generic function, и собственно сами generic function).

Попробовал реализовать интерфейс GtkTreeModel — работает.

Пожалуй, это один из нетривиальных моментов.

(defun test-treeview ()
  (let* ((window (make-instance 'gtk:gtk-window :type :toplevel :title "Treeview" :border-width 30))
         (model (make-instance 'tree-model))
         (tv (make-instance 'gtk:tree-view :model model :headers-visible t)))
    (g-signal-connect window "destroy" (lambda (w) (declare (ignore w)) (gtk:gtk-main-quit)))
    (let ((column (make-instance 'gtk:tree-view-column :title "Number"))
          (renderer (make-instance 'gtk:cell-renderer-text :text "A text")))
      (%gtk-tree-view-column-pack-start column renderer t)
      (%gtk-tree-view-column-add-attribute column renderer "text" 0)
      (%gtk-tree-view-append-column tv column))
    (gtk:container-add window tv)
    (gtk:gtk-widget-show-all window)
    (gtk:gtk-main)))
Tree View

Profile

dmitry_vk

April 2023

S M T W T F S
      1
234567 8
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 6th, 2026 04:27 am
Powered by Dreamwidth Studios