26
26
def _fn_name (): return sys ._getframe (1 ).f_code .co_name
27
27
28
28
try :
29
- import cairo
29
+ import cairo
30
30
except ImportError :
31
- raise ImportError ("Cairo backend requires that pycairo is installed." )
31
+ raise ImportError ("Cairo backend requires that pycairo is installed." )
32
32
33
33
_version_required = (1 ,2 ,0 )
34
34
if cairo .version_info < _version_required :
35
- raise ImportError ("Pycairo %d.%d.%d is installed\n "
36
- "Pycairo %d.%d.%d or later is required"
37
- % (cairo .version_info + _version_required ))
35
+ raise ImportError ("Pycairo %d.%d.%d is installed\n "
36
+ "Pycairo %d.%d.%d or later is required"
37
+ % (cairo .version_info + _version_required ))
38
38
backend_version = cairo .version
39
39
del _version_required
40
40
@@ -183,27 +183,27 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False):
183
183
if _debug : print ('%s.%s()' % (self .__class__ .__name__ , _fn_name ()))
184
184
185
185
if ismath :
186
- self ._draw_mathtext (gc , x , y , s , prop , angle )
186
+ self ._draw_mathtext (gc , x , y , s , prop , angle )
187
187
188
188
else :
189
- ctx = gc .ctx
190
- ctx .new_path ()
191
- ctx .move_to (x , y )
192
- ctx .select_font_face (prop .get_name (),
193
- self .fontangles [prop .get_style ()],
194
- self .fontweights [prop .get_weight ()])
195
-
196
- size = prop .get_size_in_points () * self .dpi / 72.0
197
-
198
- ctx .save ()
199
- if angle :
200
- ctx .rotate (- angle * np .pi / 180 )
201
- ctx .set_font_size (size )
202
- if sys .version_info [0 ] < 3 :
203
- ctx .show_text (s .encode ("utf-8" ))
204
- else :
205
- ctx .show_text (s )
206
- ctx .restore ()
189
+ ctx = gc .ctx
190
+ ctx .new_path ()
191
+ ctx .move_to (x , y )
192
+ ctx .select_font_face (prop .get_name (),
193
+ self .fontangles [prop .get_style ()],
194
+ self .fontweights [prop .get_weight ()])
195
+
196
+ size = prop .get_size_in_points () * self .dpi / 72.0
197
+
198
+ ctx .save ()
199
+ if angle :
200
+ ctx .rotate (- angle * np .pi / 180 )
201
+ ctx .set_font_size (size )
202
+ if sys .version_info [0 ] < 3 :
203
+ ctx .show_text (s .encode ("utf-8" ))
204
+ else :
205
+ ctx .show_text (s )
206
+ ctx .restore ()
207
207
208
208
def _draw_mathtext (self , gc , x , y , s , prop , angle ):
209
209
if _debug : print ('%s.%s()' % (self .__class__ .__name__ , _fn_name ()))
@@ -215,28 +215,28 @@ def _draw_mathtext(self, gc, x, y, s, prop, angle):
215
215
ctx .save ()
216
216
ctx .translate (x , y )
217
217
if angle :
218
- ctx .rotate (- angle * np .pi / 180 )
218
+ ctx .rotate (- angle * np .pi / 180 )
219
219
220
220
for font , fontsize , s , ox , oy in glyphs :
221
- ctx .new_path ()
222
- ctx .move_to (ox , oy )
223
-
224
- fontProp = ttfFontProperty (font )
225
- ctx .save ()
226
- ctx .select_font_face (fontProp .name ,
227
- self .fontangles [fontProp .style ],
228
- self .fontweights [fontProp .weight ])
229
-
230
- size = fontsize * self .dpi / 72.0
231
- ctx .set_font_size (size )
232
- ctx .show_text (s .encode ("utf-8" ))
233
- ctx .restore ()
221
+ ctx .new_path ()
222
+ ctx .move_to (ox , oy )
223
+
224
+ fontProp = ttfFontProperty (font )
225
+ ctx .save ()
226
+ ctx .select_font_face (fontProp .name ,
227
+ self .fontangles [fontProp .style ],
228
+ self .fontweights [fontProp .weight ])
229
+
230
+ size = fontsize * self .dpi / 72.0
231
+ ctx .set_font_size (size )
232
+ ctx .show_text (s .encode ("utf-8" ))
233
+ ctx .restore ()
234
234
235
235
for ox , oy , w , h in rects :
236
- ctx .new_path ()
237
- ctx .rectangle (ox , oy , w , h )
238
- ctx .set_source_rgb (0 , 0 , 0 )
239
- ctx .fill_preserve ()
236
+ ctx .new_path ()
237
+ ctx .rectangle (ox , oy , w , h )
238
+ ctx .set_source_rgb (0 , 0 , 0 )
239
+ ctx .fill_preserve ()
240
240
241
241
ctx .restore ()
242
242
@@ -397,10 +397,17 @@ def new_figure_manager(num, *args, **kwargs): # called by backends/__init__.py
397
397
"""
398
398
Create a new figure manager instance
399
399
"""
400
- if _debug : print ('%s.%s ()' % (self . __class__ . __name__ , _fn_name ()))
400
+ if _debug : print ('%s()' % (_fn_name ()))
401
401
FigureClass = kwargs .pop ('FigureClass' , Figure )
402
402
thisFig = FigureClass (* args , ** kwargs )
403
- canvas = FigureCanvasCairo (thisFig )
403
+ return new_figure_manager_given_figure (num , thisFig )
404
+
405
+
406
+ def new_figure_manager_given_figure (num , figure ):
407
+ """
408
+ Create a new figure manager instance for the given figure.
409
+ """
410
+ canvas = FigureCanvasCairo (figure )
404
411
manager = FigureManagerBase (canvas , num )
405
412
return manager
406
413
0 commit comments