|
22 | 22 | Contains a single `.Text` instance.
|
23 | 23 | """
|
24 | 24 |
|
| 25 | +import inspect |
| 26 | + |
25 | 27 | import numpy as np
|
26 | 28 |
|
27 | 29 | import matplotlib as mpl
|
@@ -350,8 +352,12 @@ def get_window_extent(self, renderer=None):
|
350 | 352 | # docstring inherited
|
351 | 353 | if renderer is None:
|
352 | 354 | renderer = self.figure._get_renderer()
|
353 |
| - w, h, xd, yd, offsets = self.get_extent_offsets(renderer) |
354 |
| - px, py = self.get_offset(w, h, xd, yd, renderer) |
| 355 | + w, h, xd, yd = self.get_extent(renderer) |
| 356 | + # Some subclasses redefine get_offset to take no args. |
| 357 | + if inspect.signature(self.get_offset).parameters: |
| 358 | + px, py = self.get_offset(w, h, xd, yd, renderer) |
| 359 | + else: |
| 360 | + px, py = self.get_offset() |
355 | 361 | return mtransforms.Bbox.from_bounds(px - xd, py - yd, w, h)
|
356 | 362 |
|
357 | 363 | def draw(self, renderer):
|
@@ -636,15 +642,6 @@ def get_offset(self):
|
636 | 642 | """Return offset of the container."""
|
637 | 643 | return self._offset
|
638 | 644 |
|
639 |
| - def get_window_extent(self, renderer=None): |
640 |
| - # docstring inherited |
641 |
| - if renderer is None: |
642 |
| - renderer = self.figure._get_renderer() |
643 |
| - w, h, xd, yd = self.get_extent(renderer) |
644 |
| - ox, oy = self.get_offset() # w, h, xd, yd) |
645 |
| - |
646 |
| - return mtransforms.Bbox.from_bounds(ox - xd, oy - yd, w, h) |
647 |
| - |
648 | 645 | def get_extent(self, renderer):
|
649 | 646 | """Return width, height, xdescent, ydescent of box."""
|
650 | 647 | dpi_cor = renderer.points_to_pixels(1.)
|
@@ -773,14 +770,6 @@ def get_offset(self):
|
773 | 770 | """Return offset of the container."""
|
774 | 771 | return self._offset
|
775 | 772 |
|
776 |
| - def get_window_extent(self, renderer=None): |
777 |
| - # docstring inherited |
778 |
| - if renderer is None: |
779 |
| - renderer = self.figure._get_renderer() |
780 |
| - w, h, xd, yd = self.get_extent(renderer) |
781 |
| - ox, oy = self.get_offset() |
782 |
| - return mtransforms.Bbox.from_bounds(ox - xd, oy - yd, w, h) |
783 |
| - |
784 | 773 | def get_extent(self, renderer):
|
785 | 774 | _, h_, d_ = renderer.get_text_width_height_descent(
|
786 | 775 | "lp", self._text._fontproperties,
|
@@ -876,14 +865,6 @@ def get_offset(self):
|
876 | 865 | """Return offset of the container."""
|
877 | 866 | return self._offset
|
878 | 867 |
|
879 |
| - def get_window_extent(self, renderer=None): |
880 |
| - # docstring inherited |
881 |
| - if renderer is None: |
882 |
| - renderer = self.figure._get_renderer() |
883 |
| - w, h, xd, yd = self.get_extent(renderer) |
884 |
| - ox, oy = self.get_offset() # w, h, xd, yd) |
885 |
| - return mtransforms.Bbox.from_bounds(ox - xd, oy - yd, w, h) |
886 |
| - |
887 | 868 | def get_extent(self, renderer):
|
888 | 869 | # clear the offset transforms
|
889 | 870 | _off = self.offset_transform.get_matrix() # to be restored later
|
@@ -1061,26 +1042,14 @@ def set_bbox_to_anchor(self, bbox, transform=None):
|
1061 | 1042 | self._bbox_to_anchor_transform = transform
|
1062 | 1043 | self.stale = True
|
1063 | 1044 |
|
1064 |
| - def get_window_extent(self, renderer=None): |
| 1045 | + def get_offset(self, width, height, xdescent, ydescent, renderer): |
1065 | 1046 | # docstring inherited
|
1066 |
| - if renderer is None: |
1067 |
| - renderer = self.figure._get_renderer() |
1068 |
| - |
1069 |
| - # Update the offset func, which depends on the dpi of the renderer |
1070 |
| - # (because of the padding). |
1071 |
| - fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) |
1072 |
| - |
1073 |
| - def _offset(w, h, xd, yd, renderer): |
1074 |
| - bbox = Bbox.from_bounds(0, 0, w, h) |
1075 |
| - pad = self.borderpad * fontsize |
1076 |
| - bbox_to_anchor = self.get_bbox_to_anchor() |
1077 |
| - x0, y0 = _get_anchored_bbox(self.loc, bbox, bbox_to_anchor, pad) |
1078 |
| - return x0 + xd, y0 + yd |
1079 |
| - |
1080 |
| - self.set_offset(_offset) |
1081 |
| - w, h, xd, yd = self.get_extent(renderer) |
1082 |
| - ox, oy = self.get_offset(w, h, xd, yd, renderer) |
1083 |
| - return Bbox.from_bounds(ox - xd, oy - yd, w, h) |
| 1047 | + bbox = Bbox.from_bounds(0, 0, width, height) |
| 1048 | + pad = (self.borderpad |
| 1049 | + * renderer.points_to_pixels(self.prop.get_size_in_points())) |
| 1050 | + bbox_to_anchor = self.get_bbox_to_anchor() |
| 1051 | + x0, y0 = _get_anchored_bbox(self.loc, bbox, bbox_to_anchor, pad) |
| 1052 | + return x0 + xdescent, y0 + ydescent |
1084 | 1053 |
|
1085 | 1054 | def update_frame(self, bbox, fontsize=None):
|
1086 | 1055 | self.patch.set_bounds(bbox.bounds)
|
@@ -1220,14 +1189,6 @@ def get_offset(self):
|
1220 | 1189 | def get_children(self):
|
1221 | 1190 | return [self.image]
|
1222 | 1191 |
|
1223 |
| - def get_window_extent(self, renderer=None): |
1224 |
| - # docstring inherited |
1225 |
| - if renderer is None: |
1226 |
| - renderer = self.figure._get_renderer() |
1227 |
| - w, h, xd, yd = self.get_extent(renderer) |
1228 |
| - ox, oy = self.get_offset() |
1229 |
| - return mtransforms.Bbox.from_bounds(ox - xd, oy - yd, w, h) |
1230 |
| - |
1231 | 1192 | def get_extent(self, renderer):
|
1232 | 1193 | if self._dpi_cor: # True, do correction
|
1233 | 1194 | dpi_cor = renderer.points_to_pixels(1.)
|
|
0 commit comments