2626def _fn_name (): return sys ._getframe (1 ).f_code .co_name
2727
2828try :
29- import cairo
29+ import cairo
3030except ImportError :
31- raise ImportError ("Cairo backend requires that pycairo is installed." )
31+ raise ImportError ("Cairo backend requires that pycairo is installed." )
3232
3333_version_required = (1 ,2 ,0 )
3434if 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 ))
3838backend_version = cairo .version
3939del _version_required
4040
@@ -183,27 +183,27 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False):
183183 if _debug : print ('%s.%s()' % (self .__class__ .__name__ , _fn_name ()))
184184
185185 if ismath :
186- self ._draw_mathtext (gc , x , y , s , prop , angle )
186+ self ._draw_mathtext (gc , x , y , s , prop , angle )
187187
188188 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 ()
207207
208208 def _draw_mathtext (self , gc , x , y , s , prop , angle ):
209209 if _debug : print ('%s.%s()' % (self .__class__ .__name__ , _fn_name ()))
@@ -215,28 +215,28 @@ def _draw_mathtext(self, gc, x, y, s, prop, angle):
215215 ctx .save ()
216216 ctx .translate (x , y )
217217 if angle :
218- ctx .rotate (- angle * np .pi / 180 )
218+ ctx .rotate (- angle * np .pi / 180 )
219219
220220 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 ()
234234
235235 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 ()
240240
241241 ctx .restore ()
242242
@@ -397,10 +397,17 @@ def new_figure_manager(num, *args, **kwargs): # called by backends/__init__.py
397397 """
398398 Create a new figure manager instance
399399 """
400- if _debug : print ('%s.%s ()' % (self . __class__ . __name__ , _fn_name ()))
400+ if _debug : print ('%s()' % (_fn_name ()))
401401 FigureClass = kwargs .pop ('FigureClass' , Figure )
402402 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 )
404411 manager = FigureManagerBase (canvas , num )
405412 return manager
406413
0 commit comments