11
11
import matplotlib
12
12
from matplotlib .figure import Figure
13
13
from matplotlib .backends .backend_agg import FigureCanvasAgg
14
- from matplotlib .backends .backend_gtk import gtk , FigureManagerGTK , FigureCanvasGTK ,\
15
- show , draw_if_interactive ,\
16
- error_msg_gtk , PIXELS_PER_INCH , backend_version , \
17
- NavigationToolbar2GTK
14
+ from matplotlib .backends .backend_gtk import (gtk ,
15
+ FigureManagerGTK , FigureCanvasGTK ,
16
+ show , draw_if_interactive ,
17
+ error_msg_gtk , PIXELS_PER_INCH ,
18
+ backend_version ,
19
+ NavigationToolbar2GTK )
18
20
from matplotlib .backends ._gtkagg import agg_to_gtk_drawable
19
21
20
22
21
23
DEBUG = False
22
24
25
+
23
26
class NavigationToolbar2GTKAgg (NavigationToolbar2GTK ):
24
27
def _get_canvas (self , fig ):
25
28
return FigureCanvasGTKAgg (fig )
@@ -29,8 +32,8 @@ class FigureManagerGTKAgg(FigureManagerGTK):
29
32
def _get_toolbar (self , canvas ):
30
33
# must be inited after the window, drawingArea and figure
31
34
# attrs are set
32
- if matplotlib .rcParams ['toolbar' ]== 'toolbar2' :
33
- toolbar = NavigationToolbar2GTKAgg (canvas , self .window )
35
+ if matplotlib .rcParams ['toolbar' ] == 'toolbar2' :
36
+ toolbar = NavigationToolbar2GTKAgg (canvas , self .window )
34
37
else :
35
38
toolbar = None
36
39
return toolbar
@@ -40,7 +43,8 @@ def new_figure_manager(num, *args, **kwargs):
40
43
"""
41
44
Create a new figure manager instance
42
45
"""
43
- if DEBUG : print ('backend_gtkagg.new_figure_manager' )
46
+ if DEBUG :
47
+ print ('backend_gtkagg.new_figure_manager' )
44
48
FigureClass = kwargs .pop ('FigureClass' , Figure )
45
49
thisFig = FigureClass (* args , ** kwargs )
46
50
return new_figure_manager_given_figure (num , thisFig )
@@ -52,24 +56,26 @@ def new_figure_manager_given_figure(num, figure):
52
56
"""
53
57
canvas = FigureCanvasGTKAgg (figure )
54
58
return FigureManagerGTKAgg (canvas , num )
55
- if DEBUG : print ('backend_gtkagg.new_figure_manager done' )
59
+ if DEBUG :
60
+ print ('backend_gtkagg.new_figure_manager done' )
56
61
57
62
58
63
class FigureCanvasGTKAgg (FigureCanvasGTK , FigureCanvasAgg ):
59
64
filetypes = FigureCanvasGTK .filetypes .copy ()
60
65
filetypes .update (FigureCanvasAgg .filetypes )
61
66
62
67
def configure_event (self , widget , event = None ):
63
-
64
- if DEBUG : print ('FigureCanvasGTKAgg.configure_event' )
68
+ if DEBUG :
69
+ print ('FigureCanvasGTKAgg.configure_event' )
65
70
if widget .window is None :
66
71
return
67
72
try :
68
73
del self .renderer
69
74
except AttributeError :
70
75
pass
71
- w ,h = widget .window .get_size ()
72
- if w == 1 or h == 1 : return # empty fig
76
+ w , h = widget .window .get_size ()
77
+ if w == 1 or h == 1 :
78
+ return # empty fig
73
79
74
80
# compute desired figure size in inches
75
81
dpival = self .figure .dpi
@@ -78,13 +84,16 @@ def configure_event(self, widget, event=None):
78
84
self .figure .set_size_inches (winch , hinch )
79
85
self ._need_redraw = True
80
86
self .resize_event ()
81
- if DEBUG : print ('FigureCanvasGTKAgg.configure_event end' )
87
+ if DEBUG :
88
+ print ('FigureCanvasGTKAgg.configure_event end' )
82
89
return True
83
90
84
91
def _render_figure (self , pixmap , width , height ):
85
- if DEBUG : print ('FigureCanvasGTKAgg.render_figure' )
92
+ if DEBUG :
93
+ print ('FigureCanvasGTKAgg.render_figure' )
86
94
FigureCanvasAgg .draw (self )
87
- if DEBUG : print ('FigureCanvasGTKAgg.render_figure pixmap' , pixmap )
95
+ if DEBUG :
96
+ print ('FigureCanvasGTKAgg.render_figure pixmap' , pixmap )
88
97
#agg_to_gtk_drawable(pixmap, self.renderer._renderer, None)
89
98
90
99
buf = self .buffer_rgba ()
@@ -96,32 +105,26 @@ def _render_figure(self, pixmap, width, height):
96
105
buf , gtk .gdk .COLORSPACE_RGB , True , 8 , w , h , w * 4 )
97
106
pixmap .draw_pixbuf (pixmap .new_gc (), pixbuf , 0 , 0 , 0 , 0 , w , h ,
98
107
gtk .gdk .RGB_DITHER_NONE , 0 , 0 )
99
- if DEBUG : print ('FigureCanvasGTKAgg.render_figure done' )
108
+ if DEBUG :
109
+ print ('FigureCanvasGTKAgg.render_figure done' )
100
110
101
111
def blit (self , bbox = None ):
102
- if DEBUG : print ('FigureCanvasGTKAgg.blit' , self ._pixmap )
112
+ if DEBUG :
113
+ print ('FigureCanvasGTKAgg.blit' , self ._pixmap )
103
114
agg_to_gtk_drawable (self ._pixmap , self .renderer ._renderer , bbox )
104
115
105
116
x , y , w , h = self .allocation
106
117
107
- self .window .draw_drawable (self .style .fg_gc [self .state ], self ._pixmap ,
118
+ self .window .draw_drawable (self .style .fg_gc [self .state ], self ._pixmap ,
108
119
0 , 0 , 0 , 0 , w , h )
109
- if DEBUG : print ('FigureCanvasGTKAgg.done' )
120
+ if DEBUG :
121
+ print ('FigureCanvasGTKAgg.done' )
110
122
111
123
def print_png (self , filename , * args , ** kwargs ):
112
124
# Do this so we can save the resolution of figure in the PNG file
113
125
agg = self .switch_backends (FigureCanvasAgg )
114
126
return agg .print_png (filename , * args , ** kwargs )
115
127
116
128
117
- """\
118
- Traceback (most recent call last):
119
- File "/home/titan/johnh/local/lib/python2.3/site-packages/matplotlib/backends/backend_gtk.py", line 304, in expose_event
120
- self._render_figure(self._pixmap, w, h)
121
- File "/home/titan/johnh/local/lib/python2.3/site-packages/matplotlib/backends/backend_gtkagg.py", line 77, in _render_figure
122
- pixbuf = gtk.gdk.pixbuf_new_from_data(
123
- ValueError: data length (3156672) is less then required by the other parameters (3160608)
124
- """
125
-
126
129
FigureCanvas = FigureCanvasGTKAgg
127
130
FigureManager = FigureManagerGTKAgg
0 commit comments