Generates a popup menu or menu-component.
capi
make-pane-popup-menu pane interface &key title menu-name component-p => menu
| pane⇩ |
A pane in an interface. |
| interface⇩ |
An interface or nil. |
| title⇩ |
A string or nil. |
| menu-name⇩ |
A string or nil. |
| component-p⇩ |
A boolean. |
| menu⇩ |
A menu or a 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) - 01 Dec 2021 19:33:57