tree-view expand and contract
If I use the '+' button in the example below, to (try to) expand all
the nodes in the tree view, I have to press *twice* to get all the
levels expaned. Strangely enough, this happens only after a new
instance is created. After the first press the button(s) start to do
the right thing, i.e., expand and contract all the nodes in the tree-
view.
Am I applying 'tree-view-expanded-p' incorrectly somehow?
(capi:define-interface tree-view-test ()
()
(:panes
(tree capi:tree-view
:roots '(1 2 3 4)
:children-function #'(lambda (x)
(and (< x 50)
(let ((base (* x 4)))
(list (+ base 1)
(+ base 2)
(+ base 3)
(+ base 4)))))
:visible-min-width 200
:visible-min-height 200
; :retain-expanded-nodes t
:vertical-scroll t)
(expand capi:push-button :text "+"
:callback-type :interface
:selection-callback #'(lambda (interface)
(with-slots (tree) interface
(capi:map-collection-items tree
#'(lambda(x) (setf (capi::tree-view-expanded-p tree x) t))))))
(contract capi:push-button :text "-"
:callback-type :interface
:selection-callback #'(lambda (interface)
(with-slots (tree) interface
(capi:map-collection-items
tree #'(lambda(x) (setf (capi::tree-view-expanded-p tree x) ())))))))
(:layouts
(default-layout
capi:column-layout
'(tree expand contract)))
(:default-initargs
:title "Tree View Test"))
(capi:display (make-instance 'tree-view-test))
Mika
Mika Kuuskankare
Researcher
Department of Doctoral Studies in Musical Performance and Research
Sibelius Academy
Henkilökohtainen postiosoite/Personal post address
PL 342 - PO Box 342
FIN-00121 Helsinki, FINLAND
Tel: +358 (0)40 5415 233
Skype: mkuuskan
home page: www.siba.fi/~mkuuskan