Created a pixmap rotation routine in Utils for handling those rotated labels.
[debian/gnuradio] / grc / gui / Block.py
index bed50de9fd3a29a6984589e88ff39c24400fca82..27143e070420ccdd6cec709f0b2d098e509a5e30 100644 (file)
@@ -155,12 +155,11 @@ class Block(Element):
                        else: w_off = 0
                        pixmap.draw_layout(gc, w_off, h_off, layout)
                        h_off = h + h_off + LABEL_SEPARATION
-               #create vertical and horizontal images
-               self.horizontal_label = image = pixmap.get_image(0, 0, width, height)
+               #create vertical and horizontal pixmaps
+               self.horizontal_label = pixmap
                if self.is_vertical():
-                       self.vertical_label = vimage = gtk.gdk.Image(gtk.gdk.IMAGE_NORMAL, pixmap.get_visual(), height, width)
-                       for i in range(width):
-                               for j in range(height): vimage.put_pixel(j, width-i-1, image.get_pixel(i, j))
+                       self.vertical_label = self.get_parent().new_pixmap(height, width)
+                       Utils.rotate_pixmap(gc, self.horizontal_label, self.vertical_label)
                #calculate width and height needed
                self.W = self.label_width + 2*BLOCK_LABEL_PADDING
                self.H = max(*(
@@ -183,9 +182,9 @@ class Block(Element):
                )
                #draw label image
                if self.is_horizontal():
-                       window.draw_image(gc, self.horizontal_label, 0, 0, x+BLOCK_LABEL_PADDING, y+(self.H-self.label_height)/2, -1, -1)
+                       window.draw_drawable(gc, self.horizontal_label, 0, 0, x+BLOCK_LABEL_PADDING, y+(self.H-self.label_height)/2, -1, -1)
                elif self.is_vertical():
-                       window.draw_image(gc, self.vertical_label, 0, 0, x+(self.H-self.label_height)/2, y+BLOCK_LABEL_PADDING, -1, -1)
+                       window.draw_drawable(gc, self.vertical_label, 0, 0, x+(self.H-self.label_height)/2, y+BLOCK_LABEL_PADDING, -1, -1)
                #draw ports
                for port in self.get_ports(): port.draw(gc, window)