|
6 | 6 | unicode_literals)
|
7 | 7 |
|
8 | 8 | import six
|
9 |
| - |
10 |
| -import gtk |
11 |
| -if gtk.pygtk_version < (2, 7, 0): |
12 |
| - import cairo.gtk |
13 |
| - |
14 |
| -from matplotlib.backends import backend_cairo |
15 |
| -from matplotlib.backends.backend_gtk import * |
16 |
| - |
17 |
| -backend_version = 'PyGTK(%d.%d.%d) ' % gtk.pygtk_version + \ |
18 |
| - 'Pycairo(%s)' % backend_cairo.backend_version |
19 |
| - |
20 |
| - |
21 |
| -_debug = False |
22 |
| -#_debug = True |
23 |
| - |
24 |
| - |
25 |
| -def new_figure_manager(num, *args, **kwargs): |
26 |
| - """ |
27 |
| - Create a new figure manager instance |
28 |
| - """ |
29 |
| - if _debug: |
30 |
| - print('backend_gtkcairo.%s()' % fn_name()) |
31 |
| - FigureClass = kwargs.pop('FigureClass', Figure) |
32 |
| - thisFig = FigureClass(*args, **kwargs) |
33 |
| - return new_figure_manager_given_figure(num, thisFig) |
34 |
| - |
35 |
| - |
36 |
| -def new_figure_manager_given_figure(num, figure): |
37 |
| - """ |
38 |
| - Create a new figure manager instance for the given figure. |
39 |
| - """ |
40 |
| - canvas = FigureCanvasGTKCairo(figure) |
41 |
| - return FigureManagerGTK(canvas, num) |
42 |
| - |
43 |
| - |
44 |
| -class RendererGTKCairo (backend_cairo.RendererCairo): |
45 |
| - if gtk.pygtk_version >= (2, 7, 0): |
46 |
| - def set_pixmap(self, pixmap): |
47 |
| - self.gc.ctx = pixmap.cairo_create() |
48 |
| - else: |
49 |
| - def set_pixmap(self, pixmap): |
50 |
| - self.gc.ctx = cairo.gtk.gdk_cairo_create(pixmap) |
51 |
| - |
52 |
| - |
53 |
| -class FigureCanvasGTKCairo(backend_cairo.FigureCanvasCairo, FigureCanvasGTK): |
54 |
| - filetypes = FigureCanvasGTK.filetypes.copy() |
55 |
| - filetypes.update(backend_cairo.FigureCanvasCairo.filetypes) |
56 |
| - |
57 |
| - def _renderer_init(self): |
58 |
| - """Override to use cairo (rather than GDK) renderer""" |
59 |
| - if _debug: |
60 |
| - print('%s.%s()' % (self.__class__.__name__, _fn_name())) |
61 |
| - self._renderer = RendererGTKCairo(self.figure.dpi) |
62 |
| - |
63 |
| - |
64 |
| -class FigureManagerGTKCairo(FigureManagerGTK): |
65 |
| - def _get_toolbar(self, canvas): |
66 |
| - # must be inited after the window, drawingArea and figure |
67 |
| - # attrs are set |
68 |
| - if matplotlib.rcParams['toolbar'] == 'toolbar2': |
69 |
| - toolbar = NavigationToolbar2GTKCairo(canvas, self.window) |
70 |
| - else: |
71 |
| - toolbar = None |
72 |
| - return toolbar |
73 |
| - |
74 |
| - |
75 |
| -class NavigationToolbar2Cairo(NavigationToolbar2GTK): |
76 |
| - def _get_canvas(self, fig): |
77 |
| - return FigureCanvasGTKCairo(fig) |
78 |
| - |
| 9 | +from matplotlib._pylab_helpers import Gcf |
| 10 | + |
| 11 | +# import the gcg contaminated parts |
| 12 | +from .backend_gtk import (show, |
| 13 | + draw_if_interactive, |
| 14 | + _gtk_cleanup, |
| 15 | + key_press_handler) |
| 16 | + |
| 17 | +from ._backend_gtkcairo import (gtk, |
| 18 | + new_figure_manager, |
| 19 | + new_figure_manager_given_figure, |
| 20 | + RendererGTKCairo, |
| 21 | + FigureCanvasGTKCairo, |
| 22 | + FigureManagerGTKCairo, |
| 23 | + NavigationToolbar2GTKCairo, |
| 24 | + backend_version) |
79 | 25 |
|
80 | 26 | FigureCanvas = FigureCanvasGTKCairo
|
81 | 27 | FigureManager = FigureManagerGTKCairo
|
| 28 | + |
| 29 | +# set the call backs |
| 30 | +FigureManager._key_press_handler = staticmethod(key_press_handler) |
| 31 | +FigureManager._destroy_callback = staticmethod(Gcf.destroy) |
| 32 | +FigureManager._gtk_cleanup = staticmethod(_gtk_cleanup) |
0 commit comments