MCPcopy Index your code
hub / github.com/matplotlib/matplotlib / MenuItem

Class MenuItem

galleries/examples/widgets/menu.py:26–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24
25
26class MenuItem(artist.Artist):
27 padx = 0.05 # inches
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)
63 if not over:
64 return
65 if self.on_select is not None:
66 self.on_select(self)
67
68 def set_extent(self, x, y, w, h, depth):
69 self.rect.set(x=x, y=y, width=w, height=h)
70 self.label.set(position=(x + self.padx, y + depth + self.pady / 2))
71 self.hover = False
72
73 def draw(self, renderer):
74 self.rect.draw(renderer)
75 self.label.draw(renderer)
76
77 def set_hover_props(self, b):
78 props = self.hoverprops if b else self.props
79 self.label.set(color=props.labelcolor)
80 self.rect.set(facecolor=props.bgcolor, alpha=props.alpha)
81
82 def set_hover(self, event):
83 """

Callers 1

menu.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…