Generates a popup menu or menu-component.
The generic function make-pane-popup-menu
generates a popup menu for
pane
.
interface
can be nil
if
pane
has already been created, in which case the
interface
of
pane
is used (obtained by the element accessor element-interface
).
title
and
menu-name
provide a title and name for
menu
.
title
and
menu-name
both default to nil
.
If
component-p
is true, then make-pane-popup-menu
creates a menu-component rather than a menu. The default value of
component-p
is nil
.
This code makes an interface with two graph-panes. The initialize-instance
method uses make-pane-popup-menu
to add a menu to the menu bar from which the user can perform operations on the graphs.
Note that, because make-pane-popup-menu
calls make-menu-for-pane
to make each menu, the callbacks in the menus are automatically done on the appropriate graph.
(capi:define-interface gg ()
()
(:panes
(g1 capi:graph-pane)
(g2 capi:graph-pane))
(:layouts
(main-layout capi:column-layout '(g1 g2)))
(:menu-bar)
(:default-initargs
:visible-min-width 200
:visible-min-height 300))
(defmethod initialize-instance :after ((self gg)
&key)
(with-slots (g1 g2) self
(setf
(capi:interface-menu-bar-items self)
(append
(capi:interface-menu-bar-items self)
(list
(make-instance
'capi:menu
:title "Graphs"
:items
(list
(capi:make-pane-popup-menu
g1 self :title "graph1")
(capi:make-pane-popup-menu
g2 self :title "graph2"))))))))
(capi:display (make-instance 'gg))
CAPI User Guide and Reference Manual (Windows version) - 3 Aug 2017