def _do_layout(self, size=None): """Computes the size and position of the label and arrow. Overrides and extends ToolTip._do_layout() """ if not self.component or not hasattr(self.component, "map_screen"): return # Call the parent class layout. This computes all the label ToolTip._do_layout(self) self._screen_coords = self.component.map_screen([self.data_point])[0] sx, sy = self._screen_coords if isinstance(self.label_position, str): orientation = self.label_position if ("left" in orientation) or ("right" in orientation): if " " not in orientation: self.y = sy - self.height / 2 if "left" in orientation: self.outer_x = sx - self.outer_width - 1 elif "right" in orientation: self.outer_x = sx if ("top" in orientation) or ("bottom" in orientation): if " " not in orientation: self.x = sx - self.width / 2 if "bottom" in orientation: self.outer_y = sy - self.outer_height - 1 elif "top" in orientation: self.outer_y = sy if "center" in orientation: if " " not in orientation: self.x = sx - (self.width / 2) self.y = sy - (self.height / 2) else: self.x = sx - (self.outer_width / 2) - 1 self.y = sy - (self.outer_height / 2) - 1 else: self.x = sx + self.label_position[0] self.y = sy + self.label_position[1] self._cached_arrow = None return
def _do_layout(self, size=None): """Computes the size and position of the label and arrow. Overrides and extends ToolTip._do_layout() """ if not self.component or not hasattr(self.component, "map_screen"): return # Call the parent class layout. This computes all the label ToolTip._do_layout(self) self._screen_coords = self.component.map_screen([self.data_point])[0] sx, sy = self._screen_coords if isinstance(self.label_position, str): orientation = self.label_position if ("left" in orientation) or ("right" in orientation): if " " not in orientation: self.y = sy - self.height / 2 if "left" in orientation: self.outer_x = sx - self.outer_width - 1 elif "right" in orientation: self.outer_x = sx if ("top" in orientation) or ("bottom" in orientation): if " " not in orientation: self.x = sx - self.width / 2 if "bottom" in orientation: self.outer_y = sy - self.outer_height - 1 elif "top" in orientation: self.outer_y = sy if "center" in orientation: if " " not in orientation: self.x = sx - (self.width/2) self.y = sy - (self.height/2) else: self.x = sx - (self.outer_width/2) - 1 self.y = sy - (self.outer_height/2) - 1 else: self.x = sx + self.label_position[0] self.y = sy + self.label_position[1] self._cached_arrow = None return