@@ -6,7 +6,6 @@ def fn_name(): return sys._getframe(1).f_code.co_name
66try :
77 from gi .repository import Gtk , Gdk , GObject
88 from gi .repository import Pango
9- import cairo
109except ImportError :
1110 raise ImportError ("GTK3 backend requires pygobject to be installed." )
1211
@@ -15,7 +14,6 @@ def fn_name(): return sys._getframe(1).f_code.co_name
1514from matplotlib .backend_bases import RendererBase , GraphicsContextBase , \
1615 FigureManagerBase , FigureCanvasBase , NavigationToolbar2 , cursors , TimerBase
1716from matplotlib .backend_bases import ShowBase
18- from matplotlib .backends import backend_cairo
1917
2018from matplotlib .cbook import is_string_like , is_writable_file_like
2119from matplotlib .colors import colorConverter
@@ -60,16 +58,6 @@ def mainloop(self):
6058
6159show = Show ()
6260
63- def new_figure_manager (num , * args , ** kwargs ):
64- """
65- Create a new figure manager instance
66- """
67- FigureClass = kwargs .pop ('FigureClass' , Figure )
68- thisFig = FigureClass (* args , ** kwargs )
69- canvas = FigureCanvasGTK3 (thisFig )
70- manager = FigureManagerGTK3 (canvas , num )
71- return manager
72-
7361
7462class TimerGTK3 (TimerBase ):
7563 '''
@@ -112,11 +100,7 @@ def _on_timer(self):
112100 self ._timer = None
113101 return False
114102
115- class RendererGTK3Cairo (backend_cairo .RendererCairo ):
116- def set_context (self , ctx ):
117- self .gc .ctx = ctx
118-
119- class FigureCanvasGTK3 (Gtk .DrawingArea , backend_cairo .FigureCanvasCairo ):
103+ class FigureCanvasGTK3 (Gtk .DrawingArea , FigureCanvasBase ):
120104 keyvald = {65507 : 'control' ,
121105 65505 : 'shift' ,
122106 65513 : 'alt' ,
@@ -319,30 +303,6 @@ def idle_draw(*args):
319303 if self ._idle_draw_id == 0 :
320304 self ._idle_draw_id = GObject .idle_add (idle_draw )
321305
322- def _renderer_init (self ):
323- """use cairo renderer"""
324- if _debug : print '%s.%s()' % (self .__class__ .__name__ , fn_name ())
325- self ._renderer = RendererGTK3Cairo (self .figure .dpi )
326-
327- def _render_figure (self , width , height ):
328- """use cairo renderer"""
329- self ._renderer .set_width_height (width , height )
330- self .figure .draw (self ._renderer )
331-
332- def on_draw_event (self , widget , ctx ):
333- """ GtkDrawable draw event, like expose_event in GTK 2.X
334- """
335- if _debug : print 'FigureCanvasGTK3.%s' % fn_name ()
336-
337- if self ._need_redraw :
338- self ._renderer .set_context (ctx )
339- allocation = self .get_allocation ()
340- x , y , w , h = allocation .x , allocation .y , allocation .width , allocation .height
341- self ._render_figure (w , h )
342- self ._need_redraw = False
343-
344- return False # finish event propagation?
345-
346306 def get_default_filetype (self ):
347307 return 'png'
348308
@@ -561,7 +521,7 @@ def _init_toolbar(self):
561521 fname = os .path .join (basedir , image_file )
562522 image = Gtk .Image ()
563523 image .set_from_file (fname )
564- tbutton = Gtk .ToolButton ()
524+ tbutton = Gtk .ToolButton ()
565525 tbutton .set_label (text )
566526 tbutton .set_icon_widget (image )
567527 self .insert (tbutton , - 1 )
@@ -624,7 +584,7 @@ def configure_subplots(self, button):
624584 window .show ()
625585
626586 def _get_canvas (self , fig ):
627- return FigureCanvasGTK3 (fig )
587+ return self . canvas . __class__ (fig )
628588
629589
630590class NavigationToolbar (Gtk .Toolbar ):
@@ -702,7 +662,7 @@ def _create_toolitems(self):
702662 continue
703663 image = Gtk .Image ()
704664 image .set_from_stock (image_num , iconSize )
705- tbutton = Gtk .ToolButton ()
665+ tbutton = Gtk .ToolButton ()
706666 tbutton .set_label (text )
707667 tbutton .set_icon_widget (image )
708668 self .insert (tbutton , - 1 )
@@ -736,7 +696,7 @@ def position_menu (menu):
736696 x0 , y0 = self .window .get_origin ()
737697 x1 , y1 , m = self .window .get_pointer ()
738698 x2 , y2 = self .menubutton .get_pointer ()
739- sc_h = self .get_screen ().get_height ()
699+ sc_h = self .get_screen ().get_height ()
740700 w , h = menu .size_request ()
741701
742702 x = x0 + x1 - x2
@@ -1116,6 +1076,3 @@ def error_msg_gtk(msg, parent=None):
11161076 message_format = msg )
11171077 dialog .run ()
11181078 dialog .destroy ()
1119-
1120-
1121- FigureManager = FigureManagerGTK3
0 commit comments