def handle_hover_in(self, fig, x, y): if self.tooltip: self.tooltip.close() self.tooltip = None if not mforms.Form.main_form().is_active(): return if fig and getattr(fig, 'hover_text_template', None): text = self.make_tooltip_text(fig, fig.hover_text_template) if text: self.tooltip = mforms.newPopover(None, mforms.PopoverStyleTooltip) fx = fig.x + self.offset[0] + fig.width + 4 fy = fig.y + self.offset[1] + fig.height / 2 xx, yy = self.client_to_screen(fx, fy) box = mforms.newBox(False) box.set_spacing(0) t = "" for line in text.split("\n"): if line.startswith("*"): if t: if t.endswith("\n"): t = t[:-1] label = mforms.newLabel(t) label.set_style(mforms.SmallStyle) box.add(label, False, True) t = "" label = mforms.newLabel(line[1:].rstrip("\n")) label.set_style(mforms.SmallBoldStyle) box.add(label, False, True) else: t += line + "\n" if t: label = mforms.newLabel(t.rstrip("\n")) label.set_style(mforms.SmallStyle) box.add(label, False, True) self.tooltip.set_size(max(box.get_preferred_width(), 100), max(box.get_preferred_height(), 50)) self.tooltip.set_content(box) self.tooltip.add_close_callback(self.close_tooltip) self.tooltip.show_and_track(self, xx, yy, mforms.StartRight)
def handle_hover_in(self, fig, x, y): if self.tooltip: self.tooltip.close() self.tooltip = None if not mforms.Form.main_form().is_active(): return if fig and getattr(fig, 'hover_text_template', None): text = self.make_tooltip_text(fig, fig.hover_text_template) if text: self.tooltip = mforms.newPopover(mforms.PopoverStyleTooltip) fx = fig.x + self.offset[0] + 2 * fig.width / 3 fy = fig.y + self.offset[1] + 2 * fig.height / 3 xx, yy = self.client_to_screen(fx, fy) box = mforms.newBox(False) box.set_spacing(0) t = "" for line in text.split("\n"): if line.startswith("*"): if t: if t.endswith("\n"): t = t[:-1] label = mforms.newLabel(t) label.set_style(mforms.SmallStyle) box.add(label, False, False) t = "" label = mforms.newLabel(line[1:].rstrip("\n")) label.set_style(mforms.SmallBoldStyle) box.add(label, False, False) else: t += line+"\n" if t: label = mforms.newLabel(t.rstrip("\n")) label.set_style(mforms.SmallStyle) box.add(label, False, False) self.tooltip.set_size(max(box.get_preferred_width(), 100), max(box.get_preferred_height(), 50)) self.tooltip.set_content(box) self.tooltip.add_close_callback(self.close_tooltip) self.tooltip.show_and_track(self, xx, yy, mforms.StartRight)