]> git.gag.com Git - debian/gnuradio/commitdiff
shared drawing area method for creating new pixmaps
authorjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 14 May 2009 18:47:15 +0000 (18:47 +0000)
committerjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Thu, 14 May 2009 18:47:15 +0000 (18:47 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11029 221aa14e-8319-0410-a670-987f0aec2ac5

grc/src/gui/DrawingArea.py
grc/src/platforms/gui/Block.py
grc/src/platforms/gui/FlowGraph.py
grc/src/platforms/gui/Port.py

index feb4019780b893affcfa2733cb115593efb338c8..22edb9093638c5e8653e8c084a6a10be326faa98 100644 (file)
@@ -61,6 +61,8 @@ class DrawingArea(gtk.DrawingArea):
                self.connect('leave-notify-event', self._handle_focus_event, False)
                self.connect('enter-notify-event', self._handle_focus_event, True)
 
+       def new_pixmap(self, width, height): return gtk.gdk.Pixmap(self.window, width, height, -1)
+
        ##########################################################################
        ## Handlers
        ##########################################################################
@@ -109,8 +111,7 @@ class DrawingArea(gtk.DrawingArea):
                Called when the window is resized.
                Create a new pixmap for background buffer.
                """
-               width, height = self.get_size_request()
-               self.pixmap = gtk.gdk.Pixmap(self.window, width, height, -1)
+               self._pixmap = self.new_pixmap(*self.get_size_request())
 
        def _handle_window_expose(self, widget, event):
                """
@@ -118,5 +119,5 @@ class DrawingArea(gtk.DrawingArea):
                Double buffering: draw to pixmap, then draw pixmap to window.
                """
                gc = self.window.new_gc()
-               self._main_window.get_flow_graph().draw(gc, self.pixmap)
-               self.window.draw_drawable(gc, self.pixmap, 0, 0, 0, 0, -1, -1)
+               self._main_window.get_flow_graph().draw(gc, self._pixmap)
+               self.window.draw_drawable(gc, self._pixmap, 0, 0, 0, 0, -1, -1)
index 4aa35bf03bc4dd702c7c6ce9ca9a7b9ae79dc868..b574892d30225d8d4f5350eef11abae7c84d87f8 100644 (file)
@@ -146,7 +146,7 @@ class Block(Element):
                width = self.label_width
                height = self.label_height
                #setup the pixmap
-               pixmap = gtk.gdk.Pixmap(self.get_parent().get_window(), width, height, -1)
+               pixmap = self.get_parent().new_pixmap(width, height)
                gc = pixmap.new_gc()
                gc.foreground = self.bg_color
                pixmap.draw_rectangle(gc, True, 0, 0, width, height)
index 82b45dc03b98729ddc90ee7ecca35328bb980ff8..7e2330669717bac967976e42c28427e20625b830 100644 (file)
@@ -63,10 +63,9 @@ class FlowGraph(Element):
        def queue_draw(self): self.get_drawing_area().queue_draw()
        def get_size(self): return self.get_drawing_area().get_size_request()
        def set_size(self, *args): self.get_drawing_area().set_size_request(*args)
-       def get_window(self): return self.get_drawing_area().window
-       def get_pixmap(self): return self.get_drawing_area().pixmap
        def get_scroll_pane(self): return self.drawing_area.get_parent()
        def get_ctrl_mask(self): return self.drawing_area.ctrl_mask
+       def new_pixmap(self, *args): return self.get_drawing_area().new_pixmap(*args)
 
        def add_new_block(self, key, coor=None):
                """
index 3aec6e4a72a8a900edddc3c949e23adb3b73d7ad..a763e406db7e76c6ea8e28b90bc719f8e59df71f 100644 (file)
@@ -91,7 +91,7 @@ class Port(Element):
                self.w, self.h = layout.get_pixel_size()
                self.W, self.H = 2*PORT_LABEL_PADDING+self.w, 2*PORT_LABEL_PADDING+self.h
                #create the pixmap
-               pixmap = gtk.gdk.Pixmap(self.get_parent().get_parent().get_window(), self.w, self.h, -1)
+               pixmap = self.get_parent().get_parent().new_pixmap(self.w, self.h)
                gc = pixmap.new_gc()
                gc.foreground = self.BG_color
                pixmap.draw_rectangle(gc, True, 0, 0, self.w, self.h)