Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Deprecate various custom FigureFrameWx attributes/methods. #22025

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions doc/api/next_api_changes/deprecations/22025-AL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
``FigureFrameWx`` attributes and methods
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ``sizer`` is deprecated (use ``frame.GetSizer()`` instead).
- ``figmgr`` and ``get_figure_manager`` are deprecated (use
``frame.canvas.manager`` instead).
- ``num`` is deprecated (use ``frame.canvas.manager.num`` instead).
- ``toolbar`` is deprecated (use ``frame.GetToolBar()``
instead).
- ``toolmanager`` is deprecated (use ``frame.canvas.manager.toolmanager``
instead).

``RendererWx.offset_text_height``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... is deprecated.
39 changes: 25 additions & 14 deletions lib/matplotlib/backends/backend_wx.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ def _timer_set_interval(self):
self._timer_start() # Restart with new interval.


@_api.deprecated(
"2.0", name="wx", obj_type="backend", removal="the future",
alternative="wxagg",
addendum="See the Matplotlib usage FAQ for more info on backends.")
class RendererWx(RendererBase):
"""
The renderer handles all the drawing primitives using a graphics
Expand Down Expand Up @@ -141,10 +145,6 @@ class RendererWx(RendererBase):

def __init__(self, bitmap, dpi):
"""Initialise a wxWindows renderer instance."""
_api.warn_deprecated(
"2.0", name="wx", obj_type="backend", removal="the future",
alternative="wxagg", addendum="See the Matplotlib usage FAQ for "
"more info on backends.")
super().__init__()
_log.debug("%s - __init__()", type(self))
self.width = bitmap.GetWidth()
Expand All @@ -158,6 +158,7 @@ def flipy(self):
# docstring inherited
return True

@_api.deprecated("3.6")
def offset_text_height(self):
return True

Expand Down Expand Up @@ -886,7 +887,6 @@ def __init__(self, num, fig, *, canvas_class=None):
super().__init__(parent=None, id=-1, pos=pos)
# Frame will be sized later by the Fit method
_log.debug("%s - __init__()", type(self))
self.num = num
_set_frame_icon(self)

# The parameter will become required after the deprecation elapses.
Expand All @@ -899,7 +899,8 @@ def __init__(self, num, fig, *, canvas_class=None):
"%(since)s elapses.")
self.canvas = self.get_canvas(fig)

self.figmgr = FigureManagerWx(self.canvas, num, self)
# Auto-attaches itself to self.canvas.manager
manager = FigureManagerWx(self.canvas, num, self)

toolbar = self.canvas.manager.toolbar
if toolbar is not None:
Expand All @@ -916,27 +917,37 @@ def __init__(self, num, fig, *, canvas_class=None):

self.Bind(wx.EVT_CLOSE, self._on_close)

toolmanager = property(lambda self: self.figmgr.toolmanager)
toolbar = property(lambda self: self.GetToolBar()) # backcompat
sizer = _api.deprecated("3.6", alternative="frame.GetSizer()")(
property(lambda self: self.GetSizer()))
figmgr = _api.deprecated("3.6", alternative="frame.canvas.manager")(
property(lambda self: self.canvas.manager))
num = _api.deprecated("3.6", alternative="frame.canvas.manager.num")(
property(lambda self: self.canvas.manager.num))
toolbar = _api.deprecated("3.6", alternative="frame.GetToolBar()")(
property(lambda self: self.GetToolBar()))
toolmanager = _api.deprecated(
"3.6", alternative="frame.canvas.manager.toolmanager")(
property(lambda self: self.canvas.manager.toolmanager))

@_api.deprecated(
"3.6", alternative="the canvas_class constructor parameter")
def get_canvas(self, fig):
return FigureCanvasWx(self, -1, fig)

@_api.deprecated("3.6", alternative="frame.canvas.manager")
def get_figure_manager(self):
_log.debug("%s - get_figure_manager()", type(self))
return self.figmgr
return self.canvas.manager

def _on_close(self, event):
_log.debug("%s - on_close()", type(self))
self.canvas.close_event()
self.canvas.stop_event_loop()
# set FigureManagerWx.frame to None to prevent repeated attempts to
# close this frame from FigureManagerWx.destroy()
self.figmgr.frame = None
self.canvas.manager.frame = None
# remove figure manager from Gcf.figs
Gcf.destroy(self.figmgr)
Gcf.destroy(self.canvas.manager)
try: # See issue 2941338.
self.canvas.mpl_disconnect(self.canvas.toolbar._id_drag)
except AttributeError: # If there's no toolbar.
Expand Down Expand Up @@ -1355,12 +1366,12 @@ def new_figure_manager_given_figure(cls, num, figure):
# Retain a reference to the app object so that it does not get
# garbage collected.
_BackendWx._theWxApp = wxapp
# Attaches figure.canvas, figure.canvas.manager.
frame = FigureFrameWx(num, figure, canvas_class=cls.FigureCanvas)
figmgr = frame.get_figure_manager()
if mpl.is_interactive():
figmgr.frame.Show()
frame.Show()
figure.canvas.draw_idle()
return figmgr
return figure.canvas.manager

@staticmethod
def mainloop():
Expand Down