(self, fig, labelstr, props=None, hoverprops=None,
on_select=None)
| 28 | pady = 0.05 |
| 29 | |
| 30 | def __init__(self, fig, labelstr, props=None, hoverprops=None, |
| 31 | on_select=None): |
| 32 | super().__init__() |
| 33 | |
| 34 | self.set_figure(fig) |
| 35 | self.labelstr = labelstr |
| 36 | |
| 37 | self.props = props if props is not None else ItemProperties() |
| 38 | self.hoverprops = ( |
| 39 | hoverprops if hoverprops is not None else ItemProperties()) |
| 40 | if self.props.fontsize != self.hoverprops.fontsize: |
| 41 | raise NotImplementedError( |
| 42 | 'support for different font sizes not implemented') |
| 43 | |
| 44 | self.on_select = on_select |
| 45 | |
| 46 | # specify coordinates in inches. |
| 47 | self.label = fig.text(0, 0, labelstr, transform=fig.dpi_scale_trans, |
| 48 | size=props.fontsize) |
| 49 | self.text_bbox = self.label.get_window_extent( |
| 50 | fig.canvas.get_renderer()) |
| 51 | self.text_bbox = fig.dpi_scale_trans.inverted().transform_bbox(self.text_bbox) |
| 52 | |
| 53 | self.rect = patches.Rectangle( |
| 54 | (0, 0), 1, 1, transform=fig.dpi_scale_trans |
| 55 | ) # Will be updated later. |
| 56 | |
| 57 | self.set_hover_props(False) |
| 58 | |
| 59 | fig.canvas.mpl_connect('button_release_event', self.check_select) |
| 60 | |
| 61 | def check_select(self, event): |
| 62 | over, _ = self.rect.contains(event) |
nothing calls this directly
no test coverage detected