Initialize a FigureWx instance. - Initialize the FigureCanvasBase and wxPanel parents. - Set event handlers for resize, paint, and keyboard and mouse interaction.
(self, parent, id, figure=None)
| 465 | } |
| 466 | |
| 467 | def __init__(self, parent, id, figure=None): |
| 468 | """ |
| 469 | Initialize a FigureWx instance. |
| 470 | |
| 471 | - Initialize the FigureCanvasBase and wxPanel parents. |
| 472 | - Set event handlers for resize, paint, and keyboard and mouse |
| 473 | interaction. |
| 474 | """ |
| 475 | |
| 476 | FigureCanvasBase.__init__(self, figure) |
| 477 | size = wx.Size(*map(math.ceil, self.figure.bbox.size)) |
| 478 | if wx.Platform != '__WXMSW__': |
| 479 | size = parent.FromDIP(size) |
| 480 | # Set preferred window size hint - helps the sizer, if one is connected |
| 481 | wx.Panel.__init__(self, parent, id, size=size) |
| 482 | self.bitmap = None |
| 483 | self._isDrawn = False |
| 484 | self._rubberband_rect = None |
| 485 | self._rubberband_pen_black = wx.Pen('BLACK', 1, wx.PENSTYLE_SHORT_DASH) |
| 486 | self._rubberband_pen_white = wx.Pen('WHITE', 1, wx.PENSTYLE_SOLID) |
| 487 | |
| 488 | self.Bind(wx.EVT_SIZE, self._on_size) |
| 489 | self.Bind(wx.EVT_PAINT, self._on_paint) |
| 490 | self.Bind(wx.EVT_CHAR_HOOK, self._on_key_down) |
| 491 | self.Bind(wx.EVT_KEY_UP, self._on_key_up) |
| 492 | self.Bind(wx.EVT_LEFT_DOWN, self._on_mouse_button) |
| 493 | self.Bind(wx.EVT_LEFT_DCLICK, self._on_mouse_button) |
| 494 | self.Bind(wx.EVT_LEFT_UP, self._on_mouse_button) |
| 495 | self.Bind(wx.EVT_MIDDLE_DOWN, self._on_mouse_button) |
| 496 | self.Bind(wx.EVT_MIDDLE_DCLICK, self._on_mouse_button) |
| 497 | self.Bind(wx.EVT_MIDDLE_UP, self._on_mouse_button) |
| 498 | self.Bind(wx.EVT_RIGHT_DOWN, self._on_mouse_button) |
| 499 | self.Bind(wx.EVT_RIGHT_DCLICK, self._on_mouse_button) |
| 500 | self.Bind(wx.EVT_RIGHT_UP, self._on_mouse_button) |
| 501 | self.Bind(wx.EVT_MOUSE_AUX1_DOWN, self._on_mouse_button) |
| 502 | self.Bind(wx.EVT_MOUSE_AUX1_UP, self._on_mouse_button) |
| 503 | self.Bind(wx.EVT_MOUSE_AUX2_DOWN, self._on_mouse_button) |
| 504 | self.Bind(wx.EVT_MOUSE_AUX2_UP, self._on_mouse_button) |
| 505 | self.Bind(wx.EVT_MOUSE_AUX1_DCLICK, self._on_mouse_button) |
| 506 | self.Bind(wx.EVT_MOUSE_AUX2_DCLICK, self._on_mouse_button) |
| 507 | self.Bind(wx.EVT_MOUSEWHEEL, self._on_mouse_wheel) |
| 508 | self.Bind(wx.EVT_MOTION, self._on_motion) |
| 509 | self.Bind(wx.EVT_ENTER_WINDOW, self._on_enter) |
| 510 | self.Bind(wx.EVT_LEAVE_WINDOW, self._on_leave) |
| 511 | |
| 512 | self.Bind(wx.EVT_MOUSE_CAPTURE_CHANGED, self._on_capture_lost) |
| 513 | self.Bind(wx.EVT_MOUSE_CAPTURE_LOST, self._on_capture_lost) |
| 514 | |
| 515 | self.SetBackgroundStyle(wx.BG_STYLE_PAINT) # Reduce flicker. |
| 516 | self.SetBackgroundColour(wx.WHITE) |
| 517 | |
| 518 | if wx.Platform == '__WXMAC__': |
| 519 | # Initial scaling. Other platforms handle this automatically |
| 520 | dpiScale = self.GetDPIScaleFactor() |
| 521 | self.SetInitialSize(self.GetSize()*(1/dpiScale)) |
| 522 | self._set_device_pixel_ratio(dpiScale) |
| 523 | |
| 524 | def Copy_to_Clipboard(self, event=None): |
nothing calls this directly
no test coverage detected