new ip
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import wx
|
||||
|
||||
from .. import _api
|
||||
from .backend_agg import FigureCanvasAgg
|
||||
from .backend_wx import _BackendWx, _FigureCanvasWxBase, FigureFrameWx
|
||||
from .backend_wx import ( # noqa: F401 # pylint: disable=W0611
|
||||
NavigationToolbar2Wx as NavigationToolbar2WxAgg)
|
||||
|
||||
|
||||
@_api.deprecated(
|
||||
"3.6", alternative="FigureFrameWx(..., canvas_class=FigureCanvasWxAgg)")
|
||||
class FigureFrameWxAgg(FigureFrameWx):
|
||||
def get_canvas(self, fig):
|
||||
return FigureCanvasWxAgg(self, -1, fig)
|
||||
|
||||
|
||||
class FigureCanvasWxAgg(FigureCanvasAgg, _FigureCanvasWxBase):
|
||||
"""
|
||||
The FigureCanvas contains the figure and does event handling.
|
||||
|
||||
In the wxPython backend, it is derived from wxPanel, and (usually)
|
||||
lives inside a frame instantiated by a FigureManagerWx. The parent
|
||||
window probably implements a wxSizer to control the displayed
|
||||
control size - but we give a hint as to our preferred minimum
|
||||
size.
|
||||
"""
|
||||
|
||||
def draw(self, drawDC=None):
|
||||
"""
|
||||
Render the figure using agg.
|
||||
"""
|
||||
FigureCanvasAgg.draw(self)
|
||||
self.bitmap = _rgba_to_wx_bitmap(self.get_renderer().buffer_rgba())
|
||||
self._isDrawn = True
|
||||
self.gui_repaint(drawDC=drawDC)
|
||||
|
||||
def blit(self, bbox=None):
|
||||
# docstring inherited
|
||||
bitmap = _rgba_to_wx_bitmap(self.get_renderer().buffer_rgba())
|
||||
if bbox is None:
|
||||
self.bitmap = bitmap
|
||||
else:
|
||||
srcDC = wx.MemoryDC(bitmap)
|
||||
destDC = wx.MemoryDC(self.bitmap)
|
||||
x = int(bbox.x0)
|
||||
y = int(self.bitmap.GetHeight() - bbox.y1)
|
||||
destDC.Blit(x, y, int(bbox.width), int(bbox.height), srcDC, x, y)
|
||||
destDC.SelectObject(wx.NullBitmap)
|
||||
srcDC.SelectObject(wx.NullBitmap)
|
||||
self.gui_repaint()
|
||||
|
||||
|
||||
def _rgba_to_wx_bitmap(rgba):
|
||||
"""Convert an RGBA buffer to a wx.Bitmap."""
|
||||
h, w, _ = rgba.shape
|
||||
return wx.Bitmap.FromBufferRGBA(w, h, rgba)
|
||||
|
||||
|
||||
@_BackendWx.export
|
||||
class _BackendWxAgg(_BackendWx):
|
||||
FigureCanvas = FigureCanvasWxAgg
|
||||
Reference in New Issue
Block a user