@@ -263,11 +263,9 @@ def set_offset(self, xy):
263
263
xy : (float, float) or callable
264
264
The (x, y) coordinates of the offset in display units. These can
265
265
either be given explicitly as a tuple (x, y), or by providing a
266
- function that converts the extent into the offset. This function
267
- must have the signature::
268
-
269
- def offset(width, height, xdescent, ydescent, renderer) \
270
- -> (float, float)
266
+ function dynamically computes an offset (taking the arguments
267
+ passed to `.OffsetBox.get_offset`). It is recommended, but not
268
+ compulsory, to make such functions take no arguments.
271
269
"""
272
270
self ._offset = xy
273
271
self .stale = True
@@ -340,7 +338,7 @@ def get_extent(self, renderer):
340
338
def get_window_extent (self , renderer ):
341
339
# docstring inherited
342
340
w , h , xd , yd = self .get_extent (renderer )
343
- px , py = self .get_offset (w , h , xd , yd , renderer )
341
+ px , py = self .get_offset ()
344
342
return mtransforms .Bbox .from_bounds (px - xd , py - yd , w , h )
345
343
346
344
def draw (self , renderer ):
@@ -349,7 +347,7 @@ def draw(self, renderer):
349
347
to the given *renderer*.
350
348
"""
351
349
w , h , xdescent , ydescent , offsets = self .get_extent_offsets (renderer )
352
- px , py = self .get_offset (w , h , xdescent , ydescent , renderer )
350
+ px , py = self .get_offset ()
353
351
for c , (ox , oy ) in zip (self .get_visible_children (), offsets ):
354
352
c .set_offset ((px + ox , py + oy ))
355
353
c .draw (renderer )
@@ -530,7 +528,7 @@ def get_extent_offsets(self, renderer):
530
528
def draw (self , renderer ):
531
529
# docstring inherited
532
530
w , h , xdescent , ydescent , offsets = self .get_extent_offsets (renderer )
533
- px , py = self .get_offset (w , h , xdescent , ydescent , renderer )
531
+ px , py = self .get_offset ()
534
532
for c , (ox , oy ) in zip (self .get_visible_children (), offsets ):
535
533
c .set_offset ((px + ox , py + oy ))
536
534
@@ -1037,9 +1035,10 @@ def get_window_extent(self, renderer):
1037
1035
# docstring inherited
1038
1036
# Update the offset func, which depends on the dpi of the renderer
1039
1037
# (because of the padding).
1038
+ w , h , xd , yd = self .get_extent (renderer )
1040
1039
fontsize = renderer .points_to_pixels (self .prop .get_size_in_points ())
1041
1040
1042
- def _offset (w , h , xd , yd , renderer ):
1041
+ def _offset (* args , ** kwargs ): # args are ignored; left for backcompat.
1043
1042
bbox = Bbox .from_bounds (0 , 0 , w , h )
1044
1043
pad = self .borderpad * fontsize
1045
1044
bbox_to_anchor = self .get_bbox_to_anchor ()
@@ -1065,9 +1064,7 @@ def draw(self, renderer):
1065
1064
self .update_frame (bbox , fontsize )
1066
1065
self .patch .draw (renderer )
1067
1066
1068
- width , height , xdescent , ydescent = self .get_extent (renderer )
1069
-
1070
- px , py = self .get_offset (width , height , xdescent , ydescent , renderer )
1067
+ px , py = self .get_offset ()
1071
1068
1072
1069
self .get_child ().set_offset ((px , py ))
1073
1070
self .get_child ().draw (renderer )
@@ -1566,8 +1563,7 @@ def __init__(self, ref_artist, offsetbox, use_blit=False):
1566
1563
def save_offset (self ):
1567
1564
offsetbox = self .offsetbox
1568
1565
renderer = offsetbox .figure ._cachedRenderer
1569
- w , h , xd , yd = offsetbox .get_extent (renderer )
1570
- offset = offsetbox .get_offset (w , h , xd , yd , renderer )
1566
+ offset = offsetbox .get_offset ()
1571
1567
self .offsetbox_x , self .offsetbox_y = offset
1572
1568
self .offsetbox .set_offset (offset )
1573
1569
0 commit comments