The current way that it's done is very clunky. I propose something like:
ImguiFigure has a click event handler, if there's a graphic in the pick info (thanks to #947 we can do this now) we can check a Graphic.right_click_menu property which must be an instance of Popup. right_click_menu.setter could take a Popup class and create the instance internally, passing it the parent Figure instance.
This will also make it easy to have some standard default right-click menus for various graphics, like images. We could allow overriding these default by passing a dict to ImguiFigure, like {fpl.ImageGraphic: CustomPopupClass, ...}