A subclass of simple-layout
that displays only one of its children at a time, and provides functionality for switching the displayed child to one of the other children.
The switchable-layout
is passed a list of children to be its initial list of children, and also the initially visible child (which defaults to the first of the children). It inherits all of its layout behavior from simple-layout
as it only ever lays out one child at a time.
(setq children (list
(make-instance 'capi:push-button
:text "Press Me")
(make-instance 'capi:list-panel
:items '(1 2 3 4 5))))
(setq layout (capi:contain
(make-instance
'capi:switchable-layout
:description children)
:process nil))
(setf (capi:switchable-layout-visible-child layout)
(second children))
(setf (capi:switchable-layout-visible-child layout)
(first children))