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

Skip to content

Commit e579f27

Browse files
author
Steve Chaplin
committed
'SC'
svn path=/trunk/matplotlib/; revision=1685
1 parent 34daf13 commit e579f27

2 files changed

Lines changed: 26 additions & 20 deletions

File tree

lib/matplotlib/backends/backend_cairo.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,6 @@ def set_ctx_from_surface (self, surface):
9898
self.ctx = cairo.Context (surface)
9999

100100

101-
def set_ctx_from_pixmap (self, pixmap):
102-
# used by GUI backend (backend_gtk)
103-
# image backend (backend_cairo) uses _set_ctx_from_surface() instead
104-
self.ctx = cairo.gtk.gdk_cairo_create (pixmap)
105-
106-
set_pixmap = set_ctx_from_pixmap
107-
108-
109101
def set_width_height(self, width, height):
110102
self.width = width
111103
self.height = height

lib/matplotlib/backends/backend_gtkcairo.py

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
"""
2-
GTK+ Matplotlib interface using Cairo (not GDK) drawing operations.
2+
GTK+ Matplotlib interface using cairo (not GDK) drawing operations.
33
Author: Steve Chaplin
44
"""
5-
import cairo.gtk
5+
import gtk
6+
if gtk.pygtk_version < (2,7,0):
7+
import cairo.gtk
68

7-
from matplotlib.backends.backend_cairo import RendererCairo
8-
from matplotlib.backends.backend_gtk import *
9+
import matplotlib.backends.backend_cairo as be_cairo
10+
from matplotlib.backends.backend_gtk import *
911

10-
11-
backend_version = 'PyGTK(%d.%d.%d),Pycairo(%d.%d.%d)' % (gtk.pygtk_version + cairo.version_info)
12+
backend_version = 'PyGTK(%d.%d.%d) ' % gtk.pygtk_version + \
13+
'Pycairo(%s)' % be_cairo.backend_version
1214

1315

1416
_debug = False
@@ -25,15 +27,22 @@ def new_figure_manager(num, *args, **kwargs):
2527
return FigureManagerGTK(canvas, num)
2628

2729

30+
class RendererGTKCairo (be_cairo.RendererCairo):
31+
def set_ctx_from_pixmap (self, pixmap):
32+
# TODO - do once in pixmap_prepare(), not before every redraw ?
33+
if gtk.pygtk_version >= (2,7,0):
34+
self.ctx = pixmap.cairo_create()
35+
else:
36+
self.ctx = cairo.gtk.gdk_cairo_create (pixmap)
37+
38+
set_pixmap = set_ctx_from_pixmap
39+
40+
2841
class FigureCanvasGTKCairo(FigureCanvasGTK):
2942
def _renderer_init(self):
30-
"""Override to use Cairo rather than GDK renderer"""
43+
"""Override to use cairo (rather than GDK) renderer"""
3144
if _debug: print '%s.%s()' % (self.__class__.__name__, _fn_name())
32-
self._renderer = RendererCairo (self.figure.dpi)
33-
34-
class NavigationToolbar2Cairo(NavigationToolbar2GTK):
35-
def _get_canvas(self, fig):
36-
return FigureCanvasGTKCairo(fig)
45+
self._renderer = RendererGTKCairo (self.figure.dpi)
3746

3847

3948
class FigureManagerGTKCairo(FigureManagerGTK):
@@ -47,3 +56,8 @@ def _get_toolbar(self, canvas):
4756
else:
4857
toolbar = None
4958
return toolbar
59+
60+
61+
class NavigationToolbar2Cairo(NavigationToolbar2GTK):
62+
def _get_canvas(self, fig):
63+
return FigureCanvasGTKCairo(fig)

0 commit comments

Comments
 (0)